Le kit Arduino sans soudure pour débutants dispose de tout ce dont vous avez besoin pour créer un lecteur MP3, mais JJ l'a encore amélioré en ajoutant un capteur de lumière ambiante Vishay à la combinaison.
Dans la boîte, nous disposons d'un générateur de musique jouant de la musique.
Voir les produits connexes
Créons notre propre application dans laquelle la musique lue dépend de la lumière ambiante. Le VEML6030 de Vishay est utilisé comme capteur de lumière ambiante pour nous donner le nombre de lux. Les données sont obtenues via un bus I2C.
Voir les produits connexes
Même si Arduino facilite grandement la programmation du bus I2C, il est nécessaire de comprendre les bases afin de le programmer.
Le bus I2C est une norme largement utilisée pour les capteurs. Il a été conçu par Philips (appelé NXP aujourd'hui) et fonctionne avec 2 lignes seulement : une ligne pour l'horloge (appelée SCL) et une ligne pour les données (appelée SDA). Cette dernière ligne est bidirectionnelle. Ces lignes teo sont des drains ouverts et nécessitent des résistances d'excursion haute. Il s'agit des résistances que vous voyez sur la platine d'expérimentation. Évidemment, sur une application finale, vous concevez ces résistances sur votre carte. Le maître du bus génère l'horloge et initie la communication avec l'esclave. Chaque dispositif esclave dispose d'une adresse 7 bits.
Voir les produits connexes
Le protocole est le suivant : le maître envoie un bit de départ (qui est une transition haut-bas du SDA avec SCL haut) suivi de l'adresse 7 bits avec laquelle il souhaite communiquer, puis suivie par un bit unique s'il souhaite écrire sur (bit à 0) ou lire depuis (bit à un) l'esclave.Après chaque transmission 8 bits, l'esclave répond par un bit ACK (le SDA est mis en bas). Si le transmetteur voit un bit 1, il s'agit d'un NACK (non confirmé)
La fin de la communication correspond à un bit STOP. Il s'agit d'une transition bas-haut du SDA avec SCL haut. Comme le bit de départ et d'arrêt ont lieu lorsque le SCL est haut, toute autre transition du SDA a lieu avec le SCL bas.
Nous comprenons maintenant comment I2C fonctionne, nous lisons les données dans la fiche technique du VEML6030 afin de connaître les valeurs à écrire dans notre programme.
Tout d'abord, en lisant le schéma du VEML6030, nous pouvons voir qu'une broche d'adresse permet la configuration de la valeur d'adresse. Sur notre carte, cette broche est reliée à la terre, ce qui signifie que l'adresse du dispositif est 0x10.
La fiche technique explique l'interface I2C et comment envoyer des commandes. Lorsque nous devons écrire sur le dispositif, nous devons envoyer l'adresse, le code de commande. Dans le VEML6030, tous les registres sont à 16 bits et le LSB doit être en premier. Par conséquent, nous voulons d'abord configurer le VEML6030 avec un gain d'un quart, un temps d'intégration de 100 ms et nous devons alimenter le capteur de lumière ambiante, le LSB est égal à 0x00 et le MSB est égal à 0x18. Dans notre programme, nous avons défini les micros, inclus la bibliothèques de câblage. Dans la configuration, Wire.begin() est appelé, puis dans la fonction de boucle, nous commençons une transmission avec l'adresse du VEML6030, la commande de registre (0x00 dans le cas présent), nous envoyons le LSB et le MSB, puis endTransmission. Pour une explication plus détaillée de ces commandes, vous pouvez consulter le site Web Arduino sur lequel les bibliothèques sont expliquées.
Même méthode pour lire les données. Nous commençons une transmission, envoyons la valeur de registre dans laquelle nous voulons lire les données, la fonction requestFrom avec l'adresse et 2 octets pour la lecture et enfin nous lisons les données.
Nous convertissons le niveau de lux en un entier, puis nous choisissons la musique à diffuser en fonction de la valeur de lux.
Si inférieur à 20, nous diffusons une musique pour dormir. Entre 20 et 50 lux, une musique de relaxation, entre 50 et 800, une musique pour la vie active et à plus de 800, nous imaginons que vous êtes sorti pour une fête et prêt pour de la musique techno.
Vous êtes maintenant prêt à créer votre propre appli avec tout type de capteurs et à personnaliser votre lecteur de musique.