Genuino Day 2016 bei Watterott electronic

Send to Kindle

Am Arduino/Genuino Day 2016 am 2. April 2016 habe ich wieder zwei Workshops bei Watterott electronic GmbH in Leinefelde gehalten. Beide waren knallvoll und alle Beteiligten hatten eine Menge Spaß. Mitunter war etwas Improvisation erforderlich.

Der erste Workshop entsprach dem Workshop aus dem letzten Jahr, wir haben per Arduino/Genuino einen Photowiderstand ausgelesen und dann mit einem RF-Link-Sender eine Funksteckdose aus- und angeschaltet. Der Code kann in meinem Github-Repo aufgerufen werden. Zu der aufgekommenen Problematik, dass viele neuere Funksteckdosen selbst lernen, werde ich in den nächsten Tagen einen separaten Beitrag hier im Blog veröffentlichen.

Der zweite Workshop kombinierte Real Time Clock, Arduino und einen 12-Pixel-WS2812B Ring zu einer Uhr. Über die WS2812B habe ich im letzten Beitrag schon etwas geschrieben. Es handelt sich um einzeln adressierbare LEDs: Mit nur einem PIN am Arduino kann man bis zu 1024 LEDs mit je 24 Bit Farben ansteuern. Watterott verkauft WS2812B auf PCBs in Ringform mit 12, 24 und 60 LEDs. Die Teilnehmer des Workshops bekamen die folgenden Bauteile gestellt (und durften diese mitnehmen):

Fertiger Aufbau auf einem Breadboard

Fertiger Aufbau auf einem Breadboard

Wir haben dann in zwei Gruppen Code für die beiden wesentlichen Komponenten erarbeitet. Eine Gruppe hat eine Funktion showClock(uint8_t hour, uint8_t min, uint8_t sec) erstellt, welche eine übergebene Zeit auf dem Neopixel-Ring anzeigt. Die andere Gruppe musste die Uhr auslesen und eine Funktion zum Setzen über die serielle Schnittstelle beisteuern. Den erarbeiteten Code habe ich etwas geglättet und in mein GitHub-Repo gestellt. Wer es nachspielen möchte:

  1. RV8523 Jumper verlöten (oder Pull-Up-Widerstände nutzen!) und an A4 und A5 anschließen
  2. Im Beispielcode der RV8523-Bibliothek (Example.ino) Zeile 34 auskommentieren, um die Uhr auf einen plausiblen Wert zu setzen und dann auszulesen
  3. Mit dem Beispielcode SetClock.ino die Uhr per Linux-Kommandozeile oder seriellem Monitor auf exakte Zeit setzen
  4. LED-Ring mit 220 bis 470 Ohm zwischen Pin und DI anschließen und mit dem Beispiel strandtest.ino der Adafruit-Neopixel-Bibliothek testen (in Zeile 6 Pin anpassen, in Zeile 16 Zahl der LEDs)
  5. Klappt nun alles? Dann den von mir geglätteten Beispielcode herunterladen, installieren und als Basis für eigene Erweiterungen nutzen.

Have fun!

Anmerkungen:

  • Jede LED zieht bis zu 30mW, bei mehr als 24 LEDs daher bitte nicht am USB-Port testen, sondern zusätzlich ein Netzteil für die WS2812 nutzen!
  • Maik hat unabhängig von mir das Beispiel ebenfalls erweitert
  • Bitte auf Google+ diskutieren!