jueves, 29 de septiembre de 2016

PSeudo Osciloscopio con Excel.

Se trata de utilizar un gráfico del tipo XY para ver, y medir, la forma de una señal eléctrica.
Tengo un par de proyectos pendientes, uno de ellos poner en marcha de nuevo una vieja mobylette campera. La bobina es nueva, los platinos son nuevos, el circuito eléctrico está bien pero no da chispa, no es que de chispa fuera de tiempo, es que no da chispa.
Con un microprocesador Arduino Uno construí un pequeño aparato de medida para medir la señal en los platinos. Básicamente la cosa consiste en medir, mediante el conversor A/D del arduino, el nivel de tensión y escribir en una tarjeta SD ese valor y el tiempo, en microsegundos, en el que se hace la medida. Anoto el valor de conversión A/D leido no el valor en voltios.
El conversor A/D de Arduino es lento, para medir señales de alta frecuencia no vale, pero para este aparato de medida, si.
Otro tema es ver la señal. Hice, utilizando una pantalla tft, un preliminar para ver la señal en el propio aparato. Ya en una ocasión anterior había tocado este tema, ver la señal mediante un gráfico excel, así que decidí terminarlo.
  • Los datos los paso a excel, de momento, mediante un copia-pega. Habro el fichero con las medidas y las copio a Excel (Datos0)
  • El gráfico, como ya he dicho, es del tipo XY con rango variable. Para variar el rango utilizo la función desref().
  • El concepto es "voy a ver n puntos a partir de un punto punto determinado.
  • Tanto para seleccionar el primer punto como para determinar el número de puntos a ver utilizo barras de desplazamiento.




Variables y rangos con nombre:
  • BDI (=Aux!$A$2) Celda vinculada con la barra de desplazamiento que selecciona el primer punto de la gráfica.
  • BDI (=Aux!$B$2) Celda vinculada con la barra de desplazamiento que selecciona el número de puntos de la gráfica.
  • Mcrs. (=DESREF(Datos!$D$2;BDI;0;BDN;1)) Rango del eje de tiempos.
  • Vol, =DESREF(Datos!$C$2;BDI;0;BDN;1) Rango de los valores de tensión en el eje Y.
  • Sonda, =Aux!$A$5. Como la tensión de salida en los platinos es superior a 5 v. tuve que construir un divisor de tensión para poder medir tensiones superiores a 5 v. Es el factor de división.
  •  PValorX, =INDIRECTO("datos!$a$" & Aux!$A$2+2). Es el valor del primer punto a representar. Este valor se resta a todos los valores vistos con el fin de que el primer valor en el eje de tiempos de la gráfica sea cero.
  • Leyenda, sin uso como variable con nombre, ="V.Min "&TEXTO(Aux!A3;"0,000")&CARACTER(10)&"V.Max="&TEXTO(Aux!A2;"0,000")&CARACTER(10)&"Microseg="&MAX(Mcrs) &CARACTER(10)&"Sonda="&Sonda
Otras funciones utilizadas:
  • TEXTO(F2;"0,000") : Convierte el valor de F2 en texto con el formato deseado.
  • Max.
  • Min.
Gráfico:
La primera barra de desplazamiento selecciona el primer punto. La segunda, inmediatamente debajo, el número de puntos. Hay una tercera barra sin uso. La serie de la gráfica utiliza rangos con nombre, según:
 =SERIES(Aux!$H$2;SeudoOsciloscopio.xls!Mcrs;SeudoOsciloscopio.xls!Vol;1)

Datos0:
Columna A: Tiempos, sin acumular, entre medidas.
Columna B: Valores A/D medidos.
Columna C: Tiempos acumulados.
Columna D: Igual a columna B.

Datos:
Columna A: Tiempos acumulados. Igual a Datos0!C
Columna B: Valores A/D. Igual a Datos0!B
Columna C: Valor A/D convertido a voltios, teniendo en cuenta el factor del divisor de tensión (sonda).
Columna D: Tiempos, descontado el primer valor del eje de tiempos.