Medidor de luz
Parte de la sección Entradas del Journey de Arduino de Coddy. Lección 22 de 22.
Esta lección reúne la sección: un medidor de luz que muestra la luz como porcentaje y lo representa en una barra de tres LED, como las barras de señal de un teléfono.
Divide la tarea en funciones, cada una con una sola tarea, para que loop() se lea como una descripción:
void loop() {
int percent = lightPercent();
showLevel(percent);
// imprime el porcentaje
}lightPercent() lee el AO del módulo de luz y devuelve un valor de 0 (oscuro) a 100 (brillante). AO disminuye a medida que aumenta la luz, así que haz el mapeo al revés: map(reading, 0, 1023, 100, 0) convierte 1023 en 0 y 0 en 100.
showLevel(int percent) asigna a cada LED de la barra su propio umbral: el primero se enciende por encima de 25, el segundo por encima de 50 y el tercero por encima de 75. Cada uno necesita su else, para que la barra también pueda reducirse cuando la luz disminuya.
Desafío
IntermedioEl AO del módulo de luz está en A0, y los LED de la barra están en los pines 10, 11 y 12:
int lightPercent(): 0 en la oscuridad, 100 con luz intensavoid showLevel(int percent): el pin 10 se enciende por encima de 25, el pin 11 por encima de 50 y el pin 12 por encima de 75- en
loop(), llama a ambos, imprime el porcentaje y espera 200 ms
Pulsa Run, mueve el control deslizante de luz y después pulsa Check.
Pruébalo tú mismo
const int lowPin = 10;
const int midPin = 11;
const int highPin = 12;
// escribe int lightPercent() aquí
// escribe void showLevel(int percent) aquí
void setup() {
pinMode(lowPin, OUTPUT);
pinMode(midPin, OUTPUT);
pinMode(highPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// lee la intensidad de la luz como porcentaje, muéstrala en la barra, imprímela y espera 200 ms
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Entradas
Practica por tu cuenta: Playground de Arduino