Para começar, o fritzing gerou uma imagem muito grande, então aconselho a dar uma passada no http://www.jpegmini.com/ para eles diminuem o tamanho da imagem mantendo a qualidade..

Galera, fiz esse expansor de portas e resolvi divulgar para vocês. Aqui o esquema no eagle expansordeporta.zip

Os pinos 1,2,3 são os responsaveis pelo endereçamento, confira a tabela abaixo.

Essa é a tabela do mapa de endereço do PCF8574A, outros podem ter endereços diferentes, ai cabe a você dar uma olhada no datasheet dele.

Codigo no arduino.

#include <Wire.h>

#define expansor1 0x38  // ou 56
#define expansor2 0x39  // ou 57
int tempo = 350;
void setup()
{
Wire.begin();

comunica(expansor1, B11111111);
comunica(expansor2, B11111111);

}

void loop()
{
comunica(expansor1, B01111111);
delay(tempo);
comunica(expansor1, B10111111);
delay(tempo);
comunica(expansor1, B11011111);
delay(tempo);
comunica(expansor1, B11101111);
delay(tempo);
comunica(expansor1, B11111110);
delay(tempo);
comunica(expansor1, B11111101);
delay(tempo);
comunica(expansor1, B11111011);
delay(tempo);
comunica(expansor1, B11110111);
delay(tempo);
comunica(expansor1, B11111111);
delay(tempo);

comunica(expansor2, B01111111);
delay(tempo);
comunica(expansor2, B10111111);
delay(tempo);
comunica(expansor2, B11011111);
delay(tempo);
comunica(expansor2, B11101111);
delay(tempo);
comunica(expansor2, B11111110);
delay(tempo);
comunica(expansor2, B11111101);
delay(tempo);
comunica(expansor2, B11111011);
delay(tempo);
comunica(expansor2, B11110111);
delay(tempo);
comunica(expansor2, B11111111);
delay(tempo);

}

void comunica(byte endereco, byte digito)
{
Wire.beginTransmission(endereco);
Wire.write(digito);
Wire.endTransmission(endereco);
}

da uma olhada como ficou o prototipo. http://labdegaragem.com/photo/expansor-de-portas?context=featured

Lembrando que meu tempo programando no Arduino é pouco e esse é meu primeiro post completo aqui, vou aprender mais para melhorar sempre..

Exibições: 2203

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Eduardo castellani em 20 agosto 2013 às 11:07

PARABÉNS, mas na próxima vez faça um vídeo com o cantasia, explicando  esse código, para que os iniciantes como eu entenda melhor, mas obrigado assim mesmo. 

Comentário de Alexandre em 19 agosto 2013 às 2:13

Eu tinha certeza que o meu expansor só podia não estar funcionando por causa de algum erro muito imbecil!!!!

O expansor só funciona com o ground comum ao arduino, acontece que eu estava usando uma fonte externa. 

Comentário de Alexandre em 30 março 2013 às 13:29

Ficou legal! Percebe que disso aí da pra expandir pra até 64 portas.

Já fez alguma experiência com porta analógica? Eu consigo expandir pra 8 portas, usando o CI 4051, mas quando tento criar os slaves, simplesmente a leitura dos sensores fica maluca.

Comentário de Rogerio A. Filho em 25 fevereiro 2013 às 9:31

Video do funcionamento.

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço