SKU 00023
Romeo V2.2 Robot Control Board with Motor Drive
$40,00
$25,00
Liquidación
Disponible
Datos rápidos
- Microcontrolador
- ATmega32U4 a 16 MHz (compatible con Arduino Leonardo)
- Alimentación
- USB, o externa de 6 a 23 V DC
- Motores
- 2 motores DC, 2 A continuos
- Pines de los motores
- Motor 1: D4 (dirección) y D5 (velocidad); Motor 2: D7 (dirección) y D6 (velocidad)
Características
Placa todo en uno para robots: un Arduino Leonardo (ATmega32U4) con controlador para dos motores DC, cinco botones y tiras de pines para sensores y servos. Con ella se arma un carrito robot sin módulos extra.
Se alimenta por USB o con una batería de 6 a 23 V, y se programa eligiendo «Arduino Leonardo» en el IDE.
| Microcontrolador | ATmega32U4 a 16 MHz (compatible con Arduino Leonardo) |
|---|---|
| Alimentación | USB, o externa de 6 a 23 V DC |
| Motores | 2 motores DC, 2 A continuos |
| Pines de los motores | Motor 1: D4 (dirección) y D5 (velocidad); Motor 2: D7 (dirección) y D6 (velocidad) |
| Botones | S1 a S5 en A0 (con el interruptor S1-S5 en ON) |
| Salidas | 5 V y 3,3 V para sensores |
¿Para qué sirve?
- Carritos robot de dos motores
- Robots seguidores de línea y que esquivan obstáculos
- Aprender robótica con una sola placa
Código de prueba
// Prueba de la Romeo V2: los botones S1 a S5 mueven los dos motores.
// S1 adelante, S2 izquierda, S3 atrás, S4 derecha, S5 detener.
// Pon el interruptor S1-S5 en ON. En el IDE elige la placa "Arduino Leonardo".
const int E1 = 5; // velocidad del motor 1 (PWM)
const int M1 = 4; // dirección del motor 1
const int E2 = 6; // velocidad del motor 2 (PWM)
const int M2 = 7; // dirección del motor 2
const int VELOCIDAD = 180; // 0 a 255
// Lectura de A0 por debajo de la cual se considera pulsado cada botón
const int UMBRAL[5] = {30, 150, 360, 535, 760};
int leerBoton() {
int valor = analogRead(A0);
for (int i = 0; i < 5; i++) {
if (valor < UMBRAL[i]) return i + 1; // S1 a S5
}
return 0; // ningún botón
}
void motores(bool adelante1, bool adelante2, int velocidad) {
digitalWrite(M1, adelante1 ? HIGH : LOW);
digitalWrite(M2, adelante2 ? HIGH : LOW);
analogWrite(E1, velocidad);
analogWrite(E2, velocidad);
}
void setup() {
pinMode(E1, OUTPUT);
pinMode(M1, OUTPUT);
pinMode(E2, OUTPUT);
pinMode(M2, OUTPUT);
Serial.begin(9600);
}
void loop() {
int boton = leerBoton();
if (boton > 0) {
Serial.print("Botón S");
Serial.println(boton);
}
switch (boton) {
case 1: motores(true, true, VELOCIDAD); break; // adelante
case 2: motores(false, true, VELOCIDAD); break; // girar a la izquierda
case 3: motores(false, false, VELOCIDAD); break; // atrás
case 4: motores(true, false, VELOCIDAD); break; // girar a la derecha
case 5: motores(true, true, 0); break; // detener
}
delay(100);
}
Conecta los motores a las borneras M1 y M2 y la batería a la bornera de potencia. En el IDE elige Herramientas > Placa > Arduino Leonardo. Si un motor gira al revés, intercambia sus dos cables en la bornera.
Precauciones
- No pases de 2 A por motor; con motores más grandes usa un controlador externo.
- Si usas A0 para un sensor, pon el interruptor S1-S5 en OFF.
- Desconecta la batería antes de cambiar cables de los motores.
- Los códigos de la Romeo antigua (V1) leen los botones en A7 y no sirven tal cual en esta placa.
Fuentes consultadas: DFRobot: wiki de la Romeo V2 (DFR0225) · DFRobot: Romeo V2 · ProtoSupplies: Romeo V2.2. Ficha preparada por Electrodrone; verifica siempre el voltaje de tu módulo antes de conectarlo.