Der lichtempfindliche MP3-Player mit dem lötfreien Arduino Starter-Paket

Veröffentlicht von

Das lötfreie Arduino Starter-Paket enthält alles, was Sie brauchen, um einen MP3-Player zu schaffen, aber JJ ging einen Schritt weiter und fügte einen Vishay-Umgebungslichtsensor zum Mix hinzu.

Wir haben den Adafruit Music Maker direkt nach dem Auspacken dazu gebracht, Musik zu spielen.

Ähnliches Produkt:

3208

Adafruit Industries Eingebettete Systementwicklungsboards und -kits Anzeigen

Erstellen wir unsere eigene Anwendung, bei der die wiedergegebene Musik vom Umgebungslicht abhängt. Der VEML6030 von Vishay wird als Umgebungslichtsensor zur Ermittlung des Lux-Werts genutzt. Die Daten werden über einen I2C-Bus abgefragt.

Ähnliches Produkt:

VEML6030

Vishay Umgebungslichtsensor Anzeigen

Mit Arduino ist die Programmierung des I2C-Bus zwar sehr leicht, zur Programmierung muss man aber trotzdem die Grundlagen verstehen.
Der I2C-Bus ist ein Standard, der oft für Sensoren zum Einsatz kommt. Er wurde von Philips konzipiert (heute NXP) und arbeitet mit nur 2 Leitungen: eine für den Zeitgeber (SCL genannt) und eine Leitung für Daten (SDA genannt). Diese letztere Leitung ist bidirektional. Diese Teo-Leitungen sind Open-Drain und benötigen Pull-Up-Widerstände. Diese Widerstände sehen Sie auf der Leiterplatte. Natürlich sind diese Widerstände bei einer fertigen Anwendung direkt auf der Platine. Der Master des Bus generiert den Takt und initiiert die Kommunikation mit dem Slave. Jedes Slave-Gerät verfügt über eine 7-Bit-Adresse.

Ähnliches Produkt:

PCF8584T/2,512

NXP Semiconductors Schnittstellencontroller Anzeigen

Das Protokoll lässt sich wie folgt beschreiben: Der Master sendet ein Start-Bit (das ist ein Hoch-Niedrig-Übergang des SDA mit SCL hoch) gefolgt von der 7-Bit-Adresse der Adresse, mit der kommuniziert werden soll. Anschließend folgt ein einzelnes Bit, das angibt, ob auf den Slave geschrieben (Bit ist 0) oder von diesem gelesen werden soll (Bit ist 1). Nach jeder 8-Bit-Übertragung antwortet der Slave mit einem ACK-Bit (SDA ist niedrig). Wenn der Sender ein Bit 1 sieht, ist dies ein NACK (nicht bestätigt).

Das Ende der Kommunikation entspricht einem STOP-Bit. Dabei handelt es sich um einen Niedrig-Hoch-Übergang des SDA mit SCL hoch. Start und Stop erfolgen mit SCL hoch und alle anderen SDA-Übergänge mit SCL niedrig.

Jetzt verstehen wir, wie I2C funktioniert, und können die Daten im Datenblatt des VEML6030 lesen und dadurch die Werte kennenlernen, die wir in unserem Programm schreiben wollen.

Beim Lesen des VEML6030-Schemas sehen wir als Erstes einen Adresse-Pin, der die Konfiguration des Adresswerts ermöglicht. Auf unserer Platine ist dieser Pin geerdet, die Adresse des Geräts ist also 0x10.
Im Datenblatt werden die I2C-Schnittstelle und das Senden von Befehlen erläutert. Wenn wir auf das Gerät schreiben müssen, müssen wir die Adresse und den Befehlscode senden. Im VEML6030 sind alle Register 16-Bit und das LSB muss zuerst kommen. Wir möchten den VEML6030 also mit einem Gain von einem Viertel und einer Integrationszeit von 100 ms konfigurieren. Zudem müssen wir den Umgebungslichtsensor einschalten, der LSB beträgt 0x00 und der MSB 0x18. In unserem Programm haben wir die Mikros definiert, binden die Wire-Bibliothek ein, rufen im Setup Wire.begin() auf und beginnen dann in der Schleifenfunktion eine Übertragung mit der Adresse des VEML6030, den Register-Befehl (im aktuellen Fall 0x00), dann senden wir LSB und MSB und schließlich rufen wir endTransmission auf. Eine genauere Erklärung dieser Befehle finden Sie auf der Arduino-Website bei den Bibliotheksbeschreibungen. 

Ähnlich können wir die Daten auch lesen. Wir beginnen eine Übertragung, senden den Wert des Registers, dessen Daten wir lesen möchten, indem wir die requestFrom-Funktion mit der Adresse und 2 zu lesenden Bytes aufrufen und lesen schließlich die Daten.

Wir konvertieren den Lux-Wert in eine Ganzzahl und entscheiden schließlich je nach Lux-Wert, welche Musik gespielt werden soll.
Falls unter 20, spielen wir eine Musik zum Einschlafen. Bei zwischen 20 und 50 Lux entspannende Musik, zwischen 50 und 800 belebende Musik und bei über 800 Lux stellen wir uns eine Party draußen vor und entscheiden und für Techno-Musik.

Jetzt können Sie Ihre eigene App mit beliebigen Sensoren erstellen und Ihren Musikplayer anpassen.

Neueste Videos

Leider hat Ihre Filterauswahl keine Ergebnisse zurückgegeben.

Aktuelles über Elektronikkomponenten­

Wir haben unsere Datenschutzbestimmungen aktualisiert. Bitte nehmen Sie sich einen Moment Zeit, diese Änderungen zu überprüfen. Mit einem Klick auf "Ich stimme zu", stimmen Sie den Datenschutz- und Nutzungsbedingungen von Arrow Electronics zu.

Wir verwenden Cookies, um den Anwendernutzen zu vergrößern und unsere Webseite zu optimieren. Mehr über Cookies und wie man sie abschaltet finden Sie hier. Cookies und tracking Technologien können für Marketingzwecke verwendet werden.
Durch Klicken von „RICHTLINIEN AKZEPTIEREN“ stimmen Sie der Verwendung von Cookies auf Ihrem Endgerät und der Verwendung von tracking Technologien zu. Klicken Sie auf „MEHR INFORMATIONEN“ unten für mehr Informationen und Anleitungen wie man Cookies und tracking Technologien abschaltet. Das Akzeptieren von Cookies und tracking Technologien ist zwar freiwillig, das Blockieren kann aber eine korrekte Ausführung unserer Website verhindern, und bestimmte Werbung könnte für Sie weniger relevant sein.
Ihr Datenschutz ist uns wichtig. Lesen Sie mehr über unsere Datenschutzrichtlinien hier.