Stap 4: Bevestig LED strips aan Hallsensor
Sluit de twee borden door de twee breadboard naast elkaar te plaatsen en aansluiten alles met behulp van het schema in deze stap.
Alle code kan worden gedownload van: https://github.com/MaakbareWereld/LEDlongboard
Open LEDstripcontrol.ino en speedMeasurement.ino in de Arduino IDE. Beide programma's hebben sommige belangrijke constanten die zijn gedefinieerd op de top die u moet mogelijk wijzigen: het aantal LEDs, de maximale snelheid die je wilt gaan (in km/h) en de diameter van uw wiel. Verander hen in de juiste instellingen.
Uploaden van de code LEDstripcontrol.ino naar de juiste Arduino in het schema (degene beheersen de LEDstrips, die liep teststrand tot nu toe) en speedMeasurement.ino aan de linker Arduino in het schema (degene die aangesloten op de Hallsensor).
Alles testen door het draaien van het wiel!
Kantlijnnotitie: waarom twee Arduino van?
Het lijkt misschien overkill van twee Arduino gebruiken, maar in dit geval ik echt moest. De fastled bibliotheek die we gebruiken om te rijden de neopixels is erg kieskeurig met betrekking tot de timing: 800 keer per seconde de leds bijgewerkte informatie nodig. Wanneer dit gebeurt, wordt alle code bewerkingen stoppen voor een paar milliseconden. Zelfs (vooral) zijn alle interrupts surpressed. Als, in deze tijd, zou een magneet de hall effect sensor doorgeeft, zou die meting verloren gaan. Een snelle achterkant van de envelop leert dat dit vrij regelmatig gebeuren zou. Daarom de tweede Arduino meet de snelheid van de Raad van bestuur en wordt deze informatie doorgegeven aan de eerste Raad van bestuur.
Normaal gesproken voor informatie doorgeven, zou men gebruik maken van een digitaal protocol (Serial, I2C, etc.) Echter, deze protocollen zouden ondergaan als hetzelfde probleem: de mededeling aan de LEDstrip onderbreken. Dus ging ik met analoge communicatie. De snelheid wordt omgezet in een analoog signaal op (PWM) pin 9 van de meting van de snelheid Arduino. Dit wordt gelezen door de Arduino LEDstrip-controlerend op analoge input A0.