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.
Desafio
MédioO 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 intensavoid 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
}
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