Bouton sur le microcontrôleur

FunduinoDernière mise à jour le

Pulldown-Widerstand verstehen und LEDs per Tastendruck schalten

Aufgabe: Eine LED soll fünf Sekunden leuchten, wenn du einen Taster betätigst.

Der Mikrocontroller kann an seinen digitalen Pins nicht nur Spannungen ausgeben, sondern auch auslesen. Genau das probierst du in diesem Programm aus.

Choisir un microcontrôleur

Les broches, le schéma électrique et le sketch des étapes de travail changent selon ta sélection. Celle-ci reste enregistrée.

Warum der Taster einen Pulldown-Widerstand braucht

Beim Aufbau gibt es eine Besonderheit. Verbindest du den Taster einfach nur mit dem Mikrocontroller, liegt am Pin eine Spannung an, sobald du drückst. Stell dir vor, am Pin schwirren viele Elektronen herum. Lässt du den Taster los, kommen keine neuen mehr hinzu.

Jetzt kommt der Knackpunkt: Die Elektronen, die es sich vorher auf dem Pin gemütlich gemacht haben, sind immer noch da und entweichen nur langsam über kleine Kriechströme. Der Mikrocontroller denkt deshalb, der Taster sei ganz lange gedrückt – nämlich so lange, bis sich keine Elektronen mehr auf dem Pin aufhalten.

Das behebst du, indem du den Pin über einen Widerstand von etwa 1000 Ohm (1 kΩ) erdest. Die Elektronen fließen dann schnell ab, und der Mikrocontroller erkennt, dass der Taster nur kurz angetastet wurde. Weil der Widerstand die Spannung am Eingangspin immer auf 0V herunterzieht, heißt er Pulldown-Widerstand.

Achtung: Nimmst du einen zu kleinen Widerstand, kann beim Drücken des Tasters ein Kurzschluss am Mikrocontroller entstehen.

Eine LED per Tastendruck aktivieren

Wähle unten dein Board. Die LED leuchtet fünf Sekunden, sobald du den Taster drückst.

Taster und LED am Arduino UNO
Schaltplan Arduino UNO
Arduino UNO
// LED an Pin 6, Taster an Pin 7
int LEDgelb = 6;
int TasterGelb = 7;
// speichert den Status der LED: 0 = aus, 1 = ein
int StatusGelb = 0;
void setup()
{
  // LED wird als OUTPUT (Ausgang) definiert
  pinMode(LEDgelb, OUTPUT);
  // der Taster wird als INPUT (Eingang) deklariert
  pinMode(TasterGelb, INPUT);
}
void loop()
{
  // Taster abfragen
  StatusGelb = digitalRead(TasterGelb);
  // wenn der Taster gedrückt wurde
  if (StatusGelb == HIGH)
  {
    // LED für 5 Sekunden (5000 ms) einschalten
    digitalWrite(LEDgelb, HIGH);
    delay(5000);
    // LED ausschalten
    digitalWrite(LEDgelb, LOW);
  }
}

Télécharger : arduino-uno.ino

Carte dans l’IDE ArduinoArduino Uno

Ein zusätzliches Board-Paket brauchst du dafür nicht. Der UNO ist in der Arduino IDE ab Werk dabei.

Zwei LEDs mit zwei Tastern ansteuern

Jetzt erweiterst du die Schaltung um einen zweiten Taster und eine rote LED. Drückst du den linken Taster, leuchtet die gelbe LED eine Sekunde lang. Ein Druck auf den rechten Taster bringt die rote LED zum Leuchten.

Zwei Taster und zwei LEDs am Arduino UNO
Schaltplan Arduino UNO, zwei Taster und zwei LEDs
Arduino UNO
// Pins für die LEDs
int LEDgelb = 8;
int LEDrot = 9;
// Pins für die Taster
int TasterRot = 7;
int TasterGelb = 6;
// speichert den Status der LEDs: 0 = aus, 1 = ein
int StatusGelb = 0;
int StatusRot = 0;
void setup()
{
  // LEDs werden als OUTPUT (Ausgang) definiert
  pinMode(LEDgelb, OUTPUT);
  pinMode(LEDrot, OUTPUT);
  // die Taster werden als INPUT (Eingang) deklariert
  pinMode(TasterGelb, INPUT);
  pinMode(TasterRot, INPUT);
}
void loop()
{
  // Taster für die gelbe LED abfragen
  StatusGelb = digitalRead(TasterGelb);
  if (StatusGelb == HIGH)
  {
    digitalWrite(LEDgelb, HIGH);
    delay(1000);
    digitalWrite(LEDgelb, LOW);
  }
  // Taster für die rote LED abfragen
  StatusRot = digitalRead(TasterRot);
  if (StatusRot == HIGH)
  {
    digitalWrite(LEDrot, HIGH);
    delay(1000);
    digitalWrite(LEDrot, LOW);
  }
}

Télécharger : arduino-uno.ino

Carte dans l’IDE ArduinoArduino Uno

Ein zusätzliches Board-Paket brauchst du dafür nicht. Der UNO ist in der Arduino IDE ab Werk dabei.

Évaluer le guide

Commentaires

Poser une question ou partager une expérience

Écris-nous si quelque chose ne fonctionne pas. Indique-nous ton modèle de carte et le message d’erreur.

Nous vérifions chaque commentaire avant sa publication. Ton adresse e-mail reste chez nous.