Med uttrycket Switch() som sekvensering kontroll (2 / 6 steg)
Steg 2: Lägga till grundläggande digitala ingångar
Nu när vi vet grunderna i en switch-sats, kan vi lägga i en grundläggande digital ingång. Vi använder en knapp för att utlösa förflyttning till nästa tillstånd.
I det första fallet använder vi en räknare för att lagra hur länge knappen har tryckts. När det har hållits i 5 sekunder, kommer vi att flytta till nästa tillstånd. Titta på serial bildskärmen för att se när programmet är klart.
Se koden nedan, sedan ladda upp den för att se hur det fungerar innan du flyttar till nästa steg.
Eftersom dessa är bara test program, kan du lämna styrelsen plugg in i computern så Arduino kan få makt.
/ * Denna kod är att visa hur en digital ingång kan flytta genom fall
i en switch-sats. Knappen måste tryckas 5 gånger att flytta
på.
Skrivet av progressiva automatiseringar
21 sept, 2015
Denna kod är offentlig
*/
CONST int knappen = 5; //attach knappen på stift 5
int programCount = 0; //variable att flytta genom programmet
int buttonCount = 0; //variable att hålla knapptryckningar
int buttonState = 1; //variable att hålla tillståndet för knappen
void setup() {
Serial.BEGIN(9600); / / initiera seriell kommunikation:
programCount = 0; //start i början
buttonCount = 0. //set 0 att starta
pinMode (knapp, indata); //set knappen som indata
digitalWrite (knappen, hög), //enable inre pullup motstånd
Serial.println ("Håll knappen i 5 sekunder att slutföra programmet");
} //end setup
void loop() {
växel (programCount) {
fall 0:
buttonState = digitalRead(button);
om (buttonState == 0)
{
buttonCount = buttonCount + 1; //count upp varje gång knappen trycks
fördröjning (1), //small fördröjning för räknar millisekunder
}
om (buttonCount == 5000) programCount = 1; //once knappen trycks tillräckligt många gånger, gå vidare
bryta;
fall 1:
Serial.println ("knappen har hållits i 5 sekunder"); //print nummer
Delay(1000);
programCount = 2;
bryta;
standard:
Serial.println ("programmet komplett");
While(1); frysa programmet här
} //end switch
} //end loop