Funcionamiento
El objetivo de este proyecto es controlar el movimiento de dos motores usando una placa Arduino. Los módulos de mercurio KY-027 detectarán inclinaciones u orientación, y dependiendo de cuál se active, se moverá el motor correspondiente. El L293D actuará como puente H, permitiendo controlar la dirección de los motores.
Componentes
- Placa Arduino (por ejemplo, Arduino Uno).
- Dos módulos de mercurio KY-027 para la detección.
- Un circuito integrado L293D para manejar los motores.
- Dos motores de corriente continua.
- Fuente de alimentación adecuada para los motores y el Arduino.
- Cables y protoboard para las conexiones.
Conexiones
- Conexión de los sensores KY-027:
- Conecta sus pines de señal a los pines digitales 11 y 12 del Arduino, y asegúrate de alimentarlos con 5V y GND con el arduino.
- Conexión del L293D:
- Pin 1, 9 y 16 a 5v del arduino.
- Pin 4, 5, 12 y 13 a GND.
- Pin 8 a 5v de la fuente de alimentación(Une GND de la fuente almentacion a GND de arduino).
- Los pines de entrada (IN1, IN2, IN3, IN4) se conectan a los pines 2, 3, 4 y 5 del Arduino.
- Los motores se conectan a las salidas del L293D (OUT1, OUT2 para el motor 1; OUT3, OUT4 para el motor 2).
Código
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #include <Arduino.h> // Pines del Arduino conectados al L293D y a los sensores const int motor1Pin1 = 2; // Dirección Motor 1 const int motor1Pin2 = 3; const int motor2Pin1 = 4; // Dirección Motor 2 const int motor2Pin2 = 5; const int sensor1Pin = 11; // Señal Sensor KY-027 para Motor 1 const int sensor2Pin = 12; // Señal Sensor KY-027 para Motor 2 void setup() { // Configurar pines de motores como salida pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(motor2Pin1, OUTPUT); pinMode(motor2Pin2, OUTPUT); // Configurar pines de sensores como entrada pinMode(sensor1Pin, INPUT); pinMode(sensor2Pin, INPUT); // Comunicación serial para depuración Serial.begin(9600); } void loop() { // Leer estado de los sensores int sensor1State = digitalRead(sensor1Pin); int sensor2State = digitalRead(sensor2Pin); // Control del motor 1 if (sensor1State == HIGH) { // Mover motor 1 hacia adelante digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); Serial.println("Motor 1: Moviendo hacia adelante"); } else { // Detener motor 1 digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); Serial.println("Motor 1: Detenido"); } // Control del motor 2 if (sensor2State == HIGH) { // Mover motor 2 hacia adelante digitalWrite(motor2Pin1, HIGH); digitalWrite(motor2Pin2, LOW); Serial.println("Motor 2: Moviendo hacia adelante"); } else { // Detener motor 2 digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, LOW); Serial.println("Motor 2: Detenido"); } delay(200); // Pausa para estabilizar lecturas } |
NOTAS IMPORTANTES:
- Asegúrate de usar una fuente de alimentación con suficiente corriente para los motores.
- Si los motores se mueven en la dirección equivocada, intercambia las conexiones a los pines de salida del L293D o modifica el código.
- Supervisa las lecturas de los sensores con la consola serial para facilitar la depuración
Diseños

Videos