Programación de Funciones de Control de Movimiento en Arduino
Clase 37 de 38 • Curso Fundamentos de Desarrollo de Hardware con Arduino
Contenido del curso
- 3

Arduino: Desarrolla Prototipos Interactivos con Microcontroladores
11:46 - 4

Desarrollo de Prototipos de Hardware: Diseño y Fabricación
09:18 - 5

Diseño Mecánico de Hardware con SolidWorks y Herramientas Paramétricas
05:03 - 6

Desarrollo de Interfaces y Prototipos con QT en Sistemas Embebidos
04:07 - 7

Hardware Libre: Arduino y Propiedad Intelectual
04:27 - 8
Selección de Arduino para Envío de Datos a Servidor
00:14 - 9
Fundamentos de Desarrollo de Hardware con Arduino
01:27 - 10
Proyectos con Arduino: Componentes y Materiales Necesarios
01:13
- 19

Conociendo los Puertos y Alimentación del Arduino Uno
09:40 - 20

Funcionamiento de la Protoboard para Prototipado Electrónico
04:36 - 21

Programación Básica en Arduino: Primeros Pasos con LED y Código
07:53 - 22

Variables y Constantes en Programación para Arduino
05:53 - 23

Creación y Uso de Librerías en Arduino
03:10 - 24

Uso del Potenciómetro para Control de LED con Arduino
10:06 - 25

Comunicación Serial en Arduino: Uso del Monitor Serial
10:32 - 26

Control de Intensidad Lumínica con PWM en Arduino
05:51 - 27

Implementación de PWM con Arduino para Control de Brillo en LEDs
14:18 - 28

Uso de Botones con Resistencia Pull-Up en Arduino
13:01 - 29

Monitor de Temperatura con Arduino y Sensor LM35
10:59 - 30

Cálculo del Multiplicador para Convertir Lecturas de Sensor a Celsius
05:05 - 31

Conexión y programación de un LCD con Arduino para mostrar temperatura
17:28 - 32

Programación de Semáforos con Arduino y Sensores
02:09
- 33

Control de Motores y Servomotores con Arduino
23:17 - 34

Control de Servomotores con Arduino: Conexión y Programación
11:07 - 35

Control de Servomotor con Potenciómetro en Arduino
04:35 - 36

Proyecto: Construcción y Programación de un Robot de Evasión de Obstáculos
08:53 - 37

Programación de Funciones de Control de Movimiento en Arduino
08:09 - 38

Programación de Botón de Inicio para Robots con Arduino
17:47
¿Cómo crear funciones para controlar el movimiento de un robot?
En el fascinante mundo de la robótica y la automatización, saber cómo desarrollar funciones que controlen los movimientos básicos de un robot es esencial. En este artículo, vamos a aprender a escribir funciones en un programa que permitirá a nuestro robot moverse hacia adelante, girar a la izquierda, girar a la derecha e incluso hacer reversa, lo que asienta las bases del viaje hacia la automatización.
¿Cómo se declara una función en Arduino?
Antes de aventurarnos en el control del movimiento, es necesario comprender la declaración de funciones en el contexto de Arduino. En Arduino, las funciones se declaran con la palabra clave void si no van a retornar ningún valor.
void derecho() {
// Funcionalidad de la función
}
- Void: indica que la función no retornará un valor.
- Nombre de la función: en este caso,
derecho. - Paréntesis: vacíos si no se pasan argumentos.
- Llaves: conteniendo las acciones que efectuará esta función.
¿Cómo hacer que un motor avance derecho?
Para que nuestro robot avance hacia adelante, se deben controlar adecuadamente los motores. Esto se logra activando y desactivando pines específicos.
void derecho() {
digitalWrite(motorUnoA, HIGH);
digitalWrite(motorUnoB, LOW);
digitalWrite(motorDosA, HIGH);
digitalWrite(motorDosB, LOW);
}
Este bloque de código activa los motores de manera que ambos avancen en línea recta.
¿Cómo hacer que el robot gire a la izquierda o a la derecha?
El giro es una tarea fundamental para la maniobrabilidad del robot. Lo conseguimos alterando la dirección de las ruedas.
Giro a la izquierda
Para girar a la izquierda se debe detener o revertir una de las ruedas.
void giroIzquierda() {
digitalWrite(motorUnoA, LOW); // La llanta izquierda va hacia atrás
digitalWrite(motorUnoB, HIGH);
digitalWrite(motorDosA, HIGH); // La llanta derecha sigue hacia adelante
digitalWrite(motorDosB, LOW);
}
Este enfoque es simple y eficiente para girar al robot sobre su eje.
Giro a la derecha
La lógica es similar al giro izquierdo.
void giroDerecha() {
digitalWrite(motorUnoA, HIGH); // La llanta izquierda sigue hacia adelante
digitalWrite(motorUnoB, LOW);
digitalWrite(motorDosA, LOW); // La llanta derecha va hacia atrás
digitalWrite(motorDosB, HIGH);
}
¿Cómo se integra la detección de obstáculos?
Para que el robot sea capaz de reaccionar ante obstáculos, se puede emplear un sensor que avise cuando hay algo en el camino.
Leyendo el sensor
La lectura del sensor nos permitirá tomar decisiones según el estado del camino.
int sensorUnoState = 0; // Variable para almacenar el estado del sensor
sensorUnoState = digitalRead(sensorUno);
if (sensorUnoState == HIGH) {
derecho();
analogWrite(PWM1, 127);
analogWrite(PWM2, 127);
} else {
giroIzquierda();
}
- sensorUnoState: almacena el estado del sensor.
- If: verifica si el sensor está alto (sin detectar obstáculos).
- AnalogWrite: establece la velocidad del motor; 127 es una velocidad media ideal para pruebas.
Esta estructura permite que el robot avance libremente mientras no encuentre obstáculos, girando a la izquierda al detectar algo.
¿Cómo asegurar el correcto funcionamiento del programa?
Probar el código es crucial. Compilemos el programa y carguémoslo al Arduino para comprobar que no haya errores sintácticos. Al compilar, soluciona cualquier problema que surja y ajusta el código en consecuencia.
Con esta estructura lógica y estas funciones básicas podrás controlar los movimientos de tu robot y expandir sus habilidades a medida que tu proyecto evolucione. Sigue adelante, la robótica es un campo lleno de posibilidades y creatividad. ¡Pronto estarás construyendo y programando robots aún más complejos!