Postagens

MAX7219 no PIC16F628A

Imagem
Alguém já deve ter ficado cotando os pinos do PIC para poder multiplexar os displays de 7 segmentos os quais utilizam muitas saidas, por exemplo, para ligar 4 displays de 7 segmentos são usados nada mais nada menos do que 12 pinos o que é um número considerável de saídas e dependendo do projeto e do PIC utilizado fica impossível de utilizá-los.

    Há sim outra forma de resolver isso, existe um circuito integrado que faz a multiplexação dos displays e que pode ligar até 8 display de 7 segmentos este é o MAX7219, o qual também pode multiplexar matrizes de LED.

MAX7219 datasheet

    O MAX7219 tem um funcionamento bem simples. segue abaixo um modelo de escrita

MAX7219_CS = 0; Soft_SPI_Write(0x0A);//comando Soft_SPI_Write(0x08);//valor MAX7219_CS = 1;
   Ou seja, enviamos um bit baixo ao pino LOAD , logo após enviamos o comando e o valor que queremos escrever, depois disso enviamos o bit alto para o LOAD.

   A tabela 2 do datasheet mostra os comandos do MAX7219. Exemplo:

Queremos definir q…

Comando Bimanual com ARDUINO

Comando bimanual feito com arduino para ser utilizado em prensas, guilhotinas, rebitadeiras, dobradeiras, etc...
o programa consiste em monitorar dois botoes e ligar uma saida em caso de acionamento simultaneo e em até 0,5 segundos de diferença, em caso de desacionamento de um dos botões a saida desliga ou em caso de ser acionado com uma diferença maior que 0,5 segundos a saida não aciona.
o programa é descrito abaixo:

#define botao1 2 #define botao2 3 #define saida 4
boolean aguarda_botao1 = false; boolean aguarda_botao2 = false;
byte estado_botao1 = 0; byte estado_botao2 = 0; byte ultimo_estado_botao1 = 0; byte ultimo_estado_botao2 = 0;
long unsigned int tempo1 = 0; long unsigned int tempo2 = 0;

void setup(){   Serial.begin(9600);   Serial.println("Start");
  pinMode(botao1,INPUT_PULLUP);   pinMode(botao2,INPUT_PULLUP);   pinMode(saida,OUTPUT);
  estado_botao1 = HIGH;   ultimo_estado_botao1 = HIGH;