Indicador luminoso del servo
Parte de la sección Salidas del Journey de Arduino de Coddy. Lección 24 de 24.
Con una aguja en su brazo, un servomotor se convierte en un indicador, como el velocímetro de un coche. Aquí muestra lo luminoso que está.
Al igual que con la luz nocturna, el AO del módulo da un valor más bajo con más luz: aproximadamente 1023 en la oscuridad y cerca de 0 con luz intensa. Un indicador debería apuntar más alto cuando hay más luz, así que la conversión va al revés. Como en el medidor de luz, dale a map() el nuevo rango al revés:
int angle = map(reading, 0, 1023, 180, 0);Una lectura de 0, luz intensa, se convierte en 180 grados, y 1023, oscuridad, se convierte en 0. Todo lo que está entre esos valores queda entre ellos, al revés.
Desafío
IntermedioEl AO del sensor de luz está en A0 y el servo en el pin 9. Haz que el brazo funcione como indicador de luz:
- la oscuridad apunta el brazo a 0 grados y la luz plena, a 180
- usa
map()con el nuevo rango invertido - imprime el ángulo y espera 50 ms cada vez
Pulsa Run y mueve el control deslizante de luz del sensor, después pulsa Check.
Pruébalo tú mismo
#include <Servo.h>
const int lightPin = A0;
Servo arm;
void setup() {
arm.attach(9);
Serial.begin(9600);
}
void loop() {
// lee la luz, convierte su valor en sentido inverso al rango 180..0, mueve el brazo e imprime el ángulo
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Salidas
Practica por tu cuenta: Playground de Arduino