domingo, 27 de abril de 2014

Proyecto: Evitar Inyección con Arduino (VI): Prototipo Derivador

Buenas a todos.

Hace unas semanas, ya pudimos ver un prototipo de derivador, implementado con una resistencia variable, que no terminaba de darnos la precisión que queríamos.

He vuelto a la idea inicial de poner un conjunto de resistencias que su combinación sea lo suficiéntemente precisa. Implemento este mecanismo con un juego de relés de 8 entradas:


La combinatoria nos dará una combinatoria de 8 números en sumas de 3K : 6, 3,12,...., 9, 15, 18, 21, ....

Recordemos que el potenciómetro va de 0 a 500k, por lo que este juego de resistencias cubre todo el rango.

El hardware ha quedado así Antes y después:



Las resistencias están colocadas, por defecto en la salida por defecto activa del relé, y un cable sin resistencia, desde la salida "normally opened" al in del siguiente relé.

El software que recibe la señal del consumo, y que deriva es relativamente sencillo. Básicamente, una función estima la resistencia que hay que tener para derivar una determinada cantidad de Watios, y otro componente lo aplica a nuestro derivador:


El código fuente lo dejo aquí: Código fuente Derivador

Una vez que tenemos el "invento" hay que conectarlo al arduino, y probarlo ¿funcionará? ¿Funcionará bien?

La respuesta es sí, las primeras pruebas funcionan mucho mejor de lo que me esperaba.



Os dejaré unos vídeos aquí con el funcionamiento. Espero que os guste y os animéis a fabricaros uno.





Con un par de días de funcionamiento llego a varias conclusiones que tengo que mejorar en varios aspectos:

1.- La recepción de señal no es lo suficientemente rápido como necesitaría
2.- Cuando un electrodoméstico consumiendo, se para de golpe, hay un periodo de tiempo que se inyecta (Ya lo adelantaba nuestro amigo JCS). Esto se vé agravado por el punto 1, porque hay mensajes del emisor al receptor que se pierden....
3.- El calentador al mínimo de resistencia del potenciómetro también consume (80w), lo que hace que ese margen consuma una vez que se enciende el aparato. Tengo que cortar la corriente cuando desee pararlo.

Bueno amigos, pues espero que os guste, acepto críticas constructivas y aportaciones!!


jueves, 3 de abril de 2014

Proyecto: Evitar Inyección con Arduino (V)

Buenas Noches!!!!

Llevo unas semanas trabajando en el proyecto, y tengo avances muy interesantes. El objetivo que teníamos era derivar el excedente a un calentador o similar, pero llega el momento "pues ya que" que en el mundo de la informática significa que ya que estamos, hacemos esto, lo otro, etc, etc.

Pues ya que estamos, vamos a añadirle al proyecto un elemento de radiofrecuencia que nos permitirá derivar el excedente sin cables, en remoto, digamos....

El esquema general es el siguiente:



Una vez que hemos visto el esquema general, quería mostraros el cambio del prototipo de recepción de y recogida de datos, (vamos, el primer cuadro), ya que por patoso, rompí el primer arduino.......

He cambiado el arduino Uno Rev3 por un arduino mini R3, y la pantalla LCD que no era I2C por una I2C para ahorrar puertos. Os dejo un vídeo de esta parte:


Ahora toca ver el funcionamiento del control del excedente. Este módulo es muy sensible a las interferencias, creo que es porque el emisor no tiene suficiente voltaje, lo investigaré......

De todas formas, decido probar el primer prototipo, comprobando que el excente es derivado correctamente. Enchufo un calentador, al dispositivo que veis en la caja.... y lo monitorizo con el ordenador:


Tenía un vídeo del funcionamiento, pero.... no se le puede dejar la cámara a los niños.... lo volveré a grabar y lo subo.

El excente es regulado por el dispositivo, os pego una captura de lo que me ha quedado:



De este primer prototipo aprendo una cosa, que la resistencia variable (X9C104 DIP-8 Digital Potentiometer IC) que usé en esta entrada no es lo suficientemente precisa, lo que en ocasiones no evita la inyección al 100%. Ya estoy buscando (y probando) alternativas, pero me quedo con lo positivo, soy capaz de controlar automáticamente el excedente, y además de forma remota.

El código fuente lo dejo aquí:

https://github.com/calentadorsolarpasoapaso

Sigo trabajando en el proyecto, os sigo contando los avances.

Saludos!!