Como veo que este tema se alarga, cambio los ordinales por números en los títulos….
Recordando dónde lo dejamos en el artículo anterior habíamos probado los actuadores y funcionaban sin ningún problema, también detectamos un par de «cositas» a modificar en el circuito, errores en el cálculo de un condensador y un problema de montaje.
En este artículo probaremos la parte del circuito que mide la energía.
En primer lugar he descubierto otro error en el diseño del circuito, la lectura de la tensión está conectada a la entrada digital 10, cuando debería de estarlo en la analógica 1 del micro, es simplemente un error, he cortado la pista y la he puenteado, modificaré el esquema y lo volveré a publicar, lo mismo con la placa.
He creado un sketch basado en la Application Note de Atmel que habíamos comentado en artículos anteriores , he comprobado las medidas que he tomado con un medidor de energía comprado en una tienda y, como norma general, la imprecisión es menor que un 1%, completamente aceptable.
Me he encontrado con un problema bastante tonto, sin carga el medidor me marca un consumo de un par de Watios. Mirando veo que en la lectura del sensor de intensidad hay un poco de ruido (mínimo).
Si recordamos el circuito, como el micro solo es capaz de medir tensiones positivas añadíamos una tensión del ofset, el el programa se aplica un filtro digital de paso alto para eliminarla, lo primero que he hecho es eliminar este filtro y cambiarlo por un coeficiente fijo, para descartar que fuera el filtro el que estuviera induciendo el error, pero el problema sigue siendo el mismo. El problema es sin duda del ruido.
En la imagen se puede apreciar que la línea no es nítida, el fondo de escala está en 10 mV, por lo que el ruido es mínimo. De todas formas he cambiado los condensadores que limitan el ancho de banda en el sensor de intensidad de 1 nF a 100nF, el ruido se ha reducido considerablemente (aunque la foto es de después del cambio). El problema de todas formas tiene que ver con la manera en la que se calcula la intensidad rms.
El método utilizado es el de la raiz cuadrada, se va muestreando la señal y se va acumulando la suma del cuadrado de la intensidad medida. Al final la I rms se calcula con la raiz cuadrada del promedio del valor acumulado. En condiciones normales el ruido se anularía a si mismo en el cálculo, los valores positivos anularían los negativos, pero como en el cálculo elevamos al cuadrado los valores negativos también suman, porque se convierten en positivos al elevarlos al cuadrado. Al final en vacío el sketch nos da una lectura de algunas decenas de miliamperios y una potencia de algunos W. No parece un problema importante (por la imprecisión), pero queda bastante «feo» que sin consumo el circuito de una lectura diferente de cero.
Supongo que una posible solución para eliminar este problema (que considero estético) será que en la secuencia de arranque del PDU se apaguen los relés, se mida la desviación, se calcule un valor de calibración y se reste al resultado. Por otro lado sería bueno redondear los valores calculados con menos decimales. En todo caso, resueltos estos «problemillas» tenemos ya una PDU funcional con un margen de error aceptable.
Suele pasar cuando diseñas un circuito que antes de probarlo ya lo diseñarías de otra forma, este es el caso, al circuito le hace falta un rediseño para soportar más puertos y en el que se junten las dos partes de alta tensión, por lo que de momento nos concentraremos en ser capaces de enviar la información por Zigbee asumiendo los pequeños errores, que resolveremos en un diseño posterior.