vacuum cleaner robot ?

could anyone show the code?

mine doesn't work...

#define trigPin 12
#define echoPin 13
#define ir1 7
#define ir2 6

void setup()
{
Serial.begin(9600);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ir1, INPUT);
pinMode(ir2,INPUT);
}

void loop()
{
int duration, distance;
int flag,val1,val2;
val1=digitalRead(ir1);
val2=digitalRead(ir2);
Serial.println(val1);
Serial.println(val2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance >= 200 || distance <= 0){
Serial.println("Out of range");
}
else {
Serial.print(distance);
Serial.println(" cm");
}
delay(500);

if (distance >=20)
{
delay(100);
Serial.println("forward");
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
delay(150);
Serial.println("STOP");
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}

if (distance<=20)
{
if (val1=1 )
{
Serial.print("turn right");
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
delay(2000);
}
if (val2==1)
{
Serial.print("turn left");
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
delay(500);
}
}

if(distance<=10)
{
Serial.print("rearrange back");
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
delay(1000);
Serial.print("rearranged left");
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
delay(100);
}

if (distance<=20)
{
Serial.print("Algorithum");
Serial.print("free right");
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
if(val2==0)
{
Serial.print("smart adjust");
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
delay(500);
}
}
}

I don't even know why my robot vacuum doesn't work...

TOPIC SPLIT
DO NOT HIJACK / NECRO POST !

Could you take a few moments to Learn How To Use The Forum.
Other general help and troubleshooting advice can be found here.
It will help you get the best out of the forum in the future.

this condition

 if (val1=1 )

always evaluates true since you are doing an assignment, not a comparision and the assignment value is non-zero.

Hi,
Welcome to the forum.

Please read the post at the start of any forum , entitled "How to use this Forum".
OR
http://forum.arduino.cc/index.php/topic,148850.0.html.
Then look down to item #7 about how to post your code.
It will be formatted in a scrolling window that makes it easier to read.

Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?

What is it supposed to do?
What does it do?

Have you got code that JUST tests the ultrasonic unit, NOTHING else just a distance readout of the calculated distance.

Thanks... Tom.. :slight_smile: