Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. #include <NewPing.h>
  2. int pin1Moteur1 = 12;
  3. int pin2Moteur1 = 8;
  4. int pinPMoteur1 = 11;
  5. int pin1Moteur2 = 2;
  6. int pin2Moteur2 = 4;
  7. int pinPMoteur2 = 5;
  8. int TRIG_PIN = 10;
  9. int ECHO_PIN = 9;
  10. int DIST_MAX = 200;
  11. int i = 90;
  12. int distActuelle = 0;
  13. int cm;
  14. NewPing sonar(TRIG_PIN, ECHO_PIN, 200);
  15.  
  16. void setup() {
  17. pinMode(pin1Moteur1,OUTPUT);
  18. pinMode(pin2Moteur1,OUTPUT);
  19. pinMode(pinPMoteur1,OUTPUT);
  20. pinMode(pin1Moteur2,OUTPUT);
  21. pinMode(pin2Moteur2,OUTPUT);
  22. pinMode(pinPMoteur2,OUTPUT);
  23. }
  24. void loop() {
  25. distActuelle = lectureDistance();
  26. if (distActuelle > 20){
  27. avance();
  28. }
  29. if (distActuelle < 20){
  30. recule();
  31. tourneDroite();
  32. }
  33. delay(300);
  34. }
  35.  
  36. void dirMoteur(int moteur,int sens,int pc)
  37. {
  38. int pin1,etat1,pin2,etat2,pinP,puissance;
  39. if (moteur==1){
  40. pin1=pin1Moteur1;
  41. pin2=pin2Moteur1;
  42. pinP=pinPMoteur1;
  43. }
  44. else {
  45. pin1=pin1Moteur2;
  46. pin2=pin2Moteur2;
  47. pinP=pinPMoteur2;
  48. }
  49. if (sens==1){
  50. etat1=1;
  51. etat2=0;
  52. }
  53. else if (sens==-1){
  54. etat1=0;
  55. etat2=1;
  56. }
  57. else {
  58. etat1=0;
  59. etat2=0;
  60. }
  61. puissance=map(pc,0,100,0,255);
  62. analogWrite(pinP,puissance);
  63. digitalWrite(pin1,etat1);
  64. digitalWrite(pin2,etat2);
  65. }
  66.  
  67. void avance(){
  68. dirMoteur(1,1,100);
  69. dirMoteur(2,1,100);
  70. }
  71. void recule(){
  72. dirMoteur(1,0,100);
  73. dirMoteur(2,0,100);
  74. delay(2000);
  75. dirMoteur(1,-1,100);
  76. dirMoteur(2,-1,50);
  77. }
  78. void tourneDroite(){
  79. delay(1000);
  80. dirMoteur(1,-1,100);
  81. dirMoteur(2,0,0);
  82. delay(1000);
  83. dirMoteur(1,-1,100);
  84. dirMoteur(2,1,50);
  85. delay(1000);
  86. }
  87.  
  88. int lectureDistance() {
  89. delay(70);
  90. unsigned int uS =
  91. sonar.ping();
  92. cm = uS /
  93. US_ROUNDTRIP_CM;
  94. if(cm == 0){
  95. lectureDistance();
  96. }
  97. else{
  98. return cm;
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement