Stap 4: Het toevoegen van uitgangen
Nu dat we hebben getest verschillende ingangen, kunnen we zien hoe de uitgangen in de verklaringen van de switch() ook kunnen worden gebruikt. De MegaMoto zullen we gebruiken om te bepalen van een actuator uit te breiden en intrekken. In dit voorbeeld is vergelijkbaar met het eerste voorbeeld, gebruiken we enkel tijdvertragingen.
Zie het bedradingsschema, en uploaden van de code. Zie de voor meer gedetailleerde informatie over de motorcontroller Instructable MegaMoto. Terwijl het programma wordt uitgevoerd, de motor zal bewegen, en u kunt kijken naar de seriële monitor om te zien wat er gebeurt.
Aangezien dit slechts test programma's, kunt u het bord aangesloten op de computer, zodat de Arduino macht kan ontvangen.
/* This code is to show how outputs are used in a switch statement. The code moves an actuator in and out at varying speeds, according to the sequence. Written by Progressive Automations Sept 21, 2015 This code is in the public domain */ const int enable = 8; const int PWMA = 11; const int PWMB = 3;//pins for the MegaMoto int programCount = 0;//variable to move through the program void setup() { Serial.begin(9600);// initialize serial communication: programCount = 0;//start at the beginning pinMode(enable, OUTPUT); pinMode(PWMA, OUTPUT); pinMode(PWMB, OUTPUT); }//end setup void loop() { switch (programCount) { case 0: digitalWrite(enable, HIGH);//enable the control board Serial.println("Motor moving forwards at full speed"); analogWrite(PWMA, 255); analogWrite(PWMB, 0);//set the speed of the actuator delay(5000);//Move for 5 seconds programCount = 1; break; case 1: Serial.println("Motor moving backwards at full speed"); analogWrite(PWMA, 0); analogWrite(PWMB, 255);//set the speed of the actuator delay(5000);//Move for 5 seconds programCount = 2; break; case 2: Serial.println("Motor moving forwards at half speed"); analogWrite(PWMA, 128); analogWrite(PWMB, 0);//set the speed of the actuator delay(3000);//Move for 3 seconds programCount = 3; break; case 3: Serial.println("Motor moving forwards at full speed"); analogWrite(PWMA, 255); analogWrite(PWMB, 0);//set the speed of the actuator delay(2000);//Move for 2 seconds programCount = 4; break; case 4: Serial.println("Motor moving backwards at full speed"); analogWrite(PWMA, 0); analogWrite(PWMB, 255);//set the speed of the actuator delay(2000);//Move for 2 seconds programCount = 5; break; case 5: Serial.println("Motor moving backwards at half speed"); analogWrite(PWMA, 0); analogWrite(PWMB, 128);//set the speed of the actuator delay(3000);//Move for 3 seconds programCount = 6; break; default: Serial.print("Movement complete"); while(1); //freeze the program here }//end switch }//end loop