Med uttrycket Switch() som sekvensering kontroll (4 / 6 steg)
Steg 4: Lägga till utgångar
Nu när vi har testat olika ingångar, kan vi se hur utgångar kan användas i de switch() rapporterna också. Vi ska använda MegaMoto för att styra ett ställdon för att utöka och dra tillbaka. Detta exempel liknar det första exemplet, vi använder bara tidsfördröjningar.
Se kopplingsschema och ladda upp koden. Se MegaMoto Instructable för mer detaljerad information om den motor controller. Medan programmet körs, motorn kommer att flytta, och du kan titta på den seriella monitorn för att se vad som händer.
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 utgångar används i en switch-sats. Koden
flyttar ett ställdon in och ut vid olika hastigheter, enligt operationssekvensen.
Skrivet av progressiva automatiseringar
21 sept, 2015
Denna kod är offentlig
*/
CONST int aktiverar = 8.
CONST int PWMA = 11;
CONST int PWMB = 3; //pins för MegaMoto
int programCount = 0; //variable att flytta genom programmet
void setup() {
Serial.BEGIN(9600); / / initiera seriell kommunikation:
programCount = 0; //start i början
pinMode (aktiverar, OUTPUT);
pinMode (PWMA, OUTPUT);
pinMode (PWMB, OUTPUT);
} //end setup
void loop() {
växel (programCount) {
fall 0:
digitalWrite (aktivera, hög); //enable kontrollstyrelsen
Serial.println ("Motor rör sig framåt med full fart");
analogWrite (PWMA, 255);
analogWrite (PWMB, 0); //set hastigheten på manöverdonet
fördröjning (5000); //Move i 5 sekunder
programCount = 1;
bryta;
fall 1:
Serial.println ("Motor flyttar bakåt i full hastighet");
analogWrite (PWMA, 0);
analogWrite (PWMB, 255); //set hastigheten på manöverdonet
fördröjning (5000); //Move i 5 sekunder
programCount = 2;
bryta;
fall 2:
Serial.println ("Motor går framåt på halvfart");
analogWrite (PWMA, 128);
analogWrite (PWMB, 0); //set hastigheten på manöverdonet
fördröjning (3000), //Move i 3 sekunder
programCount = 3;
bryta;
fall 3:
Serial.println ("Motor rör sig framåt med full fart");
analogWrite (PWMA, 255);
analogWrite (PWMB, 0); //set hastigheten på manöverdonet
fördröjning (2000), //Move i 2 sekunder
programCount = 4;
bryta;
fall 4:
Serial.println ("Motor flyttar bakåt i full hastighet");
analogWrite (PWMA, 0);
analogWrite (PWMB, 255); //set hastigheten på manöverdonet
fördröjning (2000), //Move i 2 sekunder
programCount = 5;
bryta;
fall 5:
Serial.println ("Motor flyttar bakåt på halvfart");
analogWrite (PWMA, 0);
analogWrite (PWMB, 128); //set hastigheten på manöverdonet
fördröjning (3000), //Move i 3 sekunder
programCount = 6;
bryta;
standard:
Serial.Print ("rörelse komplett");
While(1); frysa programmet här
} //end switch
} //end loop