INICIANDO CON ARDUINO UNO R3
1. Conceptos básicos que deben aprender primero
Antes de
programar el carro, deben entender estas ideas:
Entradas
Son los
sensores que “leen” el entorno.
Ejemplo:
- Sensor ultrasónico → mide
distancia.
- Sensor infrarrojo → detecta
obstáculos.
digitalRead(pin);
analogRead(pin);
Salidas
Son los
dispositivos que “actúan”.
Ejemplo:
- Motores
- Luces LED
- Zumbador
digitalWrite(pin, HIGH);
digitalWrite(pin, LOW);
analogWrite(pin, velocidad);
Variables
Guardan
datos.
int distancia = 0;
Condicionales
Permiten
decidir.
if (distancia < 20) {
detener();
}
Funciones
Sirven
para organizar acciones.
void avanzar() {
// código
}
2. Estructura básica de
Arduino
Todo
programa Arduino tiene dos partes:
void setup() {
// Se ejecuta una sola vez
}
void loop() {
// Se repite continuamente
}
Explicación
sencilla para niños:
- setup() = preparación inicial.
- loop() = acciones repetidas del
robot.
3. Primeros comandos
esenciales
pinMode()
Define si
un pin será entrada o salida.
pinMode(8, OUTPUT);
pinMode(7, INPUT);
Ejemplo:
- Motor = salida
- Sensor = entrada
digitalWrite()
Enciende
o apaga un pin.
digitalWrite(8, HIGH); // encender
digitalWrite(8, LOW); // apagar
analogWrite()
Controla
velocidad en motores.
analogWrite(5, 150);
Valores:
- 0 = apagado
- 255 = máxima velocidad
delay()
Espera un
tiempo.
delay(1000);
4. Funciones básicas del
carro robot
Estas
funciones son ideales para enseñar.
Avanzar
void avanzar() {
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
}
Detener
void detener() {
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
Girar
void girarDerecha() {
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
}
5. Primer programa simple
del carro evasor
Este
ejemplo enseña:
- leer distancia
- avanzar
- detener
- girar
int distancia = 0;
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
distancia = 15; // ejemplo fijo
if (distancia > 20) {
avanzar();
} else {
detener();
delay(500);
girarDerecha();
delay(500);
}
}
void avanzar() {
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
}
void detener() {
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
void girarDerecha() {
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
}
No hay comentarios:
Publicar un comentario