Menu
CoddyTech

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);
challenge icon

Desafio

Fácil

O 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
}
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