Beginners: please read this post and this post before posting to the forum.
0 Members and 1 Guest are viewing this topic.
// ________________________________________ Sensors#define SharpIR 0// ————————————————————————— Motorsint motor_left[] = {3,5};int motor_right[] = {6,9}; int Speed = 0;// ————————————————————————— Setupvoid setup() { int i; for(i = 0; i < 2; i++){ pinMode(motor_left[i], OUTPUT); pinMode(motor_right[i], OUTPUT); }}// ————————————————————————— Loopvoid loop() { if(analogRead(SharpIR) > 120){ drive_backward(); delay(100); turn_left(); delay(300); } else{ accelerate(); }}// ————————————————————————— Drivevoid accelerate() { Speed = 0; digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(300); Speed = 10; digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(300); Speed = 20; digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(300); Speed = 40; digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(300); Speed = 60; digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(300); Speed = 80; digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(300); Speed = 120; digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(300); Speed = 160; digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(300); Speed = 180; digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(300); Speed = 230; digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(300); Speed = 255; digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(300);} void motor_stop(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW); delay(25);}void drive_forward(){ digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], 90); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], 90);}void drive_backward(){ analogWrite(motor_left[0], 90); digitalWrite(motor_left[1], LOW); analogWrite(motor_right[0], 90); digitalWrite(motor_right[1], LOW); }void turn_left(){ digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], 90); analogWrite(motor_right[0], 90); digitalWrite(motor_right[1], LOW);}void turn_right(){ analogWrite(motor_left[0], 90); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], 90);}
for(Speed = 0; Speed < 180; Speed += 1) digitalWrite(motor_left[0], LOW); analogWrite(motor_left[1], Speed); digitalWrite(motor_right[0], LOW); analogWrite(motor_right[1], Speed); delay(15);
all those delays mess with the reading from the sensor