Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.75 KB | None | 0 0
  1. // Dette program kan forbinde en Arduino + USB Host Shield + Motor Shield
  2. // Programmet er lavet til at fjernstyre en bil. Blinke med lamper samt dytte
  3. // ved hjælp af en buzzer
  4. // Der bruges en Xbox controller
  5.  
  6.  
  7. #include <XBOXRECV.h>
  8. #ifdef dobogusinclude
  9. #include <spi4teensy3.h>
  10. #endif
  11. #include <Wire.h>
  12. #include <Adafruit_MotorShield.h>
  13. #include "utility/Adafruit_MS_PWMServoDriver.h"
  14.  
  15.  
  16. // Laver instancer af vores MotorShield samt vores 2 motorer.
  17. Adafruit_MotorShield AFMS = Adafruit_MotorShield();
  18. Adafruit_DCMotor *myMotor = AFMS.getMotor(1);
  19. Adafruit_DCMotor *myMotor2 = AFMS.getMotor(2);
  20.  
  21. // Laver instancer af vores Usb samt Xbox controller
  22. USB Usb;
  23. XBOXRECV Xbox(&Usb);
  24.  
  25. // variabler
  26. int pulse = 0; //Hastighed
  27. int piezoPin = 40; //buzzer
  28.  
  29. void setup() {
  30.  
  31. // definerer pins som output til LED
  32.  
  33. pinMode(30, OUTPUT); //venstre baglys rød
  34. pinMode(31, OUTPUT); //højre baglys rød
  35. pinMode(32, OUTPUT); //venstre blink bag
  36. pinMode(33, OUTPUT); //højre blink bag
  37.  
  38. pinMode(46, OUTPUT); //højre lys foran rød
  39. pinMode(47, OUTPUT); //venstre forlys rød
  40. pinMode(48, OUTPUT); //højre blink foran
  41. pinMode(49, OUTPUT); //højre blink foran
  42.  
  43. // Starter Motorshield
  44. AFMS.begin();
  45.  
  46. //Timer
  47. TCCR1B = TCCR1B & 0b11111000 | 0x02;
  48.  
  49. // sætter data rate til 115200 bps
  50. Serial.begin(115200);
  51.  
  52. // Hvis den ikke er forbundet
  53. if (Usb.Init() == -1)
  54. {
  55. Serial.print(F("\r\n Did not start"));
  56. }
  57.  
  58. Serial.print(F("\r\nXbox Wireless Receiver Library Started"));
  59.  
  60. }
  61.  
  62. void loop() {
  63.  
  64. drivingLights();
  65. Usb.Task();
  66.  
  67. if(Xbox.XboxReceiverConnected)
  68. {
  69.  
  70. for(uint8_t i=0;i<4;i++) {
  71.  
  72. // R2 Knap
  73. if(Xbox.getButtonPress(R2, i))
  74. {
  75. Serial.print("R2: ");
  76. Serial.println(Xbox.getButtonPress(R2, i));
  77. pulse = Xbox.getButtonPress(R2, i);
  78.  
  79. if(pulse < 101)
  80. {
  81. myMotor->setSpeed(pulse);
  82. myMotor->run(FORWARD);
  83. }
  84.  
  85. if(pulse < 100)
  86. {
  87. myMotor->run(RELEASE);
  88. }
  89.  
  90. }
  91.  
  92. // L2 Knap
  93. if(Xbox.getButtonPress(L2, i))
  94. {
  95. Serial.print("L2: ");
  96. Serial.println(Xbox.getButtonPress(L2, i));
  97. pulse = Xbox.getButtonPress(L2, i);
  98.  
  99. if(pulse <101)
  100. {
  101. myMotor->setSpeed(pulse);
  102. myMotor->run(BACKWARD);
  103. }
  104.  
  105. if(pulse < 99)
  106. {
  107. myMotor->run(RELEASE);
  108. }
  109.  
  110. }
  111.  
  112. // Højre analog over 7500
  113. if(Xbox.getAnalogHat(RightHatX, i) > 7500)
  114. {
  115. Serial.print(F("RightHatX: "));
  116. Serial.print(Xbox.getAnalogHat(RightHatX, i));
  117. Serial.print("\n");
  118. turnRight();
  119.  
  120. }
  121.  
  122. // Højre analog under -7500
  123. if(Xbox.getAnalogHat(RightHatX, i) < -7500)
  124. {
  125. Serial.print(F("RightHatX: "));
  126. Serial.print(Xbox.getAnalogHat(RightHatX, i));
  127. Serial.print("\n");
  128. turnLeft();
  129.  
  130. }
  131.  
  132. //Knap B - Horn
  133. if(Xbox.getButtonPress(B, i))
  134. {
  135. horn();
  136. }
  137.  
  138. //Knap L1 - Blink til venstre
  139. if(Xbox.getButtonPress(L1, i))
  140. {
  141. blinkV();
  142. }
  143.  
  144. //Knap R1 - Blink til højre
  145. if(Xbox.getButtonPress(R1, i))
  146. {
  147. blinkH();
  148. }
  149.  
  150. // Knap Y - Havari Blink
  151. if(Xbox.getButtonPress(Y, i))
  152. {
  153. havariBlink();
  154. }
  155.  
  156. }
  157. }
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement