Neulich habe ich mir beim Einkauf nach langer Zeit mal wieder eine Zeitschrift gekauft, nämlich die aktuelle Ausgabe des Make-Magazins. Daheim durchgeblättert und dann erst mal gedacht „WTF, da ist ja nix wirklich Interessantes drin“. Aber dann doch nochmal überlegt, dass es ja jetzt blöd wäre wenn ich die Zeitschrift einfach in die Papiertonne werfe, vielleicht sollte ich „just for fun“ einfach mal irgendwas daraus als Projekt umsetzen. Und dann packte mich das Bastelfieber.
Als ein Projekt sehe ich den Seifenspender mit Countdown-Timer und Musik. Also mal schnell einen Arduino R3 ,das Multifunction-Shield und ein MP3-Player Modul. Und dann angefangen, ein wenig mit diesem Shield zu spielen. Also z.B. was auf die 7-Segment-Anzeige auszugeben. Am Ende kam ein einfacher Sketch raus mit einem Zähler der über die Tasten gesteuert wurde.
Dann fiel mir ein, dass von früher noch ein weiterer Arduino in einer Schublade liegt, zusammen mit einem LCD-Display mit 2 Zeilen zu je 16 Zeichen. Erste Erkenntnis, das Pinout zwischen dem Ur-Arduino und dem Arduino R3 ist leicht verschieden, aber egal, das Display-Shield passt auf das alte Board, also auch damit rum experimentiert.
Dann habe ich mir ein Sortiment an Sensoren bestellt. Einfach für ein paar Experimente. Gestern dann den DHT11 (Temperatur / Luftfeuchte) ausprobiert. Da hieß erst mal an das Display-Shield eine Stiftleiste zu löten, aber das ist ja für einen alten Bastler kein Problem. Dann das Beispiel für den Sensor so umändern, dass es das Display-Shield ansteuert. Und vielleicht auch eine Ausgabe, wieviele Messungen schon gemacht wurden. Am Ende sah das dann so aus:
Ein wenig holprig war am Anfang des Debuggen. Der Sketch sieht ja „Serial.print“-Statemens vor damit man sehen kann, was passiert. Aber der Versuch den Serial-Monitor in der Arduino-IDE zu starten wurde immer mit Java-Fehlermeldungen quittiert. Ein wenig Googlen zeigt, dass das wohl ein Problem mit den Binärpaketen bei openSUSE ist. Also habe ich heute die Binaries der IDE erst mal wieder vom Rechner geworfen und dann die Arduino-IDE neu von Hand installiert. Dann wird nämlich auch ein Verzeichnis „~./jssc/“ angelegt welches eine Library enthält die man unbedingt braucht um den seriellen Monitor zu nutzen.
So weit so gut, aber warum zeigt mir das Thermometer permanent „nan“ (not a number) an wenn ich die Debug-Ausgaben über die serielle Schnittstelle mache? Die Erklärung findet man, wenn man guckt, welche Daten-Pins die serielle Schnittstelle nutzt. Beim Arduino Uno sind das die Pins 0 und 1. Und ja, mein DHT11 hing auch auf 0, also klappt das nicht. Nachdem ich den Sensor auf Pin 2 umgeändert habe funktioniert das jetzt auch mit der seriellen Ausgabe.
Das interessante an der Arduino-Platform ist ja, dass man für recht wenig Geld ganz interessante Experimente machen kann. Verglichen mit den doch relativ teuren Elektronik-Baukästen aus meiner Jugend ist das echt ein Schnäppchen und man hat sehr viel mehr Möglichkeiten. Möglichkeiten, die Hard- und Software zusammenbringen.