Aventuras y Desventuras de un hobbyist

Aventuras y Desventuras de un hobbyist....

DomoLeroyDuino

Sistema de control de encendido y apagado de dispositivos eléctricos a través de control remoto. Se trata de un sistema que se compone de uno o varios receptores (enchufes, interruptores y portalámparas) y un mando a distancia. Los enchufes de esta gama permiten dos funciones: la de encendido y apagado de los dispositivos eléctricos conectados al enchufe. El mando a distancia de esta serie permite el encendido y apagado de 8 líneas de enchufes, esto lo he comprado en Leroy Merlin y vienen en packs de 3 enchufes y un mando.

Para poder controlar esos enchufes necesitamos integrar arduino al control remoto existente.
Dicho control remoto consta de 2 botones de encendido( 1 y 2) y dos botones de apagado (1 y 2) además de un mini interruptor de  4 posiciones  A,B,C y D.
 Es decir que por cada canal seleccionado podemos controlar dos enchufes haciendo un total de 8.
Para controlar los 8 enchufes necesitamos por tanto 8 pines de Arduino:
  1. Seleccionar canal A
  2. Seleccionar canal B
  3. Seleccionar canal C
  4. Seleccionar canal D
  5. Encender 1
  6. Apagar 1
  7. Encender 2
  8. Apagar 2
 Por ejemplo:
Para encender el 1 en el canal A, ordenaremos Arduino  encender el pin del Canal A + el pin de Encender 1.
Para apagar el 2 en el canal B, ordenaremos Arduino encender el pin del Canal D + el pin de Apagar 2

Aun no tengo decidido como controlar los encendidos y las posibilidades son las siguientes:
  • Ethernet Shield.
  • RTC Real time clock, con el que dejare todo programado en el atmega.
  • A través de un PC enviando comandos via Serial port.
Luego de las consideraciones teóricas es hora de encender nuestro multímetro y ponernos a investigar como funciona el control remoto.
Los botones de encendido son simples de controlar usando un relé o un transistor(x4).
 El mini interruptor de 4 posiciones requiere un poco mas de trabajo ya que la forma en que se conecta (ver foto detalle en la parte inferior derecha:



















Cuando esta en posición A conecta GND con la linea de A (dos patillas) esto lo podríamos solventar con un relé pero las lineas(ABCD) deben estar aisladas ya que si hay contacto entre ellas solo el canal A estaría disponible.Mi solución es tener una linea de control para cada patilla haciendo un total de 8 controles aislados aunque luego en el arduino solo necesitaremos 4 ordenes ya que activaremos dos con un solo pin pero estas deben estar aisladas.
Había pensado en usar relés pero al pensar que necesito 12 me parece que ocupara mucho sitio, otra posible solución es usar un multiplexer 74hc585 o 12 transistores NPN.
Yo lo haré con 12 transistores y el circuito es el siguiente. Muy importante conectar el GND del mando remoto y de Arduino.


Update:

La aplicación para el control domotico ya esta terminada y testeada, simplemente queda determinar que items controlar .
La aplicación esta hecha en python :




Agitador para etching v.1 part 2

No te olvides leer la parte 1 :  http://yopero-tech.blogspot.com/2011/10/agitador-para-etching.html

Siguiendo con este proyecto una vez recibido el Attiny85 he decido montar la placa en una stripboard de 11*11.

Abajo el detalle del circuito completo:



Y aquí el mapa de donde cortar las lineas  y puentes:


Y aquí el detalle de la parte de los componentes:


La carga del codigo en el Attiny85 la he realizado utilizando el siguiente link donde se explica muy claramente los pasos a seguir:
http://txapuzas.blogspot.com/2009/12/paperattinyprogrammer-un-programador.html

El código que he cargado en el Attiny85 es el siguiente:

// Arduino Code:
// etching agitator by yOPERO
//ATTiny45

void setup () {
pinMode(2, OUTPUT);  
   pinMode ( 0 , OUTPUT ) ; // tell Arduino to use pin 0 as OUTPUT
   pinMode ( 1 , OUTPUT ) ; // tell Arduino to use pin 1 as OUTPUT
   // you can use other outputs, they must support PWM
}

void loop () {

    
    digitalWrite(2, HIGH);   // set the LED on
    izquierda();
  delay(500);
    paro();
    delay(200);
  derecha();
  delay(500);
  paro(); 
  delay(3000); 
}
   

void izquierda() {
  analogWrite ( 0 , 150 ) ; // run motor one way half speed
   analogWrite ( 1 , 0   ) ;
}
void derecha() {
analogWrite ( 0 , 0 ) ; // run motor one way half speed
   analogWrite ( 1 , 150   ) ;
}
void paro() {
 analogWrite ( 0 , 0 ) ; // stops motor
   analogWrite ( 1 , 0 ) ;
}




Finalmente aqui las fotos del con el resultado final:





 

..y un pequeño video del invento funcionando: