Externe analoge Sensoren

Zielsetzung

Über unsere analoge Schnittstelle können wir viele beliebige Sensoren verbinden und diese nutzen. Es gibt dafür viele kostengünstige Sensoren (Mikrofon, Bodenfeuchte, Regensensor oder einen Lichtsensor). Unsere analoge Schnittstelle misst echte, kontinuierliche Werte, in unserem Fall sind das Spannungen zwischen 0 und 3.3 Volt, die durch einen Analog-Digital-Wandler in Zahlen zwischen 0 und 1023 (Octopus) bzw. 0 und 4095 (Makey) umgewandelt werden. Achtung: die Pins für den analogen Eingang am Microcontroller sind je nach verwendeter Platine unterschiedlich, wähle im Ardublock die entsprechende Umgebung, dort ist der richtige Pin immer schon vorausgewählt.

Wir nehmen uns also den Octopus oder Makey und bauen ein Programm, welches

  • den analogen Spannungswert liest. Dazu verwenden wir zuerst unsere eigene Haut als Sensorelement, messen die Hautfeuchte und bauen so einen Lügendetektor. 
  • Anschließend verwenden wir die analoge Grove-Schnittstelle, d.h. beim Octopus die linke weiße Buchse, beim Makey die Buchse Ain. Dort schließen wir einen richtigen Sensor z.B. ein Mikrofon an und messen die Lautstärke. 
  • Auf Grundlage der Entscheidung unsere Neopixel-LED grün (leise) oder rot (es ist zu laut) leuchten lässt.

Lügendetektor

Die Kontaktbelegung des IoT-Octopus-Kits bietet schon von Hause aus die einfache Möglichkeit, auch ohne Sensor eine Spannungsänderung am analogen Eingang zu provozieren. Dazu brauchen wir nur den Finger auf die Bananenstecker-Kontakte auf der linken Seite des Kits zu legen. Unser Finger sorgt dann für eine leitfähige Verbindung zwischen A0 und den darunter anliegenden 3.3 V-Kontakt. Der Makey hat entsprechende Kontakte an der linken Hand. Je nach Hautfeuchte und Kontaktdruck kann der Messwert so in weiten Grenzen schwanken. Berücksichtigen wir die Tatsache, dass der Mensch beim Lügen unbewußt unter Streß gerät und schwitzt, haben wir so einen ersten primitiven Lügendetektor gebaut. Generell stehen wir bei diesen analogen Sensoren aber vor dem Problem, dass wir den gemessenen Rohwert (0...1023) wieder in einen physikalischen Wert umrechnen müssen (Kalibrierung). Genaueres dazu ist im Kapitel Elektrotechnik zu finden. Komfortabler sind intelligente Sensoren, die diese Umrechnung selbst vornehmen.

Je nach Messwert (Spannung am analogen Eingang) soll die LED eine andere Farbe anzeigen. Typisches Anwendungsszenario für eine Fallunterscheidung.
Unser Algorithmus als Programm. Die Schwellwerte variieren je nach eigener Hautfeuchte und dienen hier nur als Anhaltspunkt. Beim Makey mit seiner 4-fachen Auflösung sind auch die Schwellwerte größer.

Lärmampel

Tauschen wir den Finker mit einem echten Sensor, in diesem Fall ein Mikrofon, können wir weitere physikalische Größen messen. Mithilfe einer „Falls … dann … sonst …“-Struktur wird entschieden, welche Farbe die Ampel anzeigen soll: Bei leisen Geräuschen leuchtet sie grün, bei mittlerer Lautstärke gelb und bei lauten Geräuschen rot. Der aktuelle Wert wird mit Serial.println angezeigt.

Struktur des Algorithmus für die Lärmampel
Gleicher Algorithmus, anderer Sensor, andere Anwendung.
Erweiterung um eine Gelbphase

Selbst machen: Umsetzung

Aufgabenideen:

  • Gelbphase einbauen bei Lautstärke
  • Zwei getrennte Fallunterscheidungen je nach Wert
  • Optional: Anzeige auf serieller Konsole, LED-Matrix oder OLED-Display
  • Im Kapitel Elektrotechnik  bauen wir einen eigenen Lichtsensor

Erklärvideo - Lärmampel realisieren

Bitte beachten Sie: Sobald Sie sich das Video ansehen, werden Informationen darüber an Youtube/Google übermittelt. Weitere Informationen dazu finden Sie unter Google Privacy.

FAQ

Was ist ein Analog-Digital-Wandler?

Analog-Digital-Wandler: Unsere Verbindung zur analogen Welt

Unsere analoge Schnittstelle (analogRead) erfasst Spannungen im Bereich von 0 bis 3.3 Volt. Die an den Kontakten anliegende Kleinspannung wird durch einen Analog-Digital-Wandler (ADC) in einen proportionalen Zahlenwert umgewandelt. In unserem Fall hat der ADC eine Auflösung von 10 bit (Octopus), was bedeutet, dass unser Messbereich von 0 bis 3 V in die Zahlenwerte 0 bis 210-1 (=1023) umgewandelt wird. Wir können also grob mit einer Genauigkeit von 3.3V/1023 = ca. 3 mV rechnen. Der Makey mit seinem 12-Bit Wandler hat eine vierfach höhere Auflösung (0 bis 212-1 = 4095) und auch mehrere analoge Eingänge. Das entsprechende Puzzleteil (analogRead) zum Einlesen des Zahlenwertes finden wir auf der linken Seite im Baukasten für "Sensoren".

Wie "laut" ist eigentlich laut?

Hier ein paar Beispiele für Geräusche und ihre Lautstärke in Dezibel

Atemgeräusch 10 dB
Flüstern 30 dB
Normales Gespräch 60 dB
Staubsauger 70 dB
Straßenverkehr 85 dB
Rockkonzert 100-110 dB
Presslufthammer 120 dB
Schmerzgrenze ab 120 dB
Flugzeugstart 130 dB
Explosion 140 dB und mehr

 

 

back-to-top nach oben