loop tot een schakelaar ingedrukt is

hallo,

ik ben niet zo ervaren met arduino maar wilde eens proberen een automatisch schuifdeur te maken.

ik gebruik 1 knop en 2 eindeloopcontacten. wanneer de linker eindeloop en de start knop ingedrukt zijn zou de poort naar rechts moeten gaan tot de rechter eindeloop ingedrukt wordt.

nu kan ik er niet in slagen om dit te laten werken.

ik probeerde reeds veel dingen maar geen enkele keer werkte het programma zoals het moest.

motor.step(1, FORWARD, SINGLE); // deze functie laat de motor 1 stap zetten, deze zou moeten herhaald worden tot de rechter eindeloop schakelaar ingedrukt wordt.

weet iemand hoe ik dit kan oplossen? heb reeds geprobeerd met een do while maar dit werkte niet, misschien deed ik iets fout maar heb van alles geprobeerd.

ik gebruik deze bibliotheek ( AFMotor.h )
ik vond iets over een functie: release() maar ik begrijp niet hoe ik deze kan invoeren kan iemand me helpen?

in bijlage vinden jullie een klein programma waar de motor eerst naar rechts gaat voor 3100 stappen en daarna naar links voor 3100 stappen.

alvast bedankt

test1.ino (494 Bytes)

Adafruit-Motor-Shield-library-master.zip (5.92 KB)

Hoi electronicbert.

Ik heb die code niet bekeken, want ik had er ff geen zin in om m te downloaden.
Je kunt je code ook hier neerzetten, uiteraard tussen [code] [/code] tags.
Het is niet zo moeilijk hoor, wat je wil doen.
Maar je moet niet alleen de huidige stand van zaken in de gaten houden, maar ook de recente stand van zaken.
Als je de motor laat bewegen wanneer er op de knop word gedrukt én een van de eindschakelaars is ingedrukt, dan beweegt ie dus een klein stukje, tot de eindschakelaar of de knop niet langer is ingedrukt.
Dus moet je dan een dingetje maken die bijhoudt dat er iets bewogen moet worden.
Zolang dat dingetje het zegt, en die andere eindschakelaar niet werd ingedrukt, kunnen er dus stappen worden gezet.

Zo simpel is het.
Als je dat voor mekaar hebt, kun je ook nog iets bedenken om het om te draaien.

kijk of de deur dicht moet en de eindschakelaar nog niet bediend is, doe dan 1 stap, wacht even bijv 5 millis.
eronder nog een regel met de andere richting.
en klaar ben je eigenlijk.
test bovenstaand.
volgende stap is om het met een drukknop te doen, dus een open knop en een sluit knop.
gebruik dan ook een stopknop.