Guest User

Untitled

a guest
Apr 2nd, 2013
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.03 KB | None | 0 0
  1. #include <Servo.h> //Include servo library
  2. #include <IRremote.h> //Include IR library
  3.  
  4. #define trigPin 13 //Define pin 13 as trig pin
  5. #define echoPin 12 //Define pin 12 as echo pin
  6. #define led 7 //Define pin 7 as red led+buzzer pin
  7. #define led2 8 // Define pin 8 as green pin
  8.  
  9. Servo Middleservo; //Define first servo
  10. Servo Rightservo; //Define second servo
  11. Servo Leftservo; //Define third servo
  12.  
  13. int IR_Recv = 3; //IR Receiver Pin 3
  14. int shutdown = 0;
  15.  
  16. IRrecv irrecv(IR_Recv); //Create the receiver object
  17. decode_results results; //Decode the results from the sensor
  18.  
  19. void setup()
  20. {
  21. Serial.begin (9600); //Start the serial communication at 9600 bits per second
  22.  
  23. pinMode(trigPin, OUTPUT); // make the trigger's pin an output:
  24. pinMode(echoPin, INPUT); // make the echo's pin an input:
  25. pinMode(led, OUTPUT); // make the red led+buzzer pin an output:
  26. pinMode(led2, OUTPUT); // make the green led pin an output:
  27.  
  28. Middleservo.attach(9); //Attach the Middleservo variable to pin 9
  29. Rightservo.attach(10); //Attach the Rightservo variable to pin 10
  30. Leftservo.attach(11); //Attach the Leftservo variable to pin 11
  31.  
  32. irrecv.enableIRIn(); // Starts the receiver
  33. irrecv.blink13(true); //Enable blinking the LED when during reception
  34. }
  35.  
  36. void loop()
  37. {
  38. if (irrecv.decode(&results)) //Attempt to receive a IR code
  39. {
  40. if(results.value == 16753245)
  41. {
  42. //Set the variables as 0
  43. long duration = 0, distance = 0;
  44. // Start Ranging
  45. digitalWrite(trigPin, LOW);
  46. delayMicroseconds(2);
  47. digitalWrite(trigPin, HIGH);
  48. delayMicroseconds(10);
  49. digitalWrite(trigPin, LOW);
  50. // Compute distance
  51. duration = pulseIn(echoPin, HIGH);
  52. distance = (duration/2) / 29.1;
  53.  
  54. if(distance <= 20) //If the distance is lower or equal to 20 CM do below
  55. {
  56. digitalWrite(led,HIGH); // sets the red led+buzzer on
  57. digitalWrite(led2,LOW); // sets the green led off
  58.  
  59. Middleservo.write(75); // set Middleservo to 75 degrees
  60. delay(200); // waits for a 200 milliseconds
  61. Leftservo.write(110); // set Leftservo to 110 degrees
  62. delay(50); // waits for a 50 milliseconds
  63. Rightservo.write(80); // set Rightservo to 80 degrees
  64. delay(50); // waits for a 50 milliseconds
  65. Middleservo.write(95); // set Middleservo to 95 degrees
  66. delay(200); // waits for a 200 milliseconds
  67. Rightservo.write(105); // set Rightservo to 105 degrees
  68. delay(50); // waits for a 50 milliseconds
  69. Leftservo.write(80); // set Leftservo to 80 degrees
  70. delay(50); // waits for a 50 milliseconds
  71. }
  72. else //If the distance isnt lower or equal to 20 CM do below:
  73. {
  74. digitalWrite(led,LOW); // sets the red led+buzzer off
  75. digitalWrite(led2,HIGH); // sets the green led on
  76.  
  77. Middleservo.write(65); // set Middleservo to 65 degrees
  78. delay(200); // waits for a 200 milliseconds
  79. Leftservo.write(80); // set Leftservo to 80 degrees
  80. delay(50); // waits for a 50 milliseconds
  81. Rightservo.write(80); // set Rightservo to 80 degrees
  82. delay(50); // waits for a 50 milliseconds
  83. Middleservo.write(105); // set Middleservo to 105 degrees
  84. delay(200); // waits for a 200 milliseconds
  85. Rightservo.write(110); // set Rightservo to 110 degrees
  86. delay(50); // waits for a 50 milliseconds
  87. Leftservo.write(110); // set Leftservo to 110 degrees
  88. delay(50); // waits for a 50 milliseconds
  89. }
  90. if (distance >= 200 || distance <= 0)
  91. { //If the distance is bigger or equal to 200 and lower and equal to 0
  92. Serial.println("Out of range"); // print "Out of range"
  93. }
  94. else
  95. { //if not
  96. Serial.print(distance); //print distance
  97. Serial.println(" cm"); //print cm below the distance
  98. }
  99. }
  100. else //if the result isnt 16753245 do below
  101. {
  102. irrecv.resume(); //reset the receiver and prepare it to receive another code
  103. }
  104. }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment