Lektion 5 Digital != Analog

Lektion 5 Digital != Analog Titelbild

Willkommen in der Analogität

In dieser Einheit werden wir uns weiter mit den analogen Pins (in grün eingekreist) beschäftigen.

Was du lernen wirst:

  • Analog zu Digital
  • Analoge Inputs auslesen
  • Fotowiderstände benutzen

Mit den digitalen Pins (I/O Pins) haben wir jetzt schon erfolgreich gearbeitet. Mit der digitalWrite()-Funktion können wir LEDs zum Leuchten bringen, mit digitalRead() können wir dann nachmessen, ob ein Button gedrückt wurde oder nicht und mit analogRead() können wir die Leuchtintensität einer LED bestimmen. So weit, so gut. Was uns jetzt fehlt, ist das Auslesen der analogen Anschlüsse.

Die Anglog In-Pins findest du gegenüber der digitalen I/O Pins. Insgesamt gibt es sechs Stück, auch hier fängt die Nummerierung bei A0 an. Das A steht dabei für "Analog Input". Bisher haben wir immer nur ausgelesen, ob es einen Stromfluss gab HIGH oder halt nicht LOW. Mit den analogen Pins lässt sich das noch viel genauer machen. Nämlich circa 1023 mal genauer. Dass die bei dem Pin ankommende Stromspannung von 0V bis 5V reicht, ist in 1023 Schritten messbar. Dafür gibt es im Arduino einen so genannten A/D-Umwandler, also einen analog zu digital Umwandler. Dieser nimmt die analogen Informationen und macht diese für uns benutzbar.

Doch für welche Anwendungen müssen wir analoge Werte auslesen? Das ist unterschiedlich, aber vor allem einfache Komponenten kommen nur mit einer analogen Ausgaben zurecht. Der Fotowiderstand oder auch LDR (Light Dependent Resistor) ist einer davon.

Der Name ist ein Spoiler für die Funktion, aber hier noch einmal erklärt: Bei dem LDR handelt es um einen Widerstand. Wenn es komplett dunkel ist, kann kein Strom durch den LDR fließen. Doch umso heller es wird, umso geringer wird der Widerstand und umso größer wird der Strom, der durch den Widerstand fließt. Wie groß der fließende Strom ist, können wir mit den "Analog Input"-Pins messen. So haben wir eine sehr einfache Möglichkeit, die Helligkeit festzustellen.

Anschlüsse am ArduinoAnschlüsse Breadboard
~11Langes Bein LED
GNDKurzes Bein LED
5VLDR eine Seite
A0LDR andere Seite
GND+10kΩLDR andere Seite
int ldr= A0;
int helligkeit = 0;
int led = 9;

void setup(){
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop(){
  helligkeit =analogRead(ldr);

  Serial.print("Sensorwert = " );
  Serial.println(helligkeit);

  if (helligkeit < 512 ){
    digitalWrite(led, HIGH);
  }
  else{
    digitalWrite(led, LOW);
  }
  delay (100);
}

Wenn du das Programm ausführst, sollte die LED erstmal leuchten, (außer natürlich du sitzt bei dir im dunklen Keller) und wieder aufhören zu leuchten, wenn du deinen Finger über den LDR bewegst. Über den Seriellen Monitor kannst du dir genau ansehen, welche Werte geraden gemessen werden. Der LDR ist ein wenig "träge", was bedeutet es kann ein paar Millisekunden dauern, bis eine Helligkeitsabnahme/-zunahme gemessen werden kann.

Schritt für Schritt erklärt: In den ersten 3 Zeilen werden erst einmal die Variablen für die einzelnen Sensoren definiert. In Zeile 6 und 7 wird zuerst die Serielle Kommunikation gestartet und dann noch der pinMode() für die LED definiert. Für den analogen Input müssen wir nichts aktivieren. In Zeile 11 wird dann der analoge Sensor ausgelesen. Diese Funktion heißt analogRead() und es muss als einziger Wert der analoge Pin übergeben werden. In Zeile 13 und 14 werden diese Messwerte dann ausgegeben. Neben der Serial.println()-Funktion gibt es auch noch die Möglichkeit mit Serial.print() etwas auszugeben, ohne danach direkt eine neue Zeile zu erzeugen. ln steht dabei für line also engl. für neue Zeile. In Zeile 15 gibt es dann eine if-Bedingung, die die LED anschaltet, wenn der gemessene Wert unter 512 liegt. Den Wert haben wir recht willkürlich gelegt, aber es ergibt ja Sinn, dass die LED angeht, wenn es zu dunkel wird.

Aufgaben

  1. Was ist der Unterschied zwischen analogen und digitalen Komponenten?
  2. Wofür brauchst du die analogRead()-Funktion?
  3. Baue die Schaltung mit dem LDR so um, dass von 5 LEDS im Verhältnis immer so viele aufleuchten, wie es der Helligkeit entspricht.
  4. Wie hoch ist die Helligkeit bei der normalen Zimmerbeleuchtung, spreche dich mit anderen ab.

Noch Fragen oder Feedback?

Bevor du eine Frage stellen kannst musst du dich zuerst Anmelden oder Regestrieren!