Arduino kontrollerade kök Timer (1 / 10 steg)
Steg 1: Hur fungerar det?
Jag lägger alltid detta steg för att ge dig en bättre förklaring av det inre arbetet i detta projekt. Detta kommer att hjälpa dig att lära dig några nya saker istället för att bara kopiera och att göra projektet och hjälper dig att göra några användbara ändringar också. Kom ihåg att du alltid ska vara säker på grunderna innan vi går djupare in i saker.
Så börjar processen när du startar enheten och it uppmanas du att ange hur många timmar du vill ha timern. Nu kroppen går in i en while() slinga med ett villkor som slingan kommer att hålla på tills knappen 2 trycks med denna typ av uttalande:
Kolla in den kompletta källkoden i steg 9.
While(digitalRead(3) == låg) / / tills knappen 2 inte trycks
Detta innebär att du trycker på knappen två avslutas loopen och processen kommer att gå vidare ber dig att ange protokollet. Men om du vill öka antalet timmar, behöver du också tryck knappen 1 så många gånger som antalet timmar. Följande kodavsnitt räknar tid 1-knappen trycks således antalet timmar:
While(digitalRead(3) == låg) / / tills knappen 2 trycks
{
IF(digitalRead(2) == hög) / / om du trycker knappen 1
{
Delay(500);
timme ++; öka antalet timmar med 1
}
LCD.Clear();
LCD.Print(Hour); skriva ut antalet timmar
Delay(100);
}
Samma process upprepas när man ber antalet minuter men denna gång räknar minuter istället för timmar.
När alla data har lagrats, startas timern nu med tre for() loopar inkapslade till varandra var och en för timmar, minuter och sekunder respektive. Öglorna hålla å igång tills den angivna tiden är klar och skriver också ut den aktuella tiden kvar. Följande kodavsnitt körs timern med tre for() slingor:
< p > e2 = minut; < br > e3 = 0;
för (e1 = timme; e1 > = 0; e1--) / / slinga 1 timmar
{
för (e2; e2 > = 0; e2--) / / slinga 2 minuter
{
för (e3, e3 > = 0; e3--) / / slinga 3 sekunder
{
digitalWrite (4, hög). slå på den gröna lysdioden
LCD.Clear();
LCD.Print("");
LCD.Print ("tid:"); skriva ut tid kvar
lcd.setCursor(0,1);
LCD.Print("");
LCD.Print(E1);
LCD.Print(":");
LCD.Print(E2);
LCD.Print(":");
LCD.Print(E3);
Delay(1000);
}
E3 = 59.
}
E2 = 59.
} < /p >
På sist, när tiden är klar Piper summern tillsammans med en röd LED glödande. Det går in och oändlig loop som aldrig tar slut förrän du återställer din arduino. Följande kodavsnitt förklarar det:
< p > while(true) / / oändligt loop < br > {
digitalWrite (4, låg). framhäver den gröna lysdioden
digitalWrite 5, hög, Anger den röda lysdioden på
LCD.Clear();
LCD.Print ("tid avslutad!!"); skriver ut ett meddelande
digitalWrite 13, hög. Piper summern varje 500ms
Delay(500);
digitalWrite 13, låg.
Delay(500);
} < /p >
Det var allt för förklaringen. Hoppas att detta steg var användbar.