Stap 3: Arduino programma
Alles wat we doen hier in Arduino vertelt de stappenmotor te verplaatsen naar een bepaalde hoek en vervolgens weer teruggaan. Terwijl dit wordt gedaan, stuurt deze dat het huidige hoek verwerking via seriële communicatie is. Voor meer informatie kunt u kijken naar de video of lezen via de commentaar in de code. Maar zal ik de basics hier beschrijven. Bekijk die de video en u kunt overslaan dit leest!
Dus als we door alle de invoering overslaan en direct in de lus, eerst we te lezen van de eerste potentiometer en de waarde toewijzen aan de vertraging tussen elke stap en de snelheid voor het LCD-scherm. De vertraging en snelheid zijn in principe hetzelfde, de vertraging regelt de snelheid dat het 'EPD', ook de snelheid, alleen voor de weergave van de snelheid op het LCD-scherm. Dan moeten we de tweede potentiometer aan 'angleEnd', oftewel de verste hoek die we de stepper naar wilt toewijzen.
'pass', is het aantal keren dat de scanner heeft gedraaid naar het laatste hoek en terug naar het uitgangspunt. Dus van 0deg naar angleEnd is één keer, en terug naar de 0deg is twee fases. We moeten controleren om te zien dat als het aantal stadia die het heeft gedaan kleiner dan het aantal is willen we het te doen. Zo ja, dan instellen we van de stepper richting. We kunnen dit doen met behulp van de modulo functie '%', welke ons toestaat te controleren het aantal stadia is EVEN of oneven. Als 'pass %2' gelijk is aan 0, dan het is 'pass' is EVEN en wij moeten naar voren draaien. Als het gelijk aan 1 is, dan het is vreemd en we moeten terug draaien.
In de lus dat terugkeren om het begint punt (de lus voor een oneven aantal stadia), kunnen we een bericht te sturen voor de verwerking van het te vertellen dat we een pass hebt gedaan en wil om te stoppen met wat het doet, we zijn klaar scannen! Zo kunnen wij de hoek 500 sturen, want dit is natuurlijk niet een coördinaat omdat er meer dan 360.
Wij hebben dus de richting motoren instellen maar niet verplaatst het overal... Om dat te doen, moeten we een korte puls voor 300 microseconden verzenden met de stap-pin op de stappenmotor-driver.
Volgende wij kan het verhogen van de variabele 'pass' als de hoek is verdergegaan dan of 'angleEnd' of de langetermijnproblemen positie (nul graden).
Dan sturen we eigenlijk de huidige hoek voor verwerking.
En schrijf dan een load van spullen voor de LCD-display. De reden die ik in een bos van zwarte ruimten gezet heb voordat elke waarde is geschreven is zodat een groot aantal zoals '150' is uitgeschakeld vóór een kleiner aantal, zoals '5' moet worden weergegeven. Als ik dit niet doen, dan zou worden weergegeven als '550' omdat de '150' nog steeds op de achtergrond aanhoudende is. Ga weg groot aantal.
Ten slotte kunnen we in 'del' als de vertraging die hoe lang er bepaalt moet worden gewacht voordat doen dat allemaal weer. Dit bepaalt de snelheid van de motor.