Blitzkrieg: Bluetooth kontrollerad 110lb bekämpa roboten. (6 / 8 steg)
Steg 6: Programmera Arduino
int M1_A = 4; variabel för roterande Armor Motor
int M1_B = 5; variabel för roterande Armor Motor
int M2_A = 8; variabel för vänster drivlina motorer
int M2_B = 9; variabel för vänster drivlina motorer
int M3_A = 10; variabel för rätt drivlina motorer
int M3_B = 11; variabel för rätt drivlina motorer
variabel för lagring av seriell data
int incomingByte = 0;
void setup()
{
Starta seriell övervaka 9600 bps
Serial.BEGIN(9600); ändra det här värdet beroende på överföringshastigheten för bluetooth-modulen
pinMode (M1_A, OUTPUT);
pinMode (M1_B, OUTPUT);
pinMode (M2_A, OUTPUT);
pinMode (M2_B, OUTPUT);
pinMode (M3_A, OUTPUT);
pinMode (M3_B, OUTPUT);
Inaktivera motorer som standard
M1_stop();
M2_stop();
M3_stop();
Delay(500);
}
////////////////////////////////////
void loop()
{
om (Serial.available() > 0)
{
Läs den inkommande byten:
incomingByte = Serial.read();
fördröja 25 millisekunder seriell uppdatering att hinna
Delay(25);
om (incomingByte == 32) / / om byte är lika mellanslagstangenten, stoppa.
{
Serial.println("stop");
M2_stop();
M3_stop();
Delay(25);
}
om (incomingByte == 67) //if inkommande byte från Android telefon är lika med "C", stopp.
{
Serial.println("stop");
M2_stop();
M3_stop();
Delay(25);
}
om (incomingByte == 99) / / om byte är lika med "c", vrid medurs för Rotor
{
M1_Clock();
Delay(25);
}
om (incomingByte == 101) //if inkommande byte från Android telefon är lika med "e", vrid medurs för Rotor
{
M1_Clock();
Delay(25);
}
om (incomingByte == 118) / / om byte är lika med "v", slå Rotor moturs
{
M1_AntClock();
Delay(25);
}
om (incomingByte == 102) //if inkommande byte från Android telefon är lika med "f", vrid Rotor moturs
{
M1_AntClock();
Delay(25);
}
om (incomingByte == 120) / / om byte är lika med "x", sluta vrida rotorn
{
M1_stop();
Delay(25);
}
om (incomingByte == 103) //if inkommande byte från Android telefon är lika med "g", sluta vrida rotorn
{
M1_stop();
Delay(25);
}
om byte är lika med "w", gå vidare
annat if (incomingByte == 119)
{
Serial.println("forward");
M2_forward();
M3_forward();
Delay(25);
}
annat if (incomingByte == 85) / / om inkommande byte från Android telefon är lika med "U", gå framåt
{
Serial.println("forward");
M2_forward();
M3_forward();
Delay(25);
}
om byte är lika med "a", gå till vänster
annat if (incomingByte == 97)
{
Serial.println("left");
M2_reverse();
M3_forward();
Delay(25);
}
om inkommande byte från Android telefon är lika med "L", gå till vänster
annat if (incomingByte == 76)
{
Serial.println("left");
M2_reverse();
M3_forward();
Delay(25);
}
om byte är lika med "d", gå till höger
annat if (incomingByte == 100)
{
Serial.println("Right");
M2_forward();
M3_reverse();
Delay(25);
}
om inkommande byte från Android telefon är lika med "R", gå till höger
annat if (incomingByte == 82)
{
Serial.println("Right");
M2_forward();
M3_reverse();
Delay(25);
}
om byte är lika med "s", gå bakåt
annat if (incomingByte == 115)
{
Serial.println("reverse");
M2_reverse();
M3_reverse();
Delay(25);
}
om inkommande byte från Android telefon är lika med "D", gå bakåt
annat if (incomingByte == 68)
{
Serial.println("reverse");
M2_reverse();
M3_reverse();
Delay(25);
}
annat
{
Serial.println("stop");
M2_stop();
M3_stop();
Delay(25);
}
}
}
void M1_Clock()
{
digitalWrite (M1_B, låg);
digitalWrite (M1_A, hög);
}
void M1_AntClock()
{
digitalWrite (M1_A, låg);
digitalWrite (M1_B, hög);
}
void M2_forward()
{
digitalWrite (M2_A, hög);
digitalWrite (M2_B, låg);
}
void M2_reverse()
{
digitalWrite (M2_A, låg);
digitalWrite (M2_B, hög);
}
void M3_forward()
{
digitalWrite (M3_A, hög);
digitalWrite (M3_B, låg);
}
void M3_reverse()
{
digitalWrite (M3_A, låg);
digitalWrite (M3_B, hög);
}
void M1_stop()
{
digitalWrite (M1_B, låg);
digitalWrite (M1_A, låg);
}
void M2_stop()
{
digitalWrite (M2_B, låg);
digitalWrite (M2_A, låg);
}
void M3_stop()
{
digitalWrite (M3_B, låg);
digitalWrite (M3_A, låg);
}