Naar aanleiding van de vraag van
@mark mms over het besturen met Arduino hier een apart draadje daarover.
Mark, Een van de vragen die je had is: hoe kan ik na een druk op de knop even een programmatje aflopen.
Ik heb zoiets in gebruik voor mijn animaties op mijn boerderij module. De truuk is dat in de loop een soort schakelaar zit. als deze "uit"is, doet de loop niets anders dan kijken of de knop is ingedrukt. Als deze "aan" is loopt het programmaatje, en aan het einde van dat programmaatje wordt de schakelaar weer "uit" gezet.
In onderstaand voorbeeld is de schakelaar de variabele x. Deze wordt op "2"gezet na het indrukken van de knop. Vervolgens telt x terug naar 0. Zo lopen mijn animaties van de boerenknecht 3 keer. Daarna is het weer wachten op de knop die wordt ingedrukt.
void loop()
{
while (x>0) {
// trekken door de knecht in verschillende patronen
trekPatroon1 ();
delay(5000);
trekPatroon2 ();
delay(3500);
trekPatroon3 ();
delay(4500);
x--;
}
if (readKnop(knoppin) ) {
x = 2;
}
}
"Readknop" is een functie om de knop uit te lezen. Die is voor de setup() gedefinieerd:
#define knoppin A1 // input pin knop
int x = 1; // start with one cycle on startup
// functie om knop uit te lezen en 'spikes' te negeren
boolean readKnop (int knop) {
boolean knopvalue = false;
if (digitalRead (knop) == LOW) {
delay (150);
if (digitalRead (knop) == LOW) {
knopvalue = true;
}
}
return knopvalue;
}
Misschien kun je hier iets mee. Als je wilt kan ik het hele programmatje wel posten.
Rob