Lecteur MP3 à détection de lumière à l'aide du kit Arduino sans soudure pour débutant d'Adafruit

Publié par

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

3208

Adafruit Industries Cartes et kits de développement de systèmes intégrés Afficher

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

VEML6030

Vishay Capteur de lumière ambiante Afficher

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

PCF8584T/2,512

NXP Semiconductors Contrôleurs d’interface Afficher

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.

Vidéos récentes

Désolé, le filtre sélectionné n’a renvoyé aucun résultat.

Nous avons mis à jour notre politique de confidentialité. Prenez un moment pour lire les changements. En cliquant sur "J'accepte", vous acceptez la clause de confidentialité d'Arrow Electronics ainsi que les conditions d'utilisation.

Notre site Internet place des cookies sur votre appareil pour améliorer votre expérience et pour améliorer notre site. Pour en savoir plus sur les cookies que nous utilisons et la façon de les désactiver, cliquez ici. Des cookies et des technologies de suivi peuvent être utilisés à des fins de marketing. En cliquant sur « Accepter », vous consentez au placement de cookies sur votre appareil et à notre utilisation de technologies de suivi. Cliquez sur « En savoir plus » pour de plus amples informations et instructions sur la façon de désactiver les cookies et les technologies de suivi. Même si l'acceptation des cookies et technologies de suivi est volontaire, leur désactivation peut entraîner un mauvais fonctionnement du site Internet et certaines publicités peuvent être moins pertinentes pour vous. Nous respectons votre confidentialité. Lisez notre politique de confidentialité ici.