← Kapitel 8: Analoge Eingänge | ↑ Übersicht | Kapitel 10: Übungsaufgabe Batterietester →

Kapitel 9: Schwellwertschalter

Die Aufgabe

Wir wollen nun mit unserem Mikrocontroller eine Spannung überwachen. Wenn sich die Spannung unter einem Grenzwert befindet, leuchtet eine grüne LED, wird dieser Schwellwert überschritten, leuchtet eine rote LED.

Der Schwellwert beträgt 3V. Wir berechnen also unseren Wandlerwert:

$ Wandlerwert = \dfrac{3V}{0,00488V}-1 = 613 $

Bei der Berechnung des Wandlerwertes runden wir immer ab.

Die Formale Frage lautet also:

Wenn der Wandlerwert größer 613 ist, soll die rote LED leuchten

Umsetzung

Umsetzen können wir das, dank dem Wissen aus Kapitel 8, sehr elegant:

kapitel09_schwellwertschalter.ino
#define LED_ROT 13
#define LED_GRUEN 11
#define ANALOGPIN A0
 
void setup()
{
  pinMode(LED_ROT, OUTPUT);   // Pin auf Ausgang
  pinMode(LED_GRUEN, OUTPUT); // Pin auf Ausgang
  pinMode(ANALOGPIN, INPUT);  // Pin auf Eingang
}
 
void loop()
{
  if(analogRead(ANALOGPIN)>613)
  { // Wenn der Wert >613 ist, wird folgender Code ausgeführt:
    digitalWrite(LED_ROT, HIGH);  // rote LED an
    digitalWrite(LED_GRUEN, LOW); // gruene LED aus
  }
  else
  { // Ansonsten wird dieser Code hier ausgeführt:
    digitalWrite(LED_ROT, LOW);    // rote LED aus
    digitalWrite(LED_GRUEN, HIGH); // gruene LED an
  }
}

Ohne Vorwarnung haben wir hier noch eine weitere Funktion des if-Operanden gelernt: Das if-then-else-Statement.

Wie man in diesem Fall sieht, ist es ganz praktisch, wenn man zwischen zwei Codeblöcken entscheiden kann. Dies erreicht man durch else:

if(AUSRUCK)
{
  #CODE1#
}
else
{
  #CODE2#
}

Kompliziert ist das nicht, es bedeutet lediglich: Wenn der Ausdruck true ist, wird CODE1 ausgeführt, sonst CODE2.

Praktischer Test

Nun können wir das oben aufgeführte Programm kompilieren und auf den Controller laden. Wenn das Poti auf Anschlag gegen den Uhrzeigersinn gedreht wurde, leuchtet nun die grüne LED auf.

Wenn wir nun das Poti langsam im Uhrzeigersinn drehen, erreichen wir den Punkt, an dem 3V am Analogeingang anliegen. An diesem Punkt wird die rote LED ein- und die grüne ausgeschaltet.

Drehen wir wieder zurück (gegen den Uhrzeigersinn) erlischt dir rote LED und die grüne fängt an zu leuchten.

Wie gewohnt gibt es jetzt wieder eine Übungsaufgabe:

Kapitel 10: Übungsaufgabe Batterietester