Menu
CoddyTech

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.

challenge icon

Desafío

Intermedio

El 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 intensa
  • void 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
}
quiz iconPonte a prueba

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