Stap 6: Routines (of: waar begint de pret)
Op dit moment hebben we de meeste van de poot werk gedaan. Nu kunnen we beginnen met het ontwikkelen van spannende toepassingen voor ons project. Dit is waar de Arduino meer betrokken raakt. Wij hechten onze fotodiode (samen met een grote weerstand [iets over de volgorde van 10 K] om te voorkomen dat onze Arduino wordt gebakken door teveel stroom) op een van de analoge ingangen van de Arduino. Wat volgt is een Arduino steekproefprogramma "blinds" genoemd die gebruik maakt van een "golven"-functie te vinden van relatieve maxima van de lichtintensiteit als een functie van blinde hoek elke 30 minuten. Merk op dat ik ben met behulp van de Arduino Leonardo's PWM pinnen 9, 10 en 5 aan controlerende logica van de brug, en die restime hangt af van de specifieke kenmerken van de installatie (bijvoorbeeld motor spanning, hoeveel draaien neemt te openen uw jaloezieën, enz.).int c1 = 9;
int c2 = 10;
int inschakelen = 5;
int. temp;
Booleaanse links = false;
Booleaanse rechts = false;
int rightval;
int leftval;
int restime = 40;
VOID Setup {}
pinMode (c1, OUTPUT);
pinMode (c2, OUTPUT);
pinMode (inschakelen, uitvoer);
}
void loop {}
links = false;
rechts = false;
Dither();
delay(2800000);
}
ongeldig dither() {}
while(left==False|| rechts == false) {}
Temp=analogRead(a0);
Als (links == false) {}
digitalWrite (inschakelen, laag);
digitalWrite (c1, hoge);
digitalWrite (c2, laag);
digitalWrite (inschakelen, hoge);
delay(restime);
digitalWrite (c2, hoge);
leftval=analogRead(a0);
digitalWrite (c1, laag);
delay(restime);
digitalWrite (inschakelen, laag);
if(leftval>Temp)
links = false;
anders
links = true;
}
Als (recht == false) {}
digitalWrite (inschakelen, laag);
digitalWrite (c1, laag);
digitalWrite (c2, hoge);
digitalWrite (inschakelen, hoge);
delay(restime);
digitalWrite (c2, laag);
rightval=analogRead(a0);
digitalWrite (c1, hoge);
delay(restime);
digitalWrite (inschakelen, laag);
if(rightval>Temp)
rechts = false;
anders
rechts = true;
}
}
Graag wil ik uiteindelijk krijgen mijn montage/mechanische problemen geregeld genoeg om een time-lapse video opnemen van dit programma dat wordt uitgevoerd gedurende de dag. Als ik ooit dat aan het werk, zal waarschijnlijk ik die video hier.