Advertisement
bono_d70

Bluetooth Steuerung mit Ultraschall

Dec 4th, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.58 KB | None | 0 0
  1. #define ENA 5
  2. #define ENB 6
  3. #define IN1 7
  4. #define IN2 8
  5. #define IN3 9
  6. #define IN4 11
  7. #define LED 13
  8.  
  9. #include <Servo.h> //servo library
  10. Servo myservo; // create servo object to control servo
  11.  
  12. bool state = LOW;
  13. char getstr;
  14. int speedy = 150;
  15.  
  16. int Echo = A4;
  17. int Trig = A5;
  18. long dauer = 0; //funduino.de Nr.10
  19. long entfernung = 0; //funduino.de Nr.10
  20. int rightDistance = 0, leftDistance = 0, middleDistance = 0;
  21.  
  22. void forward(){
  23. digitalWrite(ENA,HIGH);
  24. digitalWrite(ENB,HIGH);
  25. digitalWrite(IN1,HIGH);
  26. digitalWrite(IN2,LOW);
  27. digitalWrite(IN3,LOW);
  28. digitalWrite(IN4,HIGH);
  29. Serial.println("Forward");
  30. }
  31.  
  32. void back(){
  33. digitalWrite(ENA,HIGH);
  34. digitalWrite(ENB,HIGH);
  35. digitalWrite(IN1,LOW);
  36. digitalWrite(IN2,HIGH);
  37. digitalWrite(IN3,HIGH);
  38. digitalWrite(IN4,LOW);
  39. Serial.println("Back");
  40. }
  41.  
  42. void left(){
  43. analogWrite(ENA,speedy);
  44. analogWrite(ENB,speedy);
  45. digitalWrite(IN1,LOW);
  46. digitalWrite(IN2,HIGH);
  47. digitalWrite(IN3,LOW);
  48. digitalWrite(IN4,HIGH);
  49. Serial.println("Left");
  50. }
  51.  
  52. void right(){
  53. analogWrite(ENA,speedy);
  54. analogWrite(ENB,speedy);
  55. digitalWrite(IN1,HIGH);
  56. digitalWrite(IN2,LOW);
  57. digitalWrite(IN3,HIGH);
  58. digitalWrite(IN4,LOW);
  59. Serial.println("Right");
  60. }
  61.  
  62. void stop(){
  63. digitalWrite(ENA,LOW);
  64. digitalWrite(ENB,LOW);
  65. Serial.println("Stop!");
  66. }
  67.  
  68. void stateChange(){
  69. state = !state;
  70. digitalWrite(LED, state);
  71. Serial.println("Light");
  72. }
  73.  
  74. void speedDown() {
  75. speedy = (speedy-50);
  76. if (speedy <=100)
  77. speedy = 100;
  78. }
  79.  
  80. void speedUp() {
  81. speedy = (speedy+50);
  82. if (speedy >=200)
  83. speedy = 200;
  84. }
  85.  
  86. //Ultrasonic distance measurement Sub function
  87. int Distance_test() {
  88. digitalWrite(Trig, LOW);
  89. delayMicroseconds(2);
  90. digitalWrite(Trig, HIGH);
  91. delayMicroseconds(20);
  92. digitalWrite(Trig, LOW);
  93. float Fdistance = pulseIn(Echo, HIGH);
  94. Fdistance= Fdistance / 58;
  95. return (int)Fdistance;
  96. }
  97.  
  98. void setup() {
  99. Serial.begin(9600);
  100. pinMode(LED, OUTPUT);
  101. pinMode(IN1,OUTPUT);
  102. pinMode(IN2,OUTPUT);
  103. pinMode(IN3,OUTPUT);
  104. pinMode(IN4,OUTPUT);
  105. pinMode(ENA,OUTPUT);
  106. pinMode(ENB,OUTPUT);
  107. pinMode(Trig, OUTPUT); // Trigger-Pin ist ein Ausgang
  108. pinMode(Echo, INPUT); // Echo-Pin ist ein Eingang
  109. stop();
  110. }
  111.  
  112. void loop() {
  113.  
  114. digitalWrite(Trig, LOW);
  115. delay(5);
  116. digitalWrite(Trig, HIGH);
  117. delay(10);
  118. digitalWrite(Trig, LOW);
  119. dauer = pulseIn(Echo, HIGH);
  120. entfernung = (dauer/2) * 0.03432;
  121. if (entfernung >= 1000 || entfernung <= 0)
  122. {
  123. Serial.println("Kein Messwert");
  124. }
  125. else
  126. {
  127. Serial.print(entfernung);
  128. Serial.println(" cm");
  129. }
  130. if (entfernung >= 80){
  131. getstr = Serial.read();
  132. switch(getstr){
  133. case 'a': stateChange(); break;
  134. case 'f': forward(); break;
  135. case 'b': back(); break;
  136. case 'l': left(); break;
  137. case 'r': right(); break;
  138. case 's': stop(); break;
  139. default: break;
  140. }
  141. }
  142. else if (entfernung < 80){
  143. getstr = Serial.read();
  144. switch(getstr){
  145. case 'a': stateChange(); break;
  146. case 'b': back(); break;
  147. case 'l': left(); break;
  148. case 'r': right(); break;
  149. case 's': stop(); break;
  150. default: break;
  151. }
  152. }
  153. else {
  154. stop();
  155. }
  156. delay(100);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement