Arduino: Movimiento y Sentidos
Una guía visual para dominar Servos y Sensores Ultrasónicos
El Cerebro Físico
Arduino nos permite conectar el mundo del software con el mundo físico. En esta guía, exploramos dos capacidades fundamentales de cualquier robot: Actuar (moverse con un Servo) y Sentir (ver distancias con Ultrasonido). A continuación, visualizamos exactamente qué sucede dentro de tu código y tus componentes.
Ejercicio 1: La Danza del Servo
El código utiliza dos bucles for para crear un movimiento de barrido suave.
En lugar de saltar de 0° a 180° instantáneamente, el Arduino incrementa la posición paso a paso.
Posición (grados) vs. Tiempo
🔌 Conexión del Circuito
#include
Servo miServo; // Crear objeto servo
int pos = 0; // Variable posición
void setup() {
miServo.attach(9); // Conectar al Pin 9
}
void loop() {
// Ir de 0 a 180 grados
for (pos = 0; pos <= 180; pos += 1) {
miServo.write(pos);
delay(15);
}
// Volver de 180 a 0 grados
for (pos = 180; pos >= 0; pos -= 1) {
miServo.write(pos);
delay(15);
}
}
Copia y pega este código directamente en tu Arduino IDE.
Ejercicio 2: Física del Eco
El sensor HC-SR04 funciona como un murciélago. Emite un sonido ultrasónico a 343 m/s. Medimos el tiempo de ida y vuelta, y dividimos por 2.
El Flujo de Detección
Trigger
Pulso 10µs
Emisión
343 m/s
Rebote
Vuelve el eco
Cálculo
T * 0.034 / 2
const int pinTrig = 9;
const int pinEcho = 10;
long duracion;
int distancia;
void setup() {
pinMode(pinTrig, OUTPUT);
pinMode(pinEcho, INPUT);
Serial.begin(9600);
}
void loop() {
// Generar pulso limpio
digitalWrite(pinTrig, LOW);
delayMicroseconds(2);
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrig, LOW);
// Leer Echo y calcular
duracion = pulseIn(pinEcho, HIGH);
distancia = duracion * 0.034 / 2;
Serial.print("Dist: ");
Serial.println(distancia);
delay(500);
}
🔌 Conexión HC-SR04
Relación lineal: Tiempo vs Distancia
Comparativa Técnica
Servo Motor (SG90)
Alto consumo. Usa `Servo.h`. 1 Pin.
Sensor Ultrasónico (HC-SR04)
Bajo consumo. Lógica pura. 2 Pines (Trig/Echo).
Arduino: Movimiento y Sentidos
Una guía visual para dominar Servos y Sensores Ultrasónicos
El Cerebro Físico
Arduino nos permite conectar el mundo del software con el mundo físico. En esta guía, exploramos dos capacidades fundamentales de cualquier robot: Actuar (moverse con un Servo) y Sentir (ver distancias con Ultrasonido). A continuación, visualizamos exactamente qué sucede dentro de tu código y tus componentes.
Ejercicio 1: La Danza del Servo
El código utiliza dos bucles for para crear un movimiento de barrido suave.
En lugar de saltar de 0° a 180° instantáneamente, el Arduino incrementa la posición paso a paso.
Posición (grados) vs. Tiempo
🔌 Conexión del Circuito
#include
Servo miServo; // Crear objeto servo
int pos = 0; // Variable posición
void setup() {
miServo.attach(9); // Conectar al Pin 9
}
void loop() {
// Ir de 0 a 180 grados
for (pos = 0; pos <= 180; pos += 1) {
miServo.write(pos);
delay(15);
}
// Volver de 180 a 0 grados
for (pos = 180; pos >= 0; pos -= 1) {
miServo.write(pos);
delay(15);
}
}
Copia y pega este código directamente en tu Arduino IDE.
Ejercicio 2: Física del Eco
El sensor HC-SR04 funciona como un murciélago. Emite un sonido ultrasónico a 343 m/s. Medimos el tiempo de ida y vuelta, y dividimos por 2.
El Flujo de Detección
Trigger
Pulso 10µs
Emisión
343 m/s
Rebote
Vuelve el eco
Cálculo
T * 0.034 / 2
const int pinTrig = 9;
const int pinEcho = 10;
long duracion;
int distancia;
void setup() {
pinMode(pinTrig, OUTPUT);
pinMode(pinEcho, INPUT);
Serial.begin(9600);
}
void loop() {
// Generar pulso limpio
digitalWrite(pinTrig, LOW);
delayMicroseconds(2);
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrig, LOW);
// Leer Echo y calcular
duracion = pulseIn(pinEcho, HIGH);
distancia = duracion * 0.034 / 2;
Serial.print("Dist: ");
Serial.println(distancia);
delay(500);
}
🔌 Conexión HC-SR04
Relación lineal: Tiempo vs Distancia
Comparativa Técnica
Servo Motor (SG90)
Alto consumo. Usa `Servo.h`. 1 Pin.
Sensor Ultrasónico (HC-SR04)
Bajo consumo. Lógica pura. 2 Pines (Trig/Echo).