quinta-feira, 29 de julho de 2010

i2c No Arduino

Desde o final de 2009 tenho tentado fazer a expansão i2C do Arduino funcionar corretamente. Achei varios códigos mas nenhum respondia para o PCF8574 da Philips que é uma expansão bidirecional de 8 portas. Ontem finalmente, usando o IO shield eu consegui fazer o dito cujo funcionar corretamente. Na primeira foto a montagem do PCF com dois leds.


Demorou mas funcionou. Basicamente oq ue faltava era corrente para alimentação do conjunto e os resistores no bus i2C, o que impedia que a comunicação acontecesse.

Eu utilizei o seguinte código:
/*
Test program for PCF8574 I2C I/O expander
- Blinks all ports low then high.
by Ford
*/

#include

#define expander B0100000 // Address with three address pins grounded.
// Note that the R/W bit is not part of this address.

void setup() {
Wire.begin();
Serial.begin(9600);

}

void loop() {
Serial.println("LED OFF");
expanderWrite(B00000000);
Serial.print("Read: ");
Serial.println(expanderRead(), BIN);
delay(1000);
Serial.println("LED ON");
expanderWrite(B00100000);
Serial.print("Read: ");
Serial.println(expanderRead(), BIN);
delay(1000);
}


void expanderWrite(byte _data ) {
Wire.beginTransmission(expander);
Wire.send(_data);
Wire.endTransmission();
}

byte expanderRead() {
byte _data;
Wire.requestFrom(expander, 1);
if(Wire.available()) {
_data = Wire.receive();
}
return _data;
}



Origem do código -> Link
A segunda parte consistia em colocar o i2C para funcionar na placa de relés/entradas digitais.



A proxima etapa é colocar tudo para funcionar em Processing e na sequencia integrar com o Ethernet Shield.

3 comentários:

Unknown disse...

Bacana essa placa, estou interessado em vê-la funcionando com i2C, aliás preciso estudar esse protocolo melhor..

Webert Oliveira disse...

Amigo que legal ! Onde vc conseguiu essa placa de relës? Não conheço esse protocolo, mas vou dar uma estudada. Estou querendo uma placa dessa, ou fazer uma dessas. Me passa o esquema ?
wertoliveira@gmail.com

Leandro disse...

Amigo comecei a estudar esse protocolo e uma das dificuldades é a falta de material para comprar nas lojas. Onde você comprou o PCF8574? ALguma loja online pra me indicar? Se puder me mande um e-mail. le.mariano@gmail.com