Multplexação Explicação e Funcionamento Prático

A multiplexação é uma arte que qualquer desenvolvedor de hardware precisa aprender para combinar dois ou mais canais de informação por apenas um meio de transmissão.

O que é Multiplexação?

Multiplexação é uma forma de expandir 2 ou mais sinais individuais, de forma simultânea por um único meio de transmissão.

Exemplos de Multiplexação

Em nosso dia dia nos deparamos a todo momento com este fenômeno inclusive agora. Existem inúmeros exemplos ao nosso redor que podemos usar para entender o que é a multiplexação, mas um dos mais simples de ser explicado é exatamente as telas/displays.

Um display OLED de 128×64 pixel tem no total 8.192px agora imagine o quanto seria necessário de energia para acionar todos eles de uma única vez? Isso iria consumir mais energia do que o normal e envolveria um hardware maior para acender esses 8.192px.

Explicação Cientifica.

O fenômeno que permite criar animações ilusórias está associada a persistência da imagem na retina que tem a capacidade de salvar temporariamente a imagem por uma fração de segundos OLIVEIRA, F. G. (2009). Com a multiplexação é possível aproveitar essa peculiaridade para acionar por exemplo pixel a pixel e assim formar uma imagem completa sem ter que acionar todos os pixels de uma só vez.

O que é Retina e qual sua importância para a Multiplexação?

Comportamento da retina no processo de formação de imagem por meio de multiplexação de pixels.

A Retina é uma das membranas do seguimento posterior do olho, que tem a função de transformar o estímulo luminoso em um estímulo nervoso e enviá-lo ao cérebro, para que as imagens sejam lidas. A membrana nervosa do olho é ligada desde o nervo óptico até a pupila. São dez camadas, dos quais se destacam o epitélio pigmentário que é a camada externa, e a camada sensorial, composta de fotorreceptores.

Fonte: IORJ

Multiplexação de LEDs com Arduino

Por que multiplexar LED’s? Os LED’s são uma ótima porta de entrada para entender o básico de diversas funcionalidades usando o Arduino e a multiplexação não fica para trás. O mesmo exemplo desenvolvido aqui poderá ser usado da mesma forma para inúmeras aplicações como o ligar 2 displays 7 segmentos com números diferentes ao mesmo tempo.

Diagrama



Código

O código é bastante simples, consistindo em um pequeno ciclo de período fixo por 5s usando a biblioteca Waiting Time, depois um ciclo de incremento no período de cada LED com duty cycle de 50% e por fim um decremento equivalente.

#include <Elcereza_Waiting_Time.h>

#define LED1 12
#define LED2 9
#define LED3 6

Waiting_Time time(1);    

void setup() {
  pinMode(LED1, 1);
  pinMode(LED2, 1);
  pinMode(LED3, 1);
}

void State_Change(int LED, int p){
  digitalWrite(LED, !digitalRead(LED));
  delay(p);
  digitalWrite(LED, !digitalRead(LED));
  delay(p);
}

void loop() {
  if(time.wait(5000, 0))
  {
    for(int i = 5; i < 100; i += 1)
    {
      State_Change(LED1, i);
      State_Change(LED2, i);
      State_Change(LED3, i); 
    }
    for(int i = 90; i > 5; i -= 1)
    {
      State_Change(LED1, i);
      State_Change(LED2, i);
      State_Change(LED3, i); 
    }
  }
  else
  {
    State_Change(LED1, 5);
    State_Change(LED2, 5);
    State_Change(LED3, 5); 
  }
}

Funcionamento

O vídeo abaixo mostra um funcionamento de 3 LEDs que começam fluxo de funcionamento da esquerda para a direita, inicialmente em uma velocidade lenta para demonstrar como a multiplexação funcionaria em “câmera lenta”, depois a frequência vai aumentando até o ponto em que todos os LEDs ficam aparentemente acesos mas na verdade estão piscando um a um.

Deixe uma resposta