Advertisement
tomateblue

LineFollow

Sep 30th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.90 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.  
  37.  
  38.   long duracao;
  39.   long distancia;
  40.   digitalWrite(trig, LOW);  
  41.   delayMicroseconds(2);  
  42.   digitalWrite(trig, HIGH);
  43.   delayMicroseconds(10);  
  44.   digitalWrite(trig, LOW);
  45.   duracao = pulseIn(echo, HIGH);
  46.   distancia = duracao / 58;
  47.   Serial.print(distancia);
  48.   Serial.println(" cm");
  49.   delay(5);
  50.   if (distancia<=12)//PUMM!! TEM OBSTÁCULO!
  51.   {
  52.     ler();
  53.     MotorParar();
  54.   }
  55.   else
  56.   {
  57.    
  58.     ler();
  59.  
  60.     if(linha1==1)
  61.     {
  62.       MotorEsquerda();
  63.     }
  64.  
  65.     if(linha2==1)
  66.     {
  67.       MotorDireita();
  68.     }
  69.  
  70.    
  71.     if((linha1==0) && (linha2==0))
  72.     {
  73.       MotorFrente();
  74.     }
  75.     if((linha1==1) && (linha2==1))
  76.     {
  77.       MotorParar();
  78.       delay(1000);
  79.     }
  80.     delay(2);
  81.   }  
  82. }
  83.  
  84. void ler()
  85. {
  86.   linha1 = digitalRead(r1);
  87.   linha2 = digitalRead(r2);
  88.   Serial.print("linha1: ");
  89.   Serial.println(linha1);
  90.   Serial.print("linha2: ");
  91.   Serial.println(linha2);
  92.   return;
  93. }
  94.  
  95. void MotorDireita()
  96. {
  97.  digitalWrite(m1, HIGH);
  98.  digitalWrite(m4, LOW);
  99.  digitalWrite(m3, LOW);
  100.  digitalWrite(m2, LOW);
  101.  delay(5);
  102. }
  103.  
  104. void MotorEsquerda()
  105. {
  106.  digitalWrite(m3, HIGH);
  107.  digitalWrite(m2, LOW);
  108.  digitalWrite(m1, LOW);
  109.  digitalWrite(m4, LOW);
  110.  delay(5);
  111. }
  112.  
  113. void MotorFrente()
  114. {
  115.  digitalWrite(m2, LOW);
  116.  digitalWrite(m4, LOW);
  117.  analogWrite(m3, 50);
  118.  analogWrite(m1, 50);
  119. }
  120.  
  121. void MotorParar()
  122. {
  123.  digitalWrite(m3, LOW);
  124.  digitalWrite(m1, LOW);
  125.  digitalWrite(m2, LOW);
  126.  digitalWrite(m4, LOW);
  127.   delay(5);
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement