Advertisement
tomateblue

LineFollowUltraSonic

Sep 30th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.00 KB | None | 0 0
  1.  
  2. const int trig = 2;
  3. const int echo = 3;
  4.  
  5. int r1 = 11;
  6. int r2 = 13;
  7.  
  8. int m1 = 4;
  9. int m2 = 5;
  10. int m3 = 6;
  11. int m4 = 7;
  12.  
  13.  
  14. int linha1 = 0;
  15. int linha2 = 0;
  16.  
  17. void setup()
  18. {
  19.   Serial.begin (9600);
  20.   pinMode(trig, OUTPUT);
  21.   pinMode(echo, INPUT);
  22.  
  23.   pinMode(r2, INPUT);
  24.   pinMode(r1, INPUT);
  25.  
  26.  
  27.  
  28.   pinMode(m1, OUTPUT);
  29.   pinMode(m2, OUTPUT);
  30.   pinMode(m3, OUTPUT);
  31.   pinMode(m4, OUTPUT);
  32.    
  33. }
  34. void loop()
  35. {
  36.   long duracao;
  37.   long distancia;
  38.   digitalWrite(trig, LOW);  
  39.   delayMicroseconds(2);  
  40.   digitalWrite(trig, HIGH);
  41.   delayMicroseconds(10);  
  42.   digitalWrite(trig, LOW);
  43.   duracao = pulseIn(echo, HIGH);
  44.   distancia = duracao / 58;
  45.   Serial.print(distancia);
  46.   Serial.println(" cm");
  47.   delay(5);
  48.   if (distancia<=12)//PUMM!! TEM OBSTÁCULO!
  49.   {
  50.     ler();
  51.     MotorParar();
  52.   }
  53.   else
  54.   {
  55.    
  56.     ler();
  57.  
  58.     if(linha1==1)
  59.     {
  60.       MotorEsquerda();
  61.     }
  62.  
  63.     if(linha2==1)
  64.     {
  65.       MotorDireita();
  66.     }
  67.  
  68.    
  69.     if((linha1==0) && (linha2==0))
  70.     {
  71.       MotorParar();
  72.       delay(500);
  73.       MotorDireita();
  74.       delay(2000);
  75.     }
  76.     if((linha1==1) && (linha2==1))
  77.     {
  78.       MotorParar();
  79.       delay(500);
  80.       MotorEsquerda();
  81.       delay(2000);
  82.     }
  83.     delay(2);
  84.   }  
  85. }
  86.  
  87. void ler()
  88. {
  89.   linha1 = digitalRead(r1);
  90.   linha2 = digitalRead(r2);
  91.   Serial.print("linha1: ");
  92.   Serial.println(linha1);
  93.   Serial.print("linha2: ");
  94.   Serial.println(linha2);
  95.   return;
  96. }
  97.  
  98. void MotorDireita()
  99. {
  100.  digitalWrite(m1, HIGH);
  101.  digitalWrite(m4, LOW);
  102.  digitalWrite(m3, LOW);
  103.  digitalWrite(m2, LOW);
  104.  delay(5);
  105. }
  106.  
  107. void MotorEsquerda()
  108. {
  109.  digitalWrite(m3, HIGH);
  110.  digitalWrite(m2, LOW);
  111.  digitalWrite(m1, LOW);
  112.  digitalWrite(m4, LOW);
  113.  delay(5);
  114. }
  115.  
  116. void MotorFrente()
  117. {
  118.  digitalWrite(m2, LOW);
  119.  digitalWrite(m4, LOW);
  120.  analogWrite(m3, 50);
  121.  analogWrite(m1, 50);
  122. }
  123.  
  124. void MotorParar()
  125. {
  126.  digitalWrite(m3, LOW);
  127.  digitalWrite(m1, LOW);
  128.  digitalWrite(m2, LOW);
  129.  digitalWrite(m4, LOW);
  130.   delay(5);
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement