Guest User

Untitled

a guest
May 24th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.15 KB | None | 0 0
  1. const int LDR_Pin=A0; // pin ldr1
  2. const int ldrl=A1; // pin ldr2
  3. const int ldrr=A2; // pin ldr3
  4. const int Red_Led_Pin=2;
  5. const int Green_Led_Pin=3;
  6. int v1=130; //les vitesses à changer selon les moteurs que vous avez car en générale ils n'ont pas les memes vitesses
  7. int v2=150;
  8. int v11=80;
  9. int v22=100;
  10. int pin1Moteur1=13; //pin de commande moteur 1
  11. int pin2Moteur1=12; // pin de commande moteur 1
  12. int pinPMoteur1=11;// pin PWM moteur 1
  13. int pin1Moteur2=8; // pin de commande moteur 2
  14. int pin2Moteur2=7; // pin de commande moteur 2
  15. int pinPMoteur2=5; // pin PWM moteur 2
  16. /*################################################*/
  17. //fonction cryptage du code morse de la lettre V ou O
  18. bool crypt()
  19. {Serial.println("in");
  20. unsigned long Time=0;
  21. unsigned long Start;
  22. //int val1=analogRead(LDR_Pin);
  23. while (Time < 470)
  24. {
  25. Time = 0 ;
  26. Serial.println(analogRead(LDR_Pin));
  27. if (analogRead(LDR_Pin)<= 100 )
  28. {
  29. Start = millis();
  30. int k=0;
  31. while(analogRead(LDR_Pin) <= 100 )
  32. { }
  33. Time = millis() - Start ;
  34. Serial.println("Time");
  35. Serial.println(Time);
  36. }
  37. }
  38. //Serial.println("ok");
  39. unsigned long st = millis();
  40. unsigned long Time1 = 0;
  41. while(analogRead(LDR_Pin) >150)
  42. { }
  43. Time1 = millis() - st;
  44. Serial.println("Time1");
  45. Serial.println(Time1);
  46.  
  47. if (Time1>=290 && Time1<=310)
  48. {digitalWrite(Green_Led_Pin,LOW);
  49. digitalWrite(Red_Led_Pin,HIGH);
  50. return true;
  51. }
  52. else if (Time1 >= 90 && Time1<=110)
  53. {
  54. digitalWrite(Green_Led_Pin,HIGH);
  55. digitalWrite(Red_Led_Pin,LOW);
  56. return true;
  57. }
  58. else
  59. {
  60. Serial.println("none");
  61. return false;
  62. }
  63. }
  64. /*#####################################*/
  65.  
  66. char str[2],i;
  67. void forward() // fonction avancer téléguidé
  68. { analogWrite(pinPMoteur1,v1);
  69. digitalWrite(pin1Moteur1, 0);
  70. digitalWrite(pin2Moteur1, 1);
  71. analogWrite(pinPMoteur2,v2);
  72. digitalWrite(pin1Moteur2, 0);
  73. digitalWrite(pin2Moteur2,1);
  74. }
  75. void backward() //fct reculer téléguidé
  76. {
  77. analogWrite(pinPMoteur1,v1);
  78. Serial.print("pwm1");Serial.print(analogRead(pinPMoteur1));
  79. digitalWrite(pin1Moteur1, 1);
  80. digitalWrite(pin2Moteur1, 0);
  81.  
  82. analogWrite(pinPMoteur2,v2);
  83. digitalWrite(pin1Moteur2, 1);
  84. Serial.print("pin2mot2");Serial.print(analogRead(pin1Moteur2));
  85. digitalWrite(pin2Moteur2,0);
  86. }
  87. void left() // fct tourner à gauche téléguidé
  88. {
  89. analogWrite(pinPMoteur1,v1);
  90. digitalWrite(pin1Moteur1, 0);
  91. digitalWrite(pin2Moteur1, 1);
  92. analogWrite(pinPMoteur2,0);
  93. digitalWrite(pin1Moteur2,0);
  94. digitalWrite(pin2Moteur2,0);
  95. }
  96. void right() //fct tourner à droite téléguidé
  97. {
  98. analogWrite(pinPMoteur1,0);
  99. digitalWrite(pin1Moteur1,0);
  100. digitalWrite(pin2Moteur1, 0);
  101. analogWrite(pinPMoteur2,v2);
  102. digitalWrite(pin1Moteur2, 0);
  103. digitalWrite(pin2Moteur2,1);
  104. }
  105.  
  106. void stopp() // fct stop pour téléguidé et suiveur
  107. { analogWrite(pinPMoteur1,0);
  108. analogWrite(pinPMoteur2,0);
  109. digitalWrite(pin2Moteur1,LOW);
  110. digitalWrite(pin1Moteur1,LOW);
  111. digitalWrite(pin2Moteur2,LOW);
  112. digitalWrite(pin1Moteur2,LOW);}
  113.  
  114. void moveForward(int v1 ,int v2) //fonction avancer pour le suiveur
  115. { analogWrite(pinPMoteur1,v1);
  116. analogWrite(pinPMoteur2,v2);
  117. digitalWrite(pin2Moteur1,HIGH);
  118. digitalWrite(pin2Moteur2,HIGH);
  119. digitalWrite(pin1Moteur1,LOW);
  120. digitalWrite(pin1Moteur2,LOW);
  121. }
  122.  
  123. void moveBackward(int v1, int v2) // fonction reculer pour suiveur
  124. { analogWrite(pinPMoteur1,v1);
  125. analogWrite(pinPMoteur2,v2);
  126. digitalWrite(pin1Moteur1,HIGH);
  127. digitalWrite(pin1Moteur2,HIGH);
  128. digitalWrite(pin2Moteur1,LOW);
  129. digitalWrite(pin2Moteur2,LOW);
  130. }
  131.  
  132. void turnLeft()//left motor stops and right motor goes forward to turn left in place
  133. { analogWrite(pinPMoteur1,v11);
  134. digitalWrite(pin1Moteur1, 0);
  135. digitalWrite(pin2Moteur1, 1);
  136. analogWrite(pinPMoteur2,0);
  137. digitalWrite(pin1Moteur2,0);
  138. digitalWrite(pin2Moteur2,0);
  139.  
  140. }
  141.  
  142. void turnRight()//right motor stops and left motor goes forward to turn right in place
  143. { analogWrite(pinPMoteur1,0);
  144. digitalWrite(pin1Moteur1,0);
  145. digitalWrite(pin2Moteur1, 0);
  146. analogWrite(pinPMoteur2,v22);
  147. digitalWrite(pin1Moteur2, 0);
  148. digitalWrite(pin2Moteur2,1);
  149. }
  150.  
  151. void suiveur()
  152. {int j =0;
  153.  
  154. while(j<4){
  155. moveForward(v11,v22);
  156. delay(100);
  157. if (analogRead(ldrl)<100 && analogRead(ldrr)>150&& (j<4))
  158. {
  159. stopp();
  160. delay(10);
  161. turnLeft();
  162. delay(930);
  163. j++;
  164. }
  165. else if (analogRead(ldrr)<100 && analogRead(ldrl)>150&& (j<4))
  166. {
  167. stopp();
  168. delay(10);
  169. turnRight();
  170. delay(930);
  171. j++;
  172.  
  173.  
  174. }/*else{if (analogRead(ldrc))
  175. {
  176. moveForward(v1,v2);
  177. }}*/
  178.  
  179.  
  180.  
  181. }
  182. if (j==4)
  183. {
  184. stopp();
  185. }
  186.  
  187. }
  188. void setup()
  189. {
  190. Serial.begin(9600);
  191. pinMode(LDR_Pin, INPUT);
  192. pinMode(Red_Led_Pin, OUTPUT);
  193. pinMode(Green_Led_Pin, OUTPUT);
  194. pinMode(ldrl,INPUT);
  195. pinMode(ldrr,INPUT);
  196. pinMode(pin1Moteur1, OUTPUT);
  197. pinMode(pin2Moteur1, OUTPUT);
  198. pinMode(pinPMoteur1, OUTPUT);
  199. pinMode(pin1Moteur2, OUTPUT);
  200. pinMode(pin2Moteur2, OUTPUT);
  201. pinMode(pinPMoteur2, OUTPUT);
  202.  
  203. }
  204.  
  205. void loop()
  206. { //crypt();
  207. int b=0;
  208. Serial.println(Serial.available());
  209. while(Serial.available())
  210. {
  211. char ch=Serial.read();
  212. str[i++]=ch;
  213.  
  214. if(str[i-1]=='1')
  215. {
  216. Serial.println("Forward");
  217. forward();
  218. delay(200);
  219. stopp();
  220. i=0;
  221. }
  222. else if(str[i-1]=='7')
  223. {
  224. bool test = false;
  225. int b=0;
  226. while(b<10 && test == false){
  227. Serial.print(b);
  228. test = crypt() ;
  229. b++;}
  230. i=0;
  231. }
  232. else if(str[i-1]=='2')
  233. {
  234. Serial.println("Left");
  235. right();
  236. delay(200);
  237. stopp();
  238. i=0;
  239. }
  240. else if(str[i-1]=='3')
  241. {
  242. Serial.println("Right");
  243. left();
  244. delay(200);
  245. stopp();
  246. i=0;
  247. }
  248.  
  249. else if(str[i-1]=='4')
  250. {
  251. Serial.println("Backward");
  252. backward();
  253. delay(200);
  254. stopp();
  255. i=0;
  256. }
  257. else if(str[i-1]=='5')
  258. {
  259. Serial.println("Stop");
  260. stopp();
  261. i=0;
  262. }
  263. else if (str[i-1]=='6') //suiveur
  264. {
  265. suiveur();
  266. i=0;
  267. }
  268. delay(100);
  269. }
  270. //turnLeft();
  271. }
Add Comment
Please, Sign In to add comment