Advertisement
Guest User

Untitled

a guest
Aug 20th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.05 KB | None | 0 0
  1. i problemi sono
  2. 1 che non mi permette di usare > su if analogread>soglia ne >=
  3. 2 la prima volta mi spegne il motore la seconda fa il cambio parlo del pulsante di stop button D
  4. 3 e 4 se metto uno solo funziona ma se metto tutti e 3 parte sempre la prima istruzione nel case 2 parlo di button A button B e button C
  5.  
  6.  
  7. ecco il programma
  8.  
  9. #include <InputDebounce.h>
  10. #include <Bounce2.h>
  11. #include <Servo.h>
  12.  
  13. int buttonA = 51;
  14. int buttonB = 52;
  15. int buttonD = 30;
  16. int buttonC = 53;
  17. int fase0 = 22;
  18. int fase1 = 23;
  19. int fase2 = 24;
  20. int fase3 = 25;
  21. int rele2 = 27;
  22. int rele3 = 28;
  23. int rele4 = 29;
  24. int rele1 = 26;
  25. int tempo = 10;
  26. Servo myservo;
  27.  
  28. void setup()
  29. {
  30. myservo.attach(31);
  31. Serial.begin(9600);
  32. pinMode(buttonA, INPUT);
  33. pinMode(buttonB, INPUT);
  34. pinMode(buttonC, INPUT);
  35. pinMode(buttonD, INPUT);
  36. pinMode(fase0, OUTPUT);
  37. pinMode(fase1, OUTPUT);
  38. pinMode(fase2, OUTPUT);
  39. pinMode(fase3, OUTPUT);
  40. pinMode(rele2, OUTPUT);
  41. pinMode(rele3, OUTPUT);
  42. pinMode(rele4, OUTPUT);
  43. pinMode(rele1, OUTPUT);
  44. }
  45.  
  46. void loop()
  47. {
  48. Serial.println();
  49. int alpha;
  50. int beta;
  51. int gamma;
  52. int variabile=0;
  53. int memoria=HIGH;
  54. int soglia=250;
  55. int cambio;
  56.  
  57. digitalWrite(rele1, HIGH);
  58. digitalWrite(rele4, HIGH);
  59. digitalWrite(rele3, HIGH);
  60. digitalWrite(rele2, HIGH);
  61.  
  62.  
  63. if(digitalRead(buttonA)==HIGH)
  64. {
  65. variabile=1;
  66. alpha=HIGH;
  67. }
  68.  
  69. if(digitalRead(buttonB)==HIGH)
  70. {
  71. variabile=1;
  72. beta=HIGH;
  73. }
  74.  
  75. if(digitalRead(buttonC)==HIGH)
  76. {
  77. variabile=1;
  78. gamma=HIGH;
  79. }
  80.  
  81. if(digitalRead(buttonD)==HIGH)
  82. {
  83. variabile=2;
  84. }
  85.  
  86. if(analogRead(A0)>soglia)
  87. {
  88. memoria=LOW;
  89. delay(500);
  90. variabile=3;
  91. }
  92.  
  93. if (cambio==HIGH)
  94. {
  95. if(myservo.read()==0)
  96. {
  97. variabile=4;
  98. }
  99. }
  100.  
  101.  
  102. switch(variabile){
  103.  
  104. case 1:
  105. while(digitalRead(buttonD)==LOW)
  106. {
  107. digitalWrite(fase0, HIGH);
  108. digitalWrite(fase3, LOW);
  109. delay(tempo);
  110. digitalWrite(fase0, LOW);
  111. digitalWrite(fase1, HIGH);
  112. delay(tempo);
  113. digitalWrite(fase1, LOW);
  114. digitalWrite(fase2, HIGH);
  115. delay(tempo);
  116. digitalWrite(fase2, LOW);
  117. digitalWrite(fase3, HIGH);
  118. delay(tempo);
  119. }
  120. break;
  121.  
  122. case 2:
  123. myservo.write(180);
  124.  
  125. if(alpha==HIGH)
  126. {
  127. while(memoria==HIGH)
  128. {
  129. digitalWrite(rele1, LOW);
  130. digitalWrite(rele2, LOW);
  131. }
  132. }
  133.  
  134. if(beta==HIGH)
  135. {
  136. while(memoria==HIGH)
  137. {
  138. digitalWrite(rele1, LOW);
  139. digitalWrite(rele3, LOW);
  140. }
  141. }
  142.  
  143. if(gamma==HIGH)
  144. {
  145. while(memoria==HIGH)
  146. {
  147. digitalWrite(rele1, LOW);
  148. digitalWrite(rele4, LOW);
  149. }
  150. }
  151. break ;
  152.  
  153. case 3:
  154. myservo.write(0);
  155. cambio==HIGH;
  156. break ;
  157.  
  158. case 4:
  159. while(digitalRead(buttonD)==LOW)
  160. {
  161. digitalWrite(fase3, HIGH);
  162. digitalWrite(fase0, LOW);
  163. delay(tempo);
  164. digitalWrite(fase3, LOW);
  165. digitalWrite(fase2, HIGH);
  166. delay(tempo);
  167. digitalWrite(fase2, LOW);
  168. digitalWrite(fase1, HIGH);
  169. delay(tempo);
  170. digitalWrite(fase1, LOW);
  171. digitalWrite(fase0, HIGH);
  172. delay(tempo);
  173. }
  174. break ;
  175.  
  176. }
  177.  
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement