quarta-feira, 12 de outubro de 2016

O contador binário



Objetivo de compreensão deste post:

  • Sequencia da numeração binária
  • Contagem com número limitado de bits
  • Efeito do tempo de pressionamento de um botão
  • Efeitos de debousing



Abaixo temos um sketch que implementa um contador binário de 4 bits

  


/*

  Objetivo: Escrever um nibble (4 bits) em leds
*/

// cria os "apelidos" para os pinos
#define led_bit_0 10
#define led_bit_1 11
#define led_bit_2 12
#define led_bit_3 13

byte contador=0;              // cria uma variável do tipo byte (0 a 255) e iniciliza com valor 0

void escreve_byte (byte x){
  if ( x & 0b00000001) digitalWrite(led_bit_0, HIGH); else digitalWrite (led_bit_0, LOW);
  if ( x & 0b00000010) digitalWrite(led_bit_1, HIGH); else digitalWrite (led_bit_1, LOW);
  if ( x & 0b00000100) digitalWrite(led_bit_2, HIGH); else digitalWrite (led_bit_2, LOW);
  if ( x & 0b00001000) digitalWrite(led_bit_3, HIGH); else digitalWrite (led_bit_3, LOW);
}

void setup() {  // esta função é executada uma única vez quando o microcontrlador inicia (ao pressionar o reset)
  pinMode(led_bit_0, OUTPUT);  // iniciliaza o pino 0 como saída
  pinMode(led_bit_1, OUTPUT);  // iniciliaza o pino 1 como saída
  pinMode(led_bit_2, OUTPUT);  // iniciliaza o pino 2 como saída
  pinMode(led_bit_3, OUTPUT);  // iniciliaza o pino 3 como saída
}

void loop() { // função que repete infinitamente os passos listados
  escreve_byte (contador);      // escreve o byte na saída
  delay (1000);                 // espera 1 segundo
  contador++;                   // incrementa a variável contador em 1 unidade
}

  



Esquemático para funcionamento do sketch

Atividades:


  1. Crie um sketch com o código acima, e implemente a ligação e observe o funcionamento:
    • Qual a contagem realizada?
    • Qual o ponto de início?
    • O que acontece depois do número 15?
  2. Crie um novo sketch modificando o início da contagem.
  3. Crie um novo sketch para contagem seja decrescente.
    • O que acontece depois do número 0?
  4. Crie um novo sketch para estender a contagem para 8 bits.

  5. Crie um novo sketch inserindo um botão que controla o incremento.
  6. Crie um novo sketch inserindo mais 3 botões. um para o decremento, um para zerar e um para setar em 128.



  



Nenhum comentário:

Postar um comentário