Mobil drivs arduino Uno robot med hjälp av DTMF (5 / 6 steg)
Steg 5: Programmering styrelsen
Kopiera
och klistra in planeringen nedan till arduino IDE och ladda upp programmering till styrelsen.
#include
Servo myservo;
int servo = 3;
int vinkel = 180; 180 är första vinkeln och mobiltelefon ska placeras med kamera som vetter mot framsidan
int d0 = 12.
int d1 = 11;
int d2 = 10;
int d3 = 9.
int vccdtmf = 13.
int en = 0, s = 0, d = 0, f = 0, flagga = 0;
int in1 = 19.
int in2 = 18;
int in3 = 17;
int in4 = 16.
int enA = 6;
int enB = 5;
void setup() {
myservo.attach(3); Definierar stift 3 för Servo
myservo.write(Angle);
pinMode(d0,INPUT);
pinMode(d1,INPUT);
pinMode(d2,INPUT);
pinMode(d3,INPUT);
pinMode(vccdtmf,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
pinMode(servo,OUTPUT); sätta din installation kod här, om du vill köra en gång:
}
void loop() {
digitalWrite(vccdtmf,HIGH); + 5V för DTMF-modul
digitalWrite(enA,HIGH);
digitalWrite(enB,HIGH);
servo rörelse / /
om (digitalRead (d0) == 1 & & digitalRead (d1) == 1 & & digitalRead (d2) == 1 & & digitalRead(d3)==0) / / Tryck på 7 för att aktivera servo i moturs riktning
{
IF(Angle>0)
{
vinkel = vinkel-10;
myservo.write(Angle);
Delay(500);
}
}
om (digitalRead (d0) == 0 & & digitalRead (d1) == 0 & & digitalRead (d2) == 0 & & digitalRead(d3)==1) / / tryck 8 aktivera servo medurs
{
IF(Angle<180)
{
vinkel = vinkel + 10.
myservo.write(Angle);
Delay(500);
}
}
while(flag==0) //security loop/////////////////////////////////////////////////////////////////////////////////////////////////////
{
om (en! = 1 & & digitalRead (d0) == 1 & & digitalRead (d1) == 0 & & digitalRead (d2) == 0 & & digitalRead(d3)==0)
{
en = 1;
}
om (en == 1 & & s! = 2 & & digitalRead (d0) == 0 & & digitalRead (d1) == 1 & & digitalRead (d2) == 0 & & digitalRead(d3)==0)
{
s = 2;
}
om (s == 2 & & d! = 3 & & digitalRead (d0) == 1 & & digitalRead (d1) == 1 & & digitalRead (d2) == 0 & & digitalRead(d3)==0)
{
d = 3;
}
om (d == 3 & & f! = 4 & & digitalRead (d0) == 0 & & digitalRead (d1) == 0 & & digitalRead (d2) == 1 & & digitalRead(d3)==0)
{
f = 4;
}
om (en == 1 & & s == 2 & & d == 3 & & f == 4).
{
Flagga = 1;
}
} //type 1234 att börja fungera roboten / / 1234 fungerar som lösenord / /
//movement of car////////////////////////////////////////////////////////////////////////////////
medan (digitalRead (d0) == 0 & & digitalRead (d1) == 0 & & digitalRead (d2) == 1 & & digitalRead(d3)==1) / / stoppar bilen när du trycker på #
{
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
}
medan (digitalRead (d0) == 0 & & digitalRead (d1) == 1 & & digitalRead (d2) == 0 & & digitalRead(d3)==0) / / tryck 5 för fram riktning
{
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
}
medan (digitalRead (d0) == 1 & & digitalRead (d1) == 0 & & digitalRead (d2) == 0 & & digitalRead(d3)==0) / / tryck 4 för höger fram riktning
{
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
}
medan (digitalRead (d0) == 1 & & digitalRead (d1) == 1 & & digitalRead (d2) == 0 & & digitalRead(d3)==0) / / tryck 6 för vänster fram riktning
{
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
}
medan (digitalRead (d0) == 1 & & digitalRead (d1) == 0 & & digitalRead (d2) == 1 & & digitalRead(d3)==0) / / tryck 2 för bakåt riktning
{
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
}
medan (digitalRead (d0) == 0 & & digitalRead (d1) == 0 & & digitalRead (d2) == 1 & & digitalRead(d3)==0) / / Tryck på 1 för höger bakåt riktning
{
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
}
medan (digitalRead (d0) == 0 & & digitalRead (d1) == 1 & & digitalRead (d2) == 1 & & digitalRead(d3)==0) / / tryck 3 för vänster bakåt riktning
{
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
}
}