LBotics.at

Mikrocontroller haben in der Regel auch interne Pull Up Widerstände eingebaut, die bei der Verwendung eines der PINs D0, ..., D13 als digitaler Eingang genutzt werden können. Diese können per Software aktiviert werden – es entfällt dann die Verwendung eines externen Pull Up Widerstandes.

Aufbau und Material

  • 1 Taster

Programmierbeispiel

Der einzige Unterschied zur Verwendung eines externen Pull Up Widerstandes besteht darin, dass bei der Festlegung eines PINs als digitaler Eingang mit der Funktion pinMode() der interne Pull Up Widerstand aktiviert werden muss. Dies geschieht durch die Übergabe des Werts INTPUT_PULLUP als zweiter Parameter.

void setup()
{
pinMode(13, OUTPUT); // Pin 13 als digitaler Output
pinMode(4, INPUT_PULLUP); // Pin 4 als digitaler Input mit aktiviertem internen PullUp-Widerstand
}
void loop()
{
int TasterZustand = digitalRead(4); // Auslesen des Zustands des Pins 4 und Ablegen in der Variable TasterZustand
digitalWrite(13, TasterZustand); // Zustand von Pin 13 auf HIGH (5V) oder LOW (0V) seztzen, abhängig vom Wert der Variable TasterZustand
delay(1);
}
Erklärungen zu diesem Programmierbeispiel

pinMode(pin, mode)

Mit dieser Funktion wird das Verhalten eines der 14 I/O PINs festgelegt.

pin: 0, ..., 13

mode: OUTPUT, INPUT, INPUT_PULLUP

int TasterZustand = digitalRead(pin)

Die Funktion digitalRead() dient zum Lesen des Zustands, wenn ein PIN als Eingang konfiguriert ist. Der Rückgabewert dieser Funktion (LOW oder HIGH, entspricht den Werten 0 oder 1) und wird in der Integervariable TasterZustand abgelegt.

pin: 0, ..., 13

return: LOW, HIGH

digitalWrite(pin, value)

Diese Funktion dient zum Setzen des Zustands, wenn ein Pin als Ausgang konfiguriert ist. Hier wird für value der Wert der Integervariable TasterZustand übergeben. Dieser wurde zuvor durch Aufruf der Funktion digitalRead() bestimmt und hat den Wert 0 oder 1, was den Werten LOW oder HIGH entspricht.

pin: 0, ..., 13

value: LOW, HIGH (bei LOW liegen am Pin 0V, bei HIGH liegen am Pin 5V an)

delay(value)

Soll der Programmablauf an einer Stelle unterbrochen werden, so wird die Funktion delay() aufgerufen.

value: ganzzahliger Wert (Wartezeit in Millisekunden)