Styra tidpunkten för ett manöverdon förslag (2 / 5 steg)
Steg 2: Programmera Arduino
Nedan är en exempelkod visar hur du flyttar manöverdonet. I detta exempelkod vi har manöverdonet förlängning i 10 sekunder, sedan upprullningskraften i 10 sekunder. Detta upprepas för 300 sekunder.
Se steg 3 för att ställa in byglarna på bordet.
Se steg 4 att lära sig att ändra koden.
/ * Här koden ändrar MegaMoto exempelkod för att styra ett ställdon med
ingen potentiometer.
Manöverdonet ska utöka i 10 sekunder, och omedelbart dra tillbaka i 10 sekunder.
Denna process upprepas över 300 sekunder.
Ändrat av progressiva automatiseringar, med hjälp av ursprungliga exempelkod
MegaMoto styrelsen från:
< en href = "http://www.robotpower.com/downloads/" rel = "nofollow" > http://www.robotpower.com/downloads/</a>
Hårdvara:
-1 RobotPower MegaMoto kontrollstyrelsen
-Arduino Uno
Ledningar:
-Anslut den +/-Aktiveringsorganets till A / B motor kanaler
-Anslut den +/-makt leverans till den +/-BAT anslutningar
Denna exempelkod är offentlig.
*/
Använda byglarna på styrelsen för att välja vilket stift ska användas
int EnablePin1 = 13.
int PWMPinA1 = 11;
int PWMPinB1 = 3;
int extendtime = 10 * 1000; 10 sekunder, gånger 1000 konvertera till millisekunder
int retracttime = 10 * 1000; 10 sekunder, gånger 1000 konvertera till millisekunder
int timetorun = 300 * 1000; 300 sekunder, gånger 1000 konvertera till millisekunder
int tull.
int elapsedTime;
booleska keepMoving;
void setup() {
Serial.BEGIN(9600);
pinMode (EnablePin1, OUTPUT); //Enable styrelsen
pinMode (PWMPinA1, OUTPUT);
pinMode (PWMPinB1, OUTPUT); //Set motor utgångar
elapsedTime = 0; Ställ in tid till 0
keepMoving = sant; Systemet kommer att flytta
} //end setup
void loop() {
om (keepMoving)
{
digitalWrite (EnablePin1, hög); Aktivera motorn
pushActuator();
Delay(extendtime);
stopActuator();
fördröjning (10), //small fördröjning innan återgång
pullActuator();
Delay(retracttime);
stopActuator();
elapsedTime = millis (); //how långa har det varit?
om (elapsedTime > timetorun) {//if man 300 sekunder, stoppa
Serial.Print ("förfluten tid är över max körning. Max körtid: ");
Serial.println(timetorun);
keepMoving = false;
}
} //end om
} //end huvudloop
void stopActuator() {
analogWrite (PWMPinA1, 0);
analogWrite (PWMPinB1, 0); hastighet 0-255
}
void pushActuator() {
analogWrite (PWMPinA1, 255);
analogWrite (PWMPinB1, 0); hastighet 0-255
}
void pullActuator() {
analogWrite (PWMPinA1, 0);
analogWrite (PWMPinB1, 255); //speed 0-255
}