TAOS TCS34725 Color Sensor komfortabel am Arduino MKR1000

Paket zum Download siehe ganz unten.

Ich bin jetzt seit fast zehn Jahren Beta-Tester für TomTom-Navigationsgeräte, und ab und an werden wir gebeten, Angaben über die Laufzeit der Geräte zu machen, wenn sich ein Tester bei einer speziellen Software-Version dahingehend beschwert.

Da ich keine Lust habe, regelmäßig zum Navi zu rennen, um zu überprüfen, ob es noch läuft/lädt, hab ich mir zu Anfang aus einem Fotowiderstand und einem Arduino Uno in Verbindung mit einem Display aus einem alten Nokia 3310 und einer Steckplatine eine provisorische "Lichtstärkenüberwachungsstation" gebastelt, die mir anzeigt, wie lange das Display des Navis ein Bild gezeigt hat, bevor es sich aufgrund des dann leeren Akkus selbst ausschaltete.

Ich habe aber keine Lust, hier ein Provisorium herumliegen zu haben, und da ich damit auch nur die generelle Funktion testen kann, nicht aber sagen kann, wie lange das Navi z.B. geladen wurde, bevor der Akku voll war, habe ich mir einen TCS34725 Farbsensor besorgt, mit dem ich die Farbe der Betriebszustands-LED erkennen kann, die während des Ladens orange, in voll geladenem Zustand und im normalen Betrieb grün leuchtet.

Aus einem Gewinnspiel hatte ich noch einen Arduino MKR1000 übrig, den wollte ich für dieses Projekt verwenden, da er eingebautes WLAN hat und ich damit ganz einfach ein Web-Interface implementieren könnte, und kein Display bräuchte.


Mittlerweile bin ich mit allem fertig, was ich mir vorgenommen hatte: Es sollte eine komfortable Möglichkeit geben, mehrere Farben zu definieren, bei denen dann jeweils eine Protokollierung und gegebenenfalls eine Aktion ausgelöst wird - ich habe dafür 6 Trigger vorgesehen, bei denen für die einzelnen Farbanteile Rot, Grün und Blau Schwellwerte bestimmt werden können.

Werden alle drei Schwellwerte eines Triggers erreicht und ist der Trigger aktiv (dazu muss seine Zustandsanzeige in der rechten oberen Ecke angeklickt werden, bis sie grün ist, siehe Trigger "B" im Bild), dann wird dieser Trigger ausgelöst (die Zustandsanzeige wechselt nach Orange, siehe Trigger "A"), die Aktivierung wird protokolliert und eine gegebenenfalls ausgewählte Aktion ausgeführt.

Mögliche Aktionen sind:

  • Keyboard
    Hiermit wird ein Tastenanschlag der Tastatur an dem Computer ausgelöst, der mit dem MKR1000 per USB verbunden ist
  • Pin 9
    Der physikalische Pin Nummer 9 am MKR1000 wird kurz umgeschaltet, für nachfolgende Hardware
  • Mouse
    Hier kann eine Bewegung des Mauszeigers in der X- und Y-Achse sowie der Druck der linken, mittleren oder rechten Maustaste ausgelöst werden
  • URL
    Hier kann eine URL eingegeben werden, die vom MKR1000 aufgerufen wird. Im hinteren Teil der URL können die Platzhalter $R, $G und $B verwendet werden, sie werden dann im Aufruf durch die entsprechenden Farbwerte ersetzt.


Angeschlossen wird der TCS34725 an den MKR1000 wie folgt:

  • VIN - VCC
  • GND - GND
  • SCL - Pin12
  • SDA - Pin11
  • LED - Pin10


Hier kannst Du Dir meinen aktuellen Stand herunterladen, er enthält sowohl die INO-Dateien für den MKR1000 (um sie aufzuspielen brauchst Du die Arduino IDE) als auch die Dateien für das Web-Interface. Achtung: Ersetze WLANSSID und WLANPASSWORD in der ColorSensor.ino durch für Dein WLAN passende Werte!

Wenn Du noch Fragen hast kannst Du mir gerne eine eMail schicken.