Carrito Seguidor de Línea Arduino

0:58

Aquí tienes un ejemplo de código en Arduino para un carrito seguidor de línea utilizando dos sensores KY-032. Asegúrate de adaptar los pines de conexión de acuerdo con tu configuración (tanto sensores como control de motores):

Cpp


/*
  Programa para Carrito Seguidor de Línea con 2 Sensores KY-032
  - Dos sensores KY-032 conectados a pines digitales 2 (izquierdo) y 3 (derecho)
  - Control de motores mediante un controlador H-bridge conectado a los pines 4, 5 (motor izquierdo)
    y 6, 7 (motor derecho)
*/

const int sensorIzq = 2;       // Sensor izquierdo KY-032
const int sensorDer = 3;       // Sensor derecho KY-032

// Pines de control para el motor izquierdo
const int motorIzqAdelante = 4;
const int motorIzqAtras = 5;

// Pines de control para el motor derecho
const int motorDerAdelante = 6;
const int motorDerAtras = 7;

void setup() {
  // Configuración de pines para los sensores
  pinMode(sensorIzq, INPUT);
  pinMode(sensorDer, INPUT);
  
  // Configuración de pines para los motores
  pinMode(motorIzqAdelante, OUTPUT);
  pinMode(motorIzqAtras, OUTPUT);
  pinMode(motorDerAdelante, OUTPUT);
  pinMode(motorDerAtras, OUTPUT);
  
  // Inicialmente, detenemos los motores
  detenerMotores();
}

void loop() {
  // Lectura de los sensores
  int lecturaIzq = digitalRead(sensorIzq);
  int lecturaDer = digitalRead(sensorDer);
  
  // Lógica de control:
  // - Cuando ambos sensores detectan área clara (HIGH) → avanzar
  // - Cuando un sensor detecta la línea (LOW) → ajustar dirección
  if (lecturaIzq == HIGH && lecturaDer == HIGH) {
    avanzar();
  } else if (lecturaIzq == LOW && lecturaDer == HIGH) {
    // El sensor izquierdo detecta línea: girar a la derecha
    girarDerecha();
  } else if (lecturaIzq == HIGH && lecturaDer == LOW) {
    // El sensor derecho detecta línea: girar a la izquierda
    girarIzquierda();
  } else if (lecturaIzq == LOW && lecturaDer == LOW) {
    // Ambos sensores detectan línea: detener o aplicar otra estrategia (aquí se detiene)
    detenerMotores();
  }
  
  delay(50); // Pequeña demora para estabilidad en la lectura y respuesta
}

void avanzar() {
  digitalWrite(motorIzqAdelante, HIGH);
  digitalWrite(motorIzqAtras, LOW);
  
  digitalWrite(motorDerAdelante, HIGH);
  digitalWrite(motorDerAtras, LOW);
}

void girarDerecha() {
  // Se activa el motor izquierdo para avanzar mientras se detiene o reduce el motor derecho
  digitalWrite(motorIzqAdelante, HIGH);
  digitalWrite(motorIzqAtras, LOW);
  
  digitalWrite(motorDerAdelante, LOW);
  digitalWrite(motorDerAtras, LOW);
}

void girarIzquierda() {
  // Se activa el motor derecho para avanzar mientras se detiene o reduce el motor izquierdo
  digitalWrite(motorIzqAdelante, LOW);
  digitalWrite(motorIzqAtras, LOW);
  
  digitalWrite(motorDerAdelante, HIGH);
  digitalWrite(motorDerAtras, LOW);
}

void detenerMotores() {
  digitalWrite(motorIzqAdelante, LOW);
  digitalWrite(motorIzqAtras, LOW);
  
  digitalWrite(motorDerAdelante, LOW);
  digitalWrite(motorDerAtras, LOW);
}
Este programa utiliza entradas digitales para leer los sensores KY-032 y decide la acción del carrito (avanzar, girar a la izquierda o a la derecha, o detenerse) según la lectura de cada sensor. Puedes ajustar los pines, la lógica de control o el tiempo de retardo según las características de tu hardware y comportamiento deseado.
Adjust sensor configuration
Motor driver adjustment
Test logic control
436 days

Documents

    Documents are markdown text files which describe project goals, capture details, or even simulation outputs.

    Assets

    No assets added.

    Inspect

    Scared Plum Flying Cab

    Scared Plum Flying Cab
    Description

    Created
    1 Contributor(s)
    framn

    Controls

    Properties

    Availability & Pricing

    DistributorQty 1

    Assets