Menu
CoddyTech

Gráfico de barras com potenciômetro

Parte da seção Saídas do Journey de Arduino da Coddy. Lição 18 de 24.

Uma fileira de LEDs pode mostrar um número como uma barra: quanto mais LEDs acesos, maior o número. Aqui, o número vem do botão giratório.

Primeiro, converta a leitura na quantidade de LEDs que devem acender, de 0 a 5:

int count = map(analogRead(A0), 0, 1023, 0, 5);

Depois, percorra cada LED com um loop for e decida o que fazer com cada um. Os LEDs antes da posição count ficam acesos; os demais ficam apagados:

for (int i = 0; i < 5; i++) {
  if (i < count) {
    digitalWrite(ledPins[i], HIGH);
  } else {
    digitalWrite(ledPins[i], LOW);
  }
}

O else é importante: quando você gira o botão para baixo, é ele que apaga os LEDs que não fazem mais parte da barra.

challenge icon

Desafio

Médio

O potenciômetro está em A0 e os LEDs estão em ledPins. Faça um gráfico de barras:

  • converta a leitura em uma contagem de 0 a 5 com map()
  • acenda essa quantidade de LEDs, começando pelo primeiro do array, e apague os outros
  • aguarde 10 ms e faça isso novamente

Pressione Run e gire o potenciômetro; em seguida, clique em Check.

Experimente você mesmo

const int knobPin = A0;
int ledPins[] = {2, 3, 4, 5, 6};

void setup() {
  for (int i = 0; i < 5; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop() {
  // converta a leitura em uma contagem de 0 a 5
  // acenda os primeiros LEDs de acordo com a contagem e apague os demais
}
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 Saídas

Pratique por conta própria: Playground de Arduino