Étape 4: Fixez le LED bandes à capteur hall
Connectez les deux planches en plaçant les deux breadboards côte à côte et tout accrocher en utilisant le schéma dans cette étape.
Tout le code est téléchargeable sur : https://github.com/MaakbareWereld/LEDlongboard
Ouvrez LEDstripcontrol.ino et speedMeasurement.ino dans l’IDE Arduino. Les deux programmes ont certaines constantes importantes définies sur le dessus que vous pourriez avoir besoin de changer : le nombre de LEDs, la vitesse maximale que vous voulez aller (en km/h) et le diamètre de la roue. Modifier les paramètres appropriés.
Télécharger le code LEDstripcontrol.ino à l’Arduino droite dans le schéma (celui contrôlant la LEDstrips, qui courait teststrand jusqu'à présent) et speedMeasurement.ino à l’Arduino gauche dans le schéma (celui qui est connecté à la sonde de hall).
Tester le tout en tournant la roue !
note subsidiaire : Pourquoi deux de Arduino ?
Il peut sembler exagéré d’utiliser deux de l’Arduino, mais dans ce cas, j’ai vraiment besoin de. La bibliothèque de fastled que nous utilisons pour conduire le neopixels est très pointilleux en ce qui concerne le calendrier : 800 fois par seconde les leds besoin d’informations mises à jour. Lorsque cela se produit, toutes les opérations de code arrêter pendant quelques millisecondes. Même (surtout) toutes les interruptions sont supprimées. Si, dans ce temps, un aimant passerait le capteur à effet hall, cette mesure serait perdue. Un accès rapide à l’arrière de l’enveloppe apprend que cela arriverait assez régulier. Par conséquent, l’Arduino deuxième mesure la vitesse du Conseil d’administration et transmet cette information au premier Conseil.
Normalement, pour plus d’informations en passant, on utiliserait un protocole numérique (série, I2C, etc..) Toutefois, ces protocoles pourraient souffrir du même problème : interruption de la communication au LEDstrip. Par conséquent, je suis allé avec communication analogique. La vitesse se traduite par un signal analogique sur la broche 9 de (PWM) de l’Arduino mesure de la vitesse. C’est lu par l’Arduino LEDstrip-contrôle sur A0 d’entrée analogique.