Hi I tried emerging two codes, obstacle and edge avoiding robot, i am currently using a wemos d1 r1 because i was planning on controlling it wirelessly(autonomous) can someone help me with the coding?
int trigPin = 6; //trig Pin
int echoPin = 7; //echo Pin
int lm1=8; //left motor output 1
int lm2=9; //left motor output 2
int rm1=10; //right motor output 1
int rm2=11; //right motor output 2
int sl=13; //sensor 1 input (left)
int sr=12; //sensor 2 input (right)
int SlV=0;
int SrV=0;
//int led = A1;
void setup()
{
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
pinMode(lm1,OUTPUT);
pinMode(lm2,OUTPUT);
pinMode(rm1,OUTPUT);
pinMode(rm2,OUTPUT);
//pinMode(led,OUTPUT);
pinMode(sl,INPUT);
pinMode(sr,INPUT);
Serial.begin(115200);
sTOP();
}
long duration, distance;
void loop()
{
SlV=digitalRead(sl);
SrV=digitalRead(sr);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration/58.2;
if(SrV==LOW && SlV== LOW)
{
//digitalWrite(led,LOW);
Serial.println("No Obstacle - both IR");
ForWard();
}
if(SrV==HIGH && SlV== HIGH)
{
//digitalWrite(led,HIGH);
Serial.println("Obstacle! - both IR");
BackWard();
delay(400);
Right();
delay(550);
ForWard();
delay(200);
}
if(SrV==LOW && SlV== HIGH)
{
//digitalWrite(led,HIGH);
Serial.println("Obstacle! - left IR");
BackWard();
delay(400);
Right();
delay(550);
ForWard();
delay(200);
}
if(SrV==HIGH && SlV== LOW)
{
//digitalWrite(led,HIGH);
Serial.println("Obstacle! - right IR");
BackWard();
delay(400);
Left();
delay(550);
ForWard();
delay(200);
}
if(distance<30)
{
Serial.println("Obstacle! - URS");
sTOP();
delay(2000);
Right();
delay(2000);
ForWard();
}
else
{
Serial.println("No Obstacle - URS");
ForWard();
}
delay(0);
}
void ForWard()
{
digitalWrite(lm1,HIGH);
digitalWrite(lm2,LOW);
digitalWrite(rm1,HIGH);
digitalWrite(rm2,LOW);
}
void BackWard()
{
digitalWrite(lm1,LOW);
digitalWrite(lm2,HIGH);
digitalWrite(rm1,LOW);
digitalWrite(rm2,HIGH);
}
void Left()
{
digitalWrite(lm1,LOW);
digitalWrite(lm2,HIGH);
digitalWrite(rm1,HIGH);
digitalWrite(rm2,LOW);
}
void Right()
{
digitalWrite(lm1,HIGH);
digitalWrite(lm2,LOW);
digitalWrite(rm1,LOW);
digitalWrite(rm2,HIGH);
}
void sTOP()
{
digitalWrite(lm1,LOW);
digitalWrite(lm2,LOW);
digitalWrite(rm1,LOW);
digitalWrite(rm2,LOW);
}