Aus RN-Wissen.de
Version vom 27. Juli 2012, 13:16 Uhr von Ijjiij_alt (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
LiFePO4 Speicher Test

Tastsensoren, oder Taster, werden vielseitig im Roboterbau eingesetzt, beispielsweise um das Festfahren von mobilen Robotern zu verhindern.

Anschließen des Tasters

Grundsätzlich gibt es zwei Möglichkeiten, wie man einen Taster anschließen kann. Er kann gegen VCC, oder gegen GND geschaltet werden. Wie der Taster angeschlossen ist, ist dann vor allem in der Programmierung des µCs zu beachten. Die Unterschiede zwischen den beiden Anschlussarten sollen im weiteren kurz erläutert werden.

Anschließen des Tasters gegen VCC

Beim Anschließen des Tasters gegen VCC, erhält der Port-Pin beim Druck des Tasters ein HIGH-Signal. Es muss also in der Software auf die logische 1 geprüft werden.

Aufbau der Schaltung

Der Taster wird hier zwischen VCC und den Port-Pin gesetzt. Zwischen GND und den Port-Pin wird noch ein Pull-Down Widerstand (1k Ohm) eingesetzt, um einen Kurzschluss der Schaltung zu verhindern.

  VCC -|
       |
       TASTER 
       |
       |--- µC-Pin
       |
       |
      1k Ohm
       |
  GND -|

Überlegung zur Software

Bei der Software ist hier zu beachten, das der Port auf die logische 1 gesetzt wird wenn der Taster gedrückt ist. Dieser Zustand kann dann softwareseitig abgefragt werden. Mehr Information dazu befindet sich im Abschnitt 2. Software.

Anschließen des Tasters gegen GND

Aufbau der Schaltung

Der Taster wird hier zwischen GND und den Port-Pin gesetzt. Zwischen VCC und den Port-Pin wird noch ein Pull-Up Widerstand (1k Ohm) eingesetzt, um einen Kurzschluss der Schaltung zu verhindern.

  VCC -|
       |
      1k Ohm
       |
       |--- µC-Pin
       |
       |
      TASTER
       |
  GND -|

Um Bauteile zu Sparen kann hier auch der intere Widerstand am Eingangspin des µControllers aktiviert werden. In diesem Fall wird der externe Pull-Up Widerstand einfach weggelassen.

       |--- µC-Pin
       |
       |
      TASTER
       |
  GND -|


Software

Grundsätzliche Überlegungen

Selbstverständlich muss die Software zur gewählten Anschlusart des Tasters passen. Daher wird in den nächsten Abschnitten auf die beiden Arten gesondert eingegangen, auch wenn der Code sich sehr ähnlich ist und der Unterschied lediglich darin besteht, ob auf HIGH oder LOW geprüft wird.

Im weiteren ist der Taster an den Pin 7 von Port B angeschlossen, kürzer als PB7 bezeichnet.

Codebeispiele für Schaltung gegen VCC

Hier ein kleines Codeschnippsel für die Tasterabfrage in C:

if ( PINB & (1<<PB7) )
    {
      // pin ist high
      // Taster ist gedrückt
    }
    else
    {
      // pin ist low
      // Taster ist nicht gedrückt
    }

Es wird also geprüft, ob der Pin hier auf HIGH geschaltet wurde. In diesem Fall wird dann der entsprechende Code ausgeführt.

Codebeispiele für Schaltung gegen GND

Hier ein Codeschnippsel für die Tasterabfrage, wenn der Taster gegen GND geschaltet wurde:

if ( !(PINB & (1<<PB7)) )
    {
      // pin ist low
      // Taster ist nicht gedrückt
    }
    else
    {
      // pin ist high
      // Taster ist gedrückt
    }

Es wird also darauf geprüft, ob der Pin hier "NICHT HIGH" ist, da am Eingangspin immer der Zustand "High" liegt, solange der Taster geöffnet ist. Wird der Taster geschlossen, wechselt der Zustand am Pin PB7 auf low und der entsprechende Abschnitt der Abfrage wird ausgeführt.

Weiterführende Links

Taster-Abfrage in C Pullup Pulldown Widerstand


LiFePO4 Speicher Test