Advertisement
Guest User

Untitled

a guest
Mar 29th, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. #include <Servo.h>
  2. Servo servoesq, servodir;
  3. int irPin = 2;
  4. int start_bit = 2200;
  5. int bin_1 = 1000;
  6. int bin_0 = 400;
  7. void setup() {
  8. pinMode(irPin, INPUT);
  9. Serial.begin(9600);
  10. Serial.println("Waiting: ");
  11. servoesq.attach(10);
  12. servodir.attach(9);
  13. servoesq.write(89);
  14. servodir.write(89);
  15. }
  16. void loop() {
  17. int key = getIRKey();
  18. if (key != 0)
  19. {
  20. Serial.print("Key Recieved: ");
  21. switch (key)
  22. {
  23. case 146: Serial.print("Right");
  24. servoesq.write(180);
  25. servodir.write(150);
  26. break;
  27. case 147: Serial.print("Left");
  28. servoesq.write(0);
  29. servodir.write(10);
  30. break;
  31. case 148: Serial.print("Back");
  32. servoesq.write(180);
  33. servodir.write(10);
  34. break;
  35. case 165: Serial.print("Forward");
  36. servoesq.write(0);
  37. servodir.write(150);
  38. break;
  39. case 149:
  40. Serial.print("Stop");
  41. servoesq.write(89);
  42. servodir.write(89);
  43. break;
  44. }
  45. Serial.println();
  46. }
  47. }
  48. int getIRKey() {
  49. int data[12];
  50. int i;
  51. while (pulseIn(irPin, LOW) < start_bit);
  52. for (i = 0 ; i < 11 ; i++)
  53. data[i] = pulseIn(irPin, LOW);
  54. for (i = 0 ; i < 11 ; i++)
  55. {
  56. if (data[i] > bin_1)
  57. data[i] = 1;
  58. else if (data[i] > bin_0)
  59. data[i] = 0;
  60. else
  61. return -1;
  62. }
  63. int result = 0;
  64. for (i = 0 ; i < 11 ; i++)
  65. {
  66. if(data[i] == 1) result |= (!i);
  67. return result;
  68. }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement