Menu
CoddyTech

Medidor de luz

Parte da seção Entradas do Journey de Arduino da Coddy. Lição 22 de 22.

Esta lição reúne a seção: um medidor de luz que imprime a luz como porcentagem e a exibe em uma barra de três LEDs, como as barras de sinal de um telefone.

Divida a tarefa em funções, cada uma com uma tarefa, para que loop() pareça uma descrição:

void loop() {
  int percent = lightPercent();
  showLevel(percent);
  // imprima a porcentagem
}

lightPercent() lê o AO do módulo de luz e retorna de 0 (escuro) a 100 (claro). AO diminui à medida que a luz aumenta, então mapeie ao contrário: map(reading, 0, 1023, 100, 0) transforma 1023 em 0 e 0 em 100.

showLevel(int percent) atribui um limite próprio a cada LED da barra: o primeiro acende acima de 25, o segundo acima de 50, o terceiro acima de 75. Cada um precisa do seu else, para que a barra também possa diminuir quando a luz enfraquecer.

challenge icon

Desafio

Médio

O AO do módulo de luz está no A0, e os LEDs da barra estão nos pinos 10, 11 e 12:

  • int lightPercent(): 0 no escuro, 100 sob luz intensa
  • void showLevel(int percent): o pino 10 acende acima de 25, o pino 11 acima de 50, o pino 12 acima de 75
  • em loop(), chame ambos, imprima a porcentagem e aguarde 200 ms

Pressione Run, mova o controle deslizante de luz e, em seguida, Check.

Experimente você mesmo

const int lowPin = 10;
const int midPin = 11;
const int highPin = 12;

// escreva int lightPercent() aqui

// escreva void showLevel(int percent) aqui

void setup() {
  pinMode(lowPin, OUTPUT);
  pinMode(midPin, OUTPUT);
  pinMode(highPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // leia a luminosidade como uma porcentagem, mostre-a na barra, imprima-a e aguarde 200 ms
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Entradas

Pratique por conta própria: Playground de Arduino