Advertisement
kuroshan1104

CARRITO EVITA OBSTACULO-UNS 2022

Sep 6th, 2022
1,690
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Arduino 2.87 KB | Source Code | 0 0
  1. #define ledPin 13
  2. #define motorDerecha1 4
  3. #define motorDerecha2 5
  4. #define motorIzquierda1 2
  5. #define motorIzquierda2 3
  6. #define echoPin 6
  7. #define triggerPin 7
  8.  
  9. char estado = 'q';
  10.  
  11. void setup() {
  12.   pinMode(ledPin, OUTPUT);
  13.   pinMode(motorDerecha1, OUTPUT);
  14.   pinMode(motorDerecha2, OUTPUT);
  15.   pinMode(motorIzquierda1, OUTPUT);
  16.   pinMode(motorIzquierda2, OUTPUT);
  17.   pinMode(triggerPin, OUTPUT);
  18.   pinMode(echoPin, INPUT);
  19.  
  20.   digitalWrite(ledPin, LOW);
  21.   digitalWrite(motorDerecha1, LOW);
  22.   digitalWrite(motorDerecha2, LOW);
  23.   digitalWrite(motorIzquierda1, LOW);
  24.   digitalWrite(motorIzquierda2, LOW);
  25.  
  26.   Serial.begin(9600);
  27. }
  28.  
  29. void loop() {
  30.  
  31.   long tiempo;
  32.   long distancia;
  33.  
  34.   digitalWrite(triggerPin, HIGH);
  35.   delayMicroseconds(10);
  36.   digitalWrite(triggerPin, LOW);
  37.  
  38.   tiempo = pulseIn(echoPin, HIGH);
  39.   distancia = (tiempo/29)/3;
  40.   Serial.println(distancia);
  41.   Serial.println(estado);
  42.  
  43.  
  44.   if(distancia <= 15) {
  45.     digitalWrite(ledPin, HIGH);
  46.   } else {
  47.     digitalWrite(ledPin, LOW);
  48.   }
  49.  
  50.   //adelante y evadir
  51.   if(estado == 'w' && distancia <= 15) {
  52.     digitalWrite(motorDerecha1, LOW);
  53.     digitalWrite(motorDerecha2, HIGH);
  54.     digitalWrite(motorIzquierda1, HIGH);
  55.     digitalWrite(motorIzquierda2, LOW);
  56.   }
  57.  
  58.  
  59.   //adelante
  60.   if(estado == 'w' && distancia > 15) {
  61.     digitalWrite(motorDerecha1, HIGH);
  62.     digitalWrite(motorDerecha2, LOW);
  63.     digitalWrite(motorIzquierda1, HIGH);
  64.     digitalWrite(motorIzquierda2, LOW);
  65.    
  66.   }
  67.  
  68.   //atras
  69.   if(estado == 's') {
  70.     digitalWrite(motorDerecha1, LOW);
  71.     digitalWrite(motorDerecha2, HIGH);
  72.     digitalWrite(motorIzquierda1, LOW);
  73.     digitalWrite(motorIzquierda2, HIGH);
  74.   }
  75.  
  76.   //stop
  77.   if(estado == 'q') {
  78.     digitalWrite(motorDerecha1, LOW);
  79.     digitalWrite(motorDerecha2, LOW);
  80.     digitalWrite(motorIzquierda1, LOW);
  81.     digitalWrite(motorIzquierda2, LOW);
  82.   }
  83.  
  84.   //derecha
  85.   if(estado == 'd' && distancia <= 15) {
  86.     digitalWrite(motorDerecha1, LOW);
  87.     digitalWrite(motorDerecha2, HIGH);
  88.     digitalWrite(motorIzquierda1, HIGH);
  89.     digitalWrite(motorIzquierda2, LOW);
  90.   }
  91.  
  92.  
  93.   if(estado == 'd' && distancia > 15) {
  94.     digitalWrite(motorDerecha1, LOW);
  95.     digitalWrite(motorDerecha2, LOW);
  96.     digitalWrite(motorIzquierda1, HIGH);
  97.     digitalWrite(motorIzquierda2, LOW);
  98.   }
  99.  
  100.   //izquierda
  101.   if(estado == 'a' && distancia <= 15) {
  102.     digitalWrite(motorDerecha1, HIGH);
  103.     digitalWrite(motorDerecha2, LOW);
  104.     digitalWrite(motorIzquierda1, LOW);
  105.     digitalWrite(motorIzquierda2, HIGH);
  106.   }
  107.  
  108.   if(estado == 'a' && distancia > 15) {
  109.     digitalWrite(motorDerecha1, HIGH);
  110.     digitalWrite(motorDerecha2, LOW);
  111.     digitalWrite(motorIzquierda1, LOW);
  112.     digitalWrite(motorIzquierda2, LOW);
  113.   }
  114.  
  115. }
  116.  
  117.  
  118. void serialEvent() {
  119.     if(Serial.available() > 0 ){
  120.       int  x = Serial.read();
  121.       if(x>=97) {
  122.         estado = (char) x;
  123.       }
  124.   }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement