Menu
CoddyTech

Contador binário com LEDs

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

Quatro LEDs podem mostrar qualquer número de 0 a 15 em binário, da forma como os computadores armazenam números. Cada LED representa um valor duas vezes maior que o anterior: 1, 2, 4 e 8. Um LED aceso soma seu valor:

  • 5 é 4 + 1: os LEDs que valem 4 e 1 estão acesos
  • 10 é 8 + 2
  • 15 são os quatro

Cada posição é chamada de bit, numerada a partir de 0, que vale 1. bitRead(number, n) retorna o bit n de um número, 1 ou 0:

bitRead(5, 0);  // 1: 5 tem o 1
bitRead(5, 1);  // 0: 5 não tem o 2
bitRead(5, 2);  // 1: 5 tem o 4

Como 1 é HIGH e 0 é LOW, o bit i pode ser enviado diretamente ao LED i:

for (int i = 0; i < 4; i++) {
  digitalWrite(ledPins[i], bitRead(count, i));
}

Aqui, ledPins[0], pino 2, é o LED à direita, que vale 1, como o último dígito de um número.

challenge icon

Desafio

Médio

Faça os quatro LEDs contarem em binário:

  • inicie count em 0
  • mostre-o nos LEDs com bitRead(), o bit i em ledPins[i]
  • aguarde 250 ms, adicione 1 e, depois de 15, recomece em 0

Pressione Run e depois Check.

Experimente você mesmo

int ledPins[] = {2, 3, 4, 5};  // valem 1, 2, 4, 8
int count = 0;

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

void loop() {
  // mostre count em binário, espere 250 ms e depois incremente count (voltando a 0 após 15)
}
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