Mantenha os valores dentro da faixa
Parte da seção Entradas do Journey de Arduino da Coddy. Lição 11 de 22.
Às vezes, apenas parte de um intervalo deve ser considerada. Digamos que apenas a parte central do percurso do botão seja relevante, com leituras de 200 a 800, e que isso corresponda a 0 a 100 por cento:
int percent = map(reading, 200, 800, 0, 100);Isso resulta em 0 em 200 e 100 em 800, mas map() não para nos limites do intervalo. Uma leitura de 0 resulta em -33, e 1023 resulta em 137. Uma porcentagem abaixo de 0 ou acima de 100 não faz sentido.
constrain(x, low, high) mantém um número dentro de um intervalo: qualquer valor abaixo de low passa a ser low, qualquer valor acima de high passa a ser high, e tudo o que estiver entre eles permanece como está.
percent = constrain(percent, 0, 100);Desafio
FácilO potenciômetro está em A0. Exiba uma porcentagem em que as leituras de 200 a 800 correspondam a 0 a 100:
- mapeie a leitura de 200 a 800 para 0 a 100
- mantenha-a entre 0 e 100 com
constrain() - exiba-a e depois aguarde 100 ms
Pressione Run, gire o potenciômetro até o fim nos dois sentidos e depois Check.
Experimente você mesmo
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(A0);
// mapeie 200..800 para 0..100, mantenha o valor em 0..100, imprima-o e aguarde 100 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
2Entradas analógicas
Leia um potenciômetroLeitura do potenciômetro em voltsMapeie para uma porcentagemMantenha os valores dentro da faixaLimite do potenciômetroLuz noturna automáticaPino de acionamento do sensor de luzPratique por conta própria: Playground de Arduino