Advertisement
Guest User

Untitled

a guest
Mar 31st, 2013
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. #include <Servo.h>
  2. #include <IRremote.h>
  3.  
  4. #define trigPin 13
  5. #define echoPin 12
  6. #define led 7
  7. #define led2 8
  8.  
  9. Servo myservo;
  10. Servo myservo1;
  11. Servo myservo2;
  12.  
  13. int pos = 0;
  14. int IR_Recv = 3;
  15. int pressed = 0;
  16.  
  17. IRrecv irrecv(IR_Recv);
  18. decode_results results;
  19.  
  20.  
  21. void setup()
  22. {
  23. Serial.begin (9600);
  24.  
  25. pinMode(trigPin, OUTPUT);
  26. pinMode(echoPin, INPUT);
  27. pinMode(led, OUTPUT);
  28. pinMode(led2, OUTPUT);
  29.  
  30. myservo.attach(9);
  31. myservo1.attach(10);
  32. myservo2.attach(11);
  33.  
  34. irrecv.enableIRIn();
  35. irrecv.blink13(true);
  36. }
  37.  
  38.  
  39.  
  40. void operate_robot()
  41. {
  42. long duration = 0, distance = 0;
  43. int pos = 0;
  44.  
  45. attachInterrupt(1, res, CHANGE);
  46. digitalWrite(trigPin, LOW);
  47. delayMicroseconds(2);
  48. digitalWrite(trigPin, HIGH);
  49. delayMicroseconds(10);
  50. digitalWrite(trigPin, LOW);
  51. duration = pulseIn(echoPin, HIGH);
  52. distance = (duration/2) / 29.1;
  53.  
  54. if(distance <= 20)
  55. {
  56. digitalWrite(led,HIGH);
  57. digitalWrite(led2,LOW);
  58.  
  59. for(; pos < 180; pos++)
  60. {
  61. myservo.write(pos);
  62. myservo1.write(pos);
  63. myservo2.write(pos);
  64.  
  65. delay(5);
  66. }
  67.  
  68. for(pos = 180; pos > 0; pos--)
  69. {
  70. myservo.write(pos);
  71. myservo1.write(pos);
  72. myservo2.write(pos);
  73.  
  74. delay(5);
  75. }
  76. }
  77. else if (distance > 20)
  78. {
  79. digitalWrite(led,LOW);
  80. digitalWrite(led2,HIGH);
  81.  
  82. for(pos = 0; pos < 20; pos++)
  83. {
  84. myservo.write(pos);
  85. myservo1.write(pos);
  86. myservo2.write(pos);
  87.  
  88. delay(5);
  89. }
  90.  
  91. for(pos = 20; pos > 0; pos--)
  92. {
  93. myservo.write(pos);
  94. myservo1.write(pos);
  95. myservo2.write(pos);
  96.  
  97. delay(5);
  98. }
  99.  
  100. }
  101.  
  102. }
  103. void res ()
  104. {
  105. irrecv.resume();
  106.  
  107. }
  108.  
  109. void loop()
  110. {
  111. if(pressed == 0)
  112. {
  113. if(irrecv.decode(&results))
  114. {
  115. if(results.value == 16753245)
  116. {
  117. pressed = 1;
  118. operate_robot();
  119. }
  120. else
  121. {
  122. irrecv.resume();
  123. }
  124. }
  125. }
  126. else if(results.value == 16753245)
  127. {
  128. operate_robot();
  129. }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement