Stap 7: Code
Hier de code voor de kalender voldaan beschrijving:
#include
Voegt 4 servo's toe aan het bestand
Servo Week;
Servo Day1;
Servo Day2;
Servo Maand;
gehele getallen voor het draaien van de servo's (PosD2 staat op 138 omdat die in tegengestelde richting moet draaien)
int PosW = 0;
int PosD1 = 0;
int PosD2 = 138;
int PosM = 0;
VOID Setup {}
Worden de servo's aan op pin 9 t/m 12
Week.attach(12);
Day1.attach(10);
Day2.attach(9);
Maand.attach(11);
}
void loop {}
De kalender wacht iedere keer 1000ms voordat de volgende dag begint
delay(1000);
Draait de week van maandag t/m zondag
Als (PosW < 180)
{
PosW += 30;
Week.write(PosW);
}
Draait de rechter dag cilinder van 0 t/m 9
Als (PosD1 < 180)
{
PosD1 += 18;
Day1.write(PosD1);
}
Draait de rechter dag weer terug als deze bij negen is nl voegt 1 nummer aan de linker dag (bijv van 19 naar 20)
Als (PosD1 == 180)
{
PosD1-= PosD1;
PosD2-= 46;
Day1.write(PosD1);
Day2.write(PosD2);
}
Als de maand voorbij is, reset het de dagen weer naar het beginnen nl gaat de maand vooruit
Als (PosD1 == 18 & & PosD2 == 0)
{
PosD1-= PosD1;
PosD2 += 138;
PosM += 15;
Day1.write(PosD1);
Day2.write(PosD2);
Maand.write(PosM);
}
Als zondag voorbij, draait de week weer terug naar maandag
Als (PosW == 180) {PosW-= PosW; Week.write(PosW); }
Als het jaar voorbij is, reset alle statistieken weer naar hun beginwaarde
Als (PosM == 180)
{
PosD1-= PosD1;
PosD2 += 138;
PosW-= PosW;
PosM-= PosM;
Day1.write(PosD1);
Day2.write(PosD2);
Week.write(PosW);
Maand.write(PosM);
}
}