// Programación en Arduino IDE // Código para controlar un robot con 4 movimientos básicos y detenerlo // mediante comandos recibidos por comunicación serial. void setup() { // El código en void setup() se ejecuta una sola vez al inicio. // Configura los pines digitales del 2 al 5 como salidas (OUTPUT). // Estos pines controlarán el movimiento de los motores del robot. pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); // Luego, inicia la comunicación serial a una velocidad de 9600 baudios. // Esto permite que el robot reciba comandos desde una computadora a través del puerto serial. Serial.begin(9600); } // ---------------- FUNCIONES DE MOVIMIENTO ---------------- // La función adelante() activa los pines 2 y 5 en alto (HIGH) y pone los pines 3 y 4 en bajo (LOW). // Esta combinación de señales hace que los motores se muevan para que el robot avance. void adelante() { digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, HIGH); } // La función retro() activa los pines 3 y 4 en alto (HIGH) y pone los pines 2 y 5 en bajo (LOW). // Esto invierte el sentido de giro de los motores, moviendo el robot hacia atrás. void retro() { digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5, LOW); } // La función derecha() activa los pines 2 y 4 en alto (HIGH) y pone los pines 3 y 5 en bajo (LOW). // Esto hace que los motores giren en direcciones opuestas, permitiendo que el robot gire a la derecha sobre su propio eje. void derecha() { digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, LOW); } // La función izquierda() activa los pines 3 y 5 en alto (HIGH) y pone los pines 2 y 4 en bajo (LOW). // Esto invierte el giro para que el robot se mueva a la izquierda. void izquierda() { digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, LOW); digitalWrite(5, HIGH); } // La función parar() pone todos los pines de control (2, 3, 4 y 5) en bajo (LOW). // Esto desactiva ambos motores, deteniendo por completo el robot. void parar() { digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); } // ---------------- PROGRAMA PRINCIPAL ---------------- void loop() { // El código en loop() se ejecuta de manera continua, una y otra vez. // Espera recibir un carácter (comando) enviado desde una aplicación, como el monitor serial de Arduino IDE. if (Serial.available()) { // Si hay un carácter disponible, lo lee y lo guarda en la variable 'dato'. char dato = Serial.read(); // A continuación, se compara el carácter recibido con cada comando de movimiento. // Si coincide, se llama a la función de movimiento correspondiente. if (dato == 'A') { // Si el dato es 'A', el robot avanza. adelante(); } if (dato == 'R') { // Si el dato es 'R', el robot retrocede. retro(); } if (dato == 'D') { // Si el dato es 'D', el robot gira a la derecha. derecha(); } if (dato == 'I') { // Si el dato es 'I', el robot gira a la izquierda. izquierda(); } if (dato == 'P') { // Si el dato es 'P', el robot se detiene. parar(); } } }
El curso de Minisumo RC te enseña a construir un robot de combate controlado remotamente via Bluetooth desde un smartphone utilizando el driver de motor L298N. Este robot participará en competencias donde la habilidad del piloto es tan importante como el diseño del robot, combinando destreza manual con ingeniería robótica.
Durante el desarrollo aprenderás comunicación inalámbrica, control de motores con L298N, desarrollo de aplicaciones móviles básicas, construcción de estructuras resistentes y técnicas de pilotaje. El robot responderá en tiempo real a los comandos del piloto para estrategias de combate dinámicas.
Al finalizar tendrás un robot de combate competitivo pilotado desde tu smartphone, con conocimientos en comunicación inalámbrica, manejo del L298N, desarrollo de apps y robótica de combate radiocontrolada.
El módulo HC-05 opera a 2.4GHz transmitiendo comandos vía UART al Arduino UNO. Configurado a 9600 baudios garantiza estabilidad con alcance de 10 metros. Los comandos recibidos (A, R, D, I, P) se procesan instantáneamente para controlar movimientos del robot en tiempo real.
El puente H L298N maneja dos motorreductores independientemente hasta 2A por canal. Arduino envía señales PWM para velocidad y digitales para dirección. La configuración diferencial permite giros precisos. Alimentación dual (9V motores, 5V lógica) evita interferencias.
Batería 9V alimenta todo el circuito. L298N suministra 5V regulados al Arduino eliminando fuentes externas. Consumo: 800mA reposo, 1.5A máximo. Autonomía de 45-60 minutos permite múltiples combates consecutivos manteniendo rendimiento constante.