Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

2 - Drucktaster

Kurzinformationen

Bauformen

Es gibt Drucktaster, Kippschalter, Wippschalter, Dreh- und Schlüsselschalter und, und, und ... Für die Arbeit auf dem Steckbrett bietet sich der Kurzhubtaster an. Er ist bis 12 V/ 50mA belastbar; ausreichend für alle Übungen.

Schaltzeichen und Beschaltung

Der Kurzhubtaster hat vier Elektroden, von denen je zwei zusammengeschaltet sind (Abb. links).

Übung 1

Taster abfragen

Aufgabe

Es wird eine Schaltung aus Taster und LED aufgebaut. Sobald der Taster gedrückt wird, soll die LED leuchten und sie soll ausgehen, wenn der Taster nicht mehr gedrückt wird.

Es werden zwei unterschiedliche Beschaltungen des Tasters betrachtet und in einer weiteren Schaltung der interne Pull-Up-Widerstand des Controllers aktiviert.

 

Material

1x  USB-ISP-Programmer
1x  Nullkraft-Sockel für Programmer
1x  ATtiny13
1x  Energiequelle, 5V
1x  LED rot
1x  Widerstand, 220 Ohm
1x  Widerstand, 10 kOhm (optional)
1x  Drucktaster
3x  Steckdraht
1x  Steckbrett

1x  PC mit der Software BASCOM

 

 

Schaltskizze

Abbildung 1 - Taster mit externem Pull-Up-Widerstand von 10kOhm an PB1 und eine LED-Schaltung mit einem 220 Ohm Vorwiderstand an PB2.

Vorüberlegung

Port PB1 wird als Eingang geschaltet; über ihn wird die Information, die am Taster anliegt, abgefragt, während  Port PB2 als Ausgang geschaltet ist. Eine LED mit Vorwiderstand ist mit PB2 verbunden und geht auf 1, sobald PB1 an seinem Eingang erkennt, dass der Taster gedrückt wurde. Wie erkennt PB1 das?

  • Taster nicht gedrückt

Am Eingang von PB1 liegt im Normalzustand (Taster nicht gedrückt) eine 1 (HIGH) an. Der Pull-up Widerstand von 10kOhm zieht den Eingang auf 1.

  • Taster gedrückt

Sobald der Taster gedrückt wird fließt ein Strom vom Pluspol (5V) durch den Pull-up-Widerstand (10 kOhm) nach GND. Fast die gesamte Spannung fällt  über dem 10 kOhm Widerstand ab, so dass der Eingang PB1 eine 0 (LOW) registriert. Im BASIC Programm wird mit der Kontrollstruktur

  • IF ... THEN ... END IF

entschieden, dass dann der Ausgang PB2 auf 1 gesetzt wird.

 

Soweit die Theorie - jetzt kommt die Programmierpraxis.

Das Programm taster1.bas

Wie arbeitet das Programm taster1.bas?

Zeilen 15 - 18

Die benutzten Pin-Ports B.1 und B.2 werden als Eingang bzw. Ausgang und die Variable T1 wird vom Typ Byte deklariert. Die Variable T1 soll den Zustand am Eingang von PB1 auslesen und abspeichern.

 

Zeilen 21 - 29

In der Endlosschleife Do ... Loop wird der an PinB.1 anliegende Werte ( 0 oder 1) der Variablen T1 zugewiesen. Die If-Anweisung entscheidet anschließend, dass bei einer anliegenden 1 am Eingang (der Taster ist nicht gedrückt!), am Ausgang B.2 eine 0 anliegt (LED ist aus). Liegt hingegen eine 0 am Eingang an (der Taster ist gedrückt), dann wird der Ausgang B.2 auf 1 gezogen und die LED leuchtet.

 

Statt einen externen Pullup-Widerstand zu benutzen, wie im vorliegenden Fall, kann man auch den internen Pullup-Widerstand des Mikrocontrollers aktivieren. Das spart ein Bauteil und macht die Schaltung übersichtlicher. Im folgenden Programm wird der interne Pullup-Widerstand aktiviert, bei gleicher Funktionalität der Schaltung.

Pullup / Pulldown

Kurzinformationen

Pullup Widerstand

... wird eingesetzt, um einen Controller-Eingang auf einen definierten Spannungswert zu heben (pull-up). Bei geöffnetem Taster T1 liegen am Eingang PB1 5 Volt an.

Fehlt dieser Widerstand, kann sich durch Störsignale (von außen) der Spannungspegel ständig verändern und bei geschlossenem Taster tritt ein Kurzschluss ein.

Wird ein Widerstand zwischen Eingang PB1 (Punkt P) und Pluspol der Energiequelle geschaltet, dann liegt Punkt P bei offenem Taster auf einem definierten Potenzial (hier bei +5V), man sagt auch, der Eingang wird auf 5V hochgezogen (pull-up). Bei geschlossenem Schalter T1 fließt ein Strom vom Pluspol über den Widerstand und Taster zum Minuspol; seine Stromstärke wird vom Widerstand begrenzt. Punkt P wird auf 0V gezogen.

Pulldown Widerstand

Bei geöffnetem Taster T1 wird der Eingang PB1 auf 0 Volt heruntergezogen (pull-down). Somit gleiches Prinzip wie beim Pull-Up Widerstand.

Fehlt dieser Widerstand, kann sich durch Störsignale (von außen) der Spannungspegel ständig verändern.

Übung 2

Internen Pullup aktivieren

Aufgabe

Die Aufgabenstellung ist wie in Übung 1, mit dem Unterschied, dass hier der interne Pullup-Widerstand aktiviert ist.

 

Material

1x  USB-ISP-Programmer
1x  Nullkraft-Sockel für Programmer
1x  ATtiny13
1x  Energiequelle, 5V
1x  LED rot
1x  Widerstand, 220 Ohm
1x  Drucktaster
3x  Steckdraht
1x  Steckbrett

1x  PC mit der Software BASCOM

 

 

Pull-Up Widerstand ein- / ausschalten

BASIC Befehlssequenz

BASIC Befehlssequenz

  • DDRB = &B0000_1111

setzt PB4 - PB7 auf Eingang.

  • PORTB.4 = 1

aktiviert den internen Pullup Widerstand bei PB.4.

  • PORTB.4 = 0

deaktiviert den internen Pullup Widerstand bei PB.4.

Schaltskizze

Das Programm taster2.bas

Wie arbeitet das Programm taster1.bas?

Zeilen 17 - 20

Die Variable T1 wird als Integervariable definiert und dient dazu, den Wert am Eingang PB1 später auszulesen. Das DDRB-Register wird so eingestellt, dass PB2 als Ausgang und alle anderen Pins als Eingänge beschaltet werden.

Mit den Handlungsanweisungen

  • DDRB.1 = 0 (PB1 ist Eingang) und PORTB.1 = 1 (schreibe eine 1 in den Eingang PB1)

wird der Pull-Up Widerstand im Eingangsport B1 aktiviert.

 

Zeilen 22 - 29

In der Endlosschleife Do ... Loop wird der an PinB.1 anliegende Werte ( 0 oder 1) der Variablen T1 zugewiesen. Die

  • If ... Then ... Else ... End If

Anweisung besagt: wenn T1 gleich 0 ist (der Taster wurde gedrückt!), dann setze PORTB.2 auf 1 (LED an), sonst setze PORTB.2 auf 0 (LED aus).

Probiere mal dies aus

Schreibe dein eigenes Programm

Pullup / Pulldown

Wie müsste das Programm aus Übung 1 umgeschrieben werden, wenn statt eines Pull-up ein Pulldown Widerstand eingebaut worden wäre? Finde eine Lösung und erkläre die Wirkung der Schaltung bei geöffnetem und geschlossenem Taster.

Frequenzverdoppler

Schreibe ein Programm und baue dazu eine entsprechende Schaltung mit LED und Taster auf, bei der eine rote LED mit f1 = 1 Hz blinkt, solange der Taster offen ist. Wird der Taster gedrückt, soll sich die Frequenz verdoppeln (f2 = 2 Hz) /halbieren (f3 = 0,5 Hz).

Immer der Reihe nach

Baue eine Schaltung mit einem Taster und zwei LEDs (rot, grün) auf. Schreibe ein Programm, das mit dem ersten Tastendruck die rote LED einschaltet. Mit dem zweiten Tastendruck die rote LED aus- und die grüne anschaltet und beim dritten Tastendruck beide LEDs einschaltet. Der vierte Tastendruck ist wie der erste.

Weiter geht´s mit dem Kapitel Standardservo

Druckversion | Sitemap
© Reinhard Rahner - Gettorf