Arduino Lektion 60: Sensor für Licht, Farbe und Gesten (APDS-9960)

Der Licht, Farbe und Gesten Sensor (APDS-9960) wurde mir kostenfrei vom Onlineshop Paradisetronic.com zur Verfügung gestellt.

Licht, Farbe und Gestensensor APDS9960 von Adafruit
Licht, Farbe und Gestensensor APDS9960 von Adafruit

Bezug

Den Sensor kann man für  10,79€ bei Paradisetronic.com beziehen. Die Versandkosten in höhe von 4,5€ (für Inlandsversand) kommen zusätzlich dazu.

Ab einem bestellwert von 40€ entfallen die Versandkosten, daher einfach mal im Shop schauen, es lohnt sich.

Technische Daten des Sensors

  • Betriebsspannung 3.3V bis 5V
  • Abmaße 17,8mm x 17,8mm x 3,2mm
  • Gewicht 1,3g

Anschluss

Der Sensor verfügt über 6 Pins welche wiefolgt an den Arduino UNO angeschlossen werden:

APDS-9960Arduino UNO
VIN3,3V oder 5V
3Vo 
GndGND
SCLSCL
SDASDA
IntInterrupt Pin des Sensors

In diesem Beispiel verwende ich den Arduino UNO welcher wohl der meist verbreiteste Microcontroller ist. Jedoch funktioniert dieser Sensor auch an anderen Microcontrollern, da muss man jedoch prüfen wo die SCL & SDA Pins liegen. Eine Google Suche mit „<<Microcontrollername>> pinout“ führt hier immer zum Ziel.

Der mir vorliegende Arduino UNO Clone von der Firma Sunfounder verfügt über extra hinausgeführte SCL & SDA Pins.

Arduino UNO SCL & SDA Pins
Arduino UNO SCL & SDA Pins

Diese beiden Pins sind auf der Rückseite des Microcontrollers beschriftet beschriftet.

Beschriftung der SCL & SDA Pins auf der Rückseite des Arduino UNOs
Beschriftung der SCL & SDA Pins auf der Rückseite des Arduino UNOs

Interrupt Pin

Der Interrupt Pin liefert ein Signal wenn die nächste Messung erfolgen kann oder die Messung zu lange dauert.  Der Interrupt Pin wird mit einem digitalen Pin des Microcontrollers verbunden und als Eingang gesetzt. 

Schaltung

Der Sensor wird wiefolgt an den Arduino UNO angeschlossen.

Schaltung APDS-9960 am Arduino UNO
Schaltung APDS-9960 am Arduino UNO

Quellcode

Für den nachfolgenden Quellcode wird die Adafruit Bibliothek für den Sensor benötigt. Diese Bibliothek kann unter https://github.com/adafruit/Adafruit_APDS9960/archive/master.zip als Zip Datei heruntergeladen werden. Wie man eine Bibliothek in die Arduino IDE einbindet, habe ich im Tutorial Arduino IDE, Einbinden einer Bibliothek erläutert.

Wenn man nun die Bibliothek erfolgreich eingebunden hat, erhält man gleich zu jedem „Teil“ des Sensors ein Beispiel.

Beispielsketche - Adafruit APDS9960 Bibliothek
Beispielsketche – Adafruit APDS9960 Bibliothek

Die nachfolgenden Sketche sind aus teilen der oben genannten Beispiele entstanden. Ich habe diese nur etwas abgewandelt und vor allem an den wichtigen stellen Kommentiert.

Erkennen einer Geste

Im nachfolgenden Quellcode möchte ich die Gesten, d.h. eine Bewegung erkennen und auswerten.
Wenn sich vor dem Sensor etwas von rechts nach links bewegt, so soll dann die LED Bar ein Lauflicht in der Richtung anzeigen und andersherum.

Adafruit APDS9960 Sensor am Arduino UNO mit LED Bar zur Richtungsanzeige.
Adafruit APDS9960 Sensor am Arduino UNO mit LED Bar zur Richtungsanzeige.

Farbe erkennen

Für den nachfolgenden Quellcode wird zusätzlich eine RGB LED benötigt, ich habe die LED RGB 140C05 verwendet.

Video

In dem Video ist gut zuerkennen das eine separate Lichtquelle für den Sensor benötigt wird damit dieser korrekt arbeitet. Ich habe hier die LED eines Handys benutzt da dieses sehr stark ist. Ich habe zusätzlich eine 10mm RGB LED angeschlossen welche den RGB Wert als Licht wieder gibt. 

 

Das Video habe nicht extra zu YouTube hochgeladen, da die 5MB den Aufwand nicht rechtfertigen.

 

Abstandssensor

Der Sensor APDS9960 kann einen Abstand zu einem Objekt vor dem Sensor messen.

Der Sensor kann Abstände zwischen 0 cm und 6,5 cm erkennen.
Der Wert des Abstandes wird als ganzzahliger, positiver Wert zurück gegeben.

Video

 

Adafruit APDS9960 - Abstand, Geste und Farbsensor

Verwandte Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.