Bygga en enkel Robot med hjälp av en Arduino och L293 (H-brygga) (6 / 6 steg)
Steg 6: kod
Här är koden till uplaod till roboten eller Arduino UNO-
#include
Servo servoMain;
float härda;
int tempPin = 0;
int r_motor_n = 2; PWM kontroll rätt Motor-
int r_motor_p = 4; PWM kontroll rätt Motor +
int l_motor_p = 5; PWM kontroll vänster Motor +
int l_motor_n = 7. PWM kontroll vänster Motor-
int aktiverar = 3;
int ljus = 9.
int enable2 = 6;
int incomingByte = 0; för inkommande seriella data
void setup()
{
servoMain.attach(10);
pinMode (r_motor_n, produktionen); Ställa in kontroll stiften att utgångar
pinMode (r_motor_p, produktionen);
pinMode (l_motor_p, produktionen);
pinMode (l_motor_n, produktionen);
pinMode (aktiverar, OUTPUT);
pinMode (enable2, produktionen);
pinMode (ljus, OUTPUT);
digitalWrite (r_motor_n, låg); kvitta båda motorer för start
digitalWrite (r_motor_p, låg);
digitalWrite (l_motor_p, låg);
digitalWrite (l_motor_n, låg);
digitalWrite (aktivera, låg);
digitalWrite (enable2, låg);
digitalWrite (ljus, hög);
Serial.BEGIN(9600);
Serial.Print ("Whats up im ATOM, laddade upp!!! \n");
Serial.Print ("w = framåt \n");
Serial.Print ("s = bakåt \n");
Serial.Print ("d = rätt \n");
Serial.Print ("en = vänster \n");
Serial.Print ("f = stopp \n");
Serial.Print ("stive robotteknik").
}
void loop()
{
om (Serial.available() > 0) {
Läs den inkommande byten:
incomingByte = Serial.read();
}
Switch(incomingByte)
{
fallet "f":
digitalWrite (r_motor_n, låg); Ställa in motor riktning, 1 låg, 2 hög
digitalWrite (r_motor_p, låg);
digitalWrite (l_motor_p, låg);
digitalWrite (l_motor_n, låg);
digitalWrite (aktivera, låg);
digitalWrite (enable2, låg);
Serial.println("Stop\n");
incomingByte ='* ';
bryta;
fall skulle ":
digitalWrite (r_motor_n, hög); Ställa in motor riktning, 1 låg, 2 hög
digitalWrite (r_motor_p, låg);
digitalWrite (l_motor_p, hög);
digitalWrite (l_motor_n, låg);
digitalWrite (aktivera, hög);
digitalWrite (enable2, hög);
Serial.println("right\n");
incomingByte ='* ';
bryta;
fallet "a":
digitalWrite (r_motor_n, låg); Ställa in motor riktning, 1 låg, 2 hög
digitalWrite (r_motor_p, hög);
digitalWrite (l_motor_p, låg);
digitalWrite (l_motor_n, hög);
digitalWrite (aktivera, hög);
digitalWrite (enable2, hög);
Serial.println("left\n");
incomingByte ='* ';
bryta;
fallet "w":
digitalWrite (r_motor_n, hög); Ställa in motor riktning, 1 låg, 2 hög
digitalWrite (r_motor_p, låg);
digitalWrite (l_motor_p, låg);
digitalWrite (l_motor_n, hög);
digitalWrite (aktivera, hög);
digitalWrite (enable2, hög);
Serial.println("forward\n");
incomingByte ='* ';
bryta;
fallet ":
digitalWrite (r_motor_n, låg); Ställa in motor riktning, 1 låg, 2 hög
digitalWrite (r_motor_p, hög);
digitalWrite (l_motor_p, hög);
digitalWrite (l_motor_n, låg);
digitalWrite (aktivera, hög);
digitalWrite (enable2, hög);
Serial.println("backwards\n");
incomingByte ='* ';
bryta;
fallet ' o ':
digitalWrite (ljus, låg);
bryta;
fall '1':
servoMain.write(0);
bryta;
fallet "2":
servoMain.write(45);
bryta;
fallet "3":
servoMain.write(90);
bryta;
fallet "4":
servoMain.write(135);
bryta;
fallet "5":
servoMain.write(180);
bryta;
't i mål ":
Temp = analogRead(tempPin);
Temp = temp * 0.48828125;
Serial.Print ("TEMPRATURE =");
Serial.Print(temp);
Serial.Print("*C");
Serial.println();
Delay(1000);
bryta;
fallet "v":
Serial.Print ("atom");
Serial.println();
Serial.Print ("stive robotics atom");
incomingByte ='* ';
bryta;
Delay(5000);
}