lunes, 22 de agosto de 2011

Reset con IC MC340

Para evitar que se quede cualquiera de los arduinos "colgados" por  cualquier problema en la alimentacion voy a usar un MC340.


Expansores I2C PCF8574

Cada nodo tiene conectado uno o dos expansores PCF8574 conectados al bus I2C. Lo voy a usar para controlar la persiana, el toldo y el estore.

/*
  PCF8574 - I2C
  Entradas
*/
#include <Wire.h>
#define expander 0x20
              
void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  Serial.print("Read: ");
  //Nos devuelve el estado de todos los bits B00000000
  Serial.println(expanderRead(),BIN);
  //Nos devuelve uno por uno el estado de los bits
  byte valor=(expanderRead());
  Serial.print(bitRead(valor,7));
  Serial.print(bitRead(valor,6));
  Serial.print(bitRead(valor,5));
  Serial.print(bitRead(valor,4));
  Serial.print(bitRead(valor,3));
  Serial.print(bitRead(valor,2));
  Serial.print(bitRead(valor,1));
  Serial.println(bitRead(valor,0));
  delay(1000);
}

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



Y para activar las salidas.



/*
PCF8574 - I2C SALIDAS
*/
#include <Wire.h>
#define expander 0x20
           
void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  //Todas las salidas a 0 B00000000
  expanderWrite(B00000000);
  delay(1000);
  //Todas las salidas a 1 B11111111
  expanderWrite(B11111111);
  delay(1000);
 
 
  byte salidas = B00000000;
  //el bit 2 lo ponemos a 1 B00000010
  salidas = bitWrite(salidas, 2, 1);
  expanderWrite(salidas);
  delay(1000);
  //el bit 3 lo ponemos a 1 B00000110
  salidas = bitWrite(salidas, 3, 1);
  expanderWrite(salidas);
  delay(1000);
  //el bit 2 lo ponemos a 0 B00000010
  salidas = bitWrite(salidas, 2, 0);
  expanderWrite(salidas);
  delay(1000);
  //el bit 3 lo ponemos a 0 B00000000
  salidas = bitWrite(salidas, 3, 0);
  expanderWrite(salidas);
  delay(1000);
}

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

El pinout del PCF8574


viernes, 19 de agosto de 2011

Manual de funcionamiento de CAN Bus

Manual de funcionamiento del CAN Bus que a mi me ha venido muy bien para entenderlo un poquito mejor.

www.steinbock.cl/AUDI-9.pdf

Distribucion de funciones de cada arduino

Acabe de distribuir todos los pines que voy a usar en cada arduino, total cinco arduinos configurados como SLAVE y uno como MASTER. Entre ellos se comunicaran por CAN, que locura.
Os dejo el esquema del pineado.




http://arduino.cc/forum/index.php?action=dlattach;topic=55012.0;attach=5724

sábado, 13 de agosto de 2011

Imagenes de mi casita



Empezamos

Quiero hacer de mi nueva casa un hogar inteligente y que mejor que hacerlo con arduino, esa pedazo de plataforma de hardware libre.
En principio iba a cablear toda la casa desde cada sensor a un control central pero al final lo hare con CAN Bus usando la shield de Igor R, de esta manera se simplifica un poco todo.
Os dejo el enlace de la shield.
http://secuduino.blogspot.com/

Así que empezamos amigos.