Longboard med NeoPixel LEDStrip reagera hastighet (4 / 5 steg)
Steg 4: Koppla LED strips till hall sensor
Anslut de två styrelserna genom att placera de två brödunderläggen bredvid varandra och upphakning av allt med schematiskt i detta steg.
All kod kan laddas ner från: https://github.com/MaakbareWereld/LEDlongboard
Öppna LEDstripcontrol.ino och speedMeasurement.ino i Arduino IDE. Båda programmen har några viktiga konstanter som definieras på toppen som du kan behöva ändra: antalet lysdioder, högsta hastighet du vill gå (i km/h) och diametern på din hjul. Ändra dem till lämpliga inställningar.
Ladda upp koden LEDstripcontrol.ino till rätt Arduino i schemat (en kontroll av LEDstrips, som var igång teststrand hittills) och speedMeasurement.ino till vänster Arduino i schemat (den som är ansluten till hall sensorn).
Testa allt genom att snurra hjulet!
sida notera: Varför två Arduino's?
Det kan verka som overkill att använda två Arduino, men i detta fall jag verkligen behövde. Fastled biblioteket som vi använder för att köra neopixels är väldigt kräsen när det gäller timing: 800 gånger per sekund behöver lysdioderna uppdaterad information. När detta händer, stoppa alla åtgärder för några millisekunder. Även (framför allt) alla avbrott är surpressed. Om det i denna tid, en magnet skulle passera Halleffekten sensorn, skulle som mätning gå förlorad. En snabb baksidan av kuvertet lär sig att detta skulle hända ganska regelbundet. Därför andra Arduino mäter hastigheten på styrelsen och skickar denna information till den första styrelsen.
Normalt, information passerar skulle man använda ett digitalt protokoll (serienummer, I2C, etc.) Dock dessa protokoll kan drabbas av samma problem: att avbryta meddelandet till LEDstrip. Därför gick jag med analog kommunikation. Hastigheten är översatt till en analog signal på (PWM) stift 9 i speed-mätning Arduino. Detta läses av LEDstrip-kontrollerande Arduino på analog ingång A0.