Anuncio

Colapsar
No hay ningún anuncio todavía.

¿Se puede usar Arduino como medidor y generador de corriente alterna?

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Secundaria ¿Se puede usar Arduino como medidor y generador de corriente alterna?

    Hola foreros. Estaba mirando el tema tan interesante de la resonancia en los circuitos eléctricos y quería probar a experimentar un poco.
    Dispongo de una controladora Arduino y me preguntaba si alguien sabría si se puede utilizar como medidor o generador de corriente alterna. Sé que puede dar una tensión entre 0 y 5 V, y que también puede hacer de sensor entre 0 y 5 V, pero no más ni menos, he leído por internet que con un transformador (si no tengo entendido mal, si me equivoco corregidme) y algunos trucos para variar los voltajes en la lectura, pero no he leído nada de generar.

    Quizá esté diciendo algo imposible o al menos por si sólo que Arduino no de para tanto, no soy muy entendido de electrónica..

    Muchas Gracias, Un saludo.
    [TEX=null] \vdash_T G \leftrightarrow Consis \; \ulcorner T \urcorner [/TEX]

  • #2
    Re: ¿Se puede usar Arduino como medidor y generador de corriente alterna?

    ¿Que placa arduino es? Debes saber que se diferencian en cuanto al microcontrolador y al conjunto de componentes que componen la placa de desarrollo. Yo uso microcontroladores atmel pero en cuanto a sus lineas de 32 bits con arquitectura ARM. No uso la marca atmel para microcontroladores de 8 bits pero conozco arduino. LLendo a tus preguntas:

    Para medir, puedes medir teoricamente cualquier cosa ya que todos los microcontroladores atmel de la linea AVR 8 bits (que son los usados por arduino en general, aunque existen placas con PIC32) tienen ADC, conversores analógicos digitales pero no todos tienen DAC digital analógico. Este puedes implementarlo mediante una red de resistencias R-2R tomando los valores en las salidas digitales: Puedes ver el artículo de wikipedia que yo he escrito sobre conversores digital analógico:

    https://es.wikipedia.org/wiki/Conver...anal%C3%B3gica

    Es decir, cualquier señal de tensión puedes digitalizarla para procesarla (medirla, aumentarla, disminuirla, comprimirla, etc.) y luego puedes convertirla a analógica mediante un conversor digital analógico. Por ende no solo puedes medirla sino que puedes generar la señal que desees, ateniendose siempre a que un conversor tiene una resolución, que está dada por la cantidad de bits de dicho conversor y una frecuencia de muestreo de manera tal que la señal que generas o muestreas no puede ser mayor a la mitad de la señal de muestreo, esto se conoce como teorema de Nyquist, que siendo sincero en la práctica la señal no puede tener una frecuencia mayor a la decima parte de la frecuencia de muestreo.

    Sé que puede dar una tensión entre 0 y 5 V, y que también puede hacer de sensor entre 0 y 5 V, pero no más ni menos, he leído por internet que con un transformador (si no tengo entendido mal, si me equivoco corregidme) y algunos trucos para variar los voltajes en la lectura, pero no he leído nada de generar.
    Esa es la tensión de alimentación de la placa y del microcontrolador y la gran mayoría tienen conversores que trabajan con una fuente de tensión independiente a la de la alimentación del micro pero de eso no tienes que preocuparte en estos kits. Eso si, la tensión de salida del conversor DAC no podrá ser mayor a la tensión de alimentación de la misma manera que pasa en los amplificadores, etc.
    Esto es debido a que los sistemas digitales no son diseñados para manejar potencia sino que su fin es el procesamiento de señales digitales, si quieres aumentar la tensión o la potencia debes anexarle a la salida una etapa de potencia, es decir, un amplificador para poder manejar corrientes mayores a 100mA.

    ¿cómo medir parámetros eléctricos? debes utilizar un pin Analog input que trae la placa, el cual debes configurar previamente para que este sea la entrada al conversor ADC, esto lo realizas mediante la programacion. Por ejemplo, para convertir una señal analógica a digital:

    https://www.arduino.cc/en/Tutorial/AnalogInputPins

    https://www.arduino.cc/en/Reference/AnalogRead

    int analogRead(pin Name) ;

    Es decir, la función analogRead toma el valor del pin que es llamado "Name" (el cual debe ser analogico) y devuelve un valor de 0 a 255 según el valor de tensión (de 0 a 255 porque el registro del conversor es de 8 bits) o un valor de 0 a 1024 en arduino Mega que trae un conversor de 10 bits, la sensibilidad puedes configurarla a su vez. Por ejemplo si sensas un valor y obtienes un dato que es 00010000 (binario), es decir, 16 (decimal) por lo tanto la tensión es 5[V]/16 (si el analogReference está seteado en DEFAULT). Y eso puedes mostrarlo en una pantalla (shield arduino)
    Para configurar la sensibilidad del conversor usa la función analogReference https://www.arduino.cc/en/Reference/AnalogReference

    Para el proceso de conversión digital analógica, si el micro contiene DAC,
    https://www.arduino.cc/en/Reference/...riteResolution. sino implementa una red R-2R.

    Por cierto todo está en la documentación del lenguaje, ya que mediante la programación configuras los modulos del micro.

    Pero si, puedes hacer un excelente voltimetro, amperimetro, ohmetro, etc. con una placa arduino y también puedes hacer generadores de señales. Porque sea de 8 bits el micro no implica que sea ineficiente y es más atmel produce micros bastante estables. Eso si, para algo comercial sería mejor usar un micro DSP que son micros diseñado precisamente para procesamiento de señales analógicas. A su vez ten en cuenta que muchos satélites que actualmente siguen operativos tiene microprocesadores 8086, que son de mediados de los 80s y son de 8 bits donde un micro de atmel, microchip, freescale, texas instrument, de 8 bits actual, es más potente. Todo está en la estabilidad del micro, en el diseño robusto, en la compatibilidad electromagnética, etc.
    Por más bella o elegante que sea la teoría, si los resultados no la acompañan, está mal.

    Comentario


    • #3
      Re: ¿Se puede usar Arduino como medidor y generador de corriente alterna?

      Hola Julián, muchas gracias.
      Tengo un Arduino Uno basado en ATmega328P. No tiene DAC, pero sí PWM, no sé si éste puede ser útil (imagino que para frecuencias bajas sí, pero para medias o altas no), si no, con un DAC por el método que enlazaste de wikipedia. Aunque en esto tengo una duda, sólo se podrían generar tensiones oscilantes entre 0 y 5 V ó 0 y -5V¿?
      Sobre la entrada, no conocía analogReference, pero ésta sólo cambia la cota superior. La inferior siempre es 0 V¿? Entonces, no puedo leer cotas de tensiones negativas¿?
      Gracias.
      Última edición por alexpglez; 10/12/2015, 20:37:41.
      [TEX=null] \vdash_T G \leftrightarrow Consis \; \ulcorner T \urcorner [/TEX]

      Comentario


      • #4
        Re: ¿Se puede usar Arduino como medidor y generador de corriente alterna?

        El PWM no te sirviría porque son las siglas de modulación por ancho de pulso, es decir, a una función cuadrada lo que modifica es la anchura de los pulsos en función de un mensaje (información). Por lo que la señal es tipo rectangular donde solo controlas el ancho del pulso (ciclo de trabajo o duty cycle en inglés).

        https://es.wikipedia.org/wiki/Modula...ncho_de_pulsos

        ¿Para qué sirve esto? Pues porque la potencia activa de una señal cuadrada depende del ancho del pulso y de esta manera puedes controlar la potencia de un motor, o un led, etc. Por supuesto para motores de potencia necesitas un controlador a la vez para que entregue potencia.

        Con respecto al ADC puedes medir cualquier tipo de tensión pero tienes que reducir la tensión en la entrada para que valla desde masa hasta Vcc (tensión de alimentación) y al valor obtenido puedes modificarlo por software de manera de que en en sensado se tenga en cuenta el factor de disminución.

        Con respecto a las redes escaleras o R-2R, la tensión podrá ser la que quieras porque si observas el circuito las redes se alimentan con una tensión de referencia, la cual será tu máximo nivel de tensión. Ahora bien, si usas 8 bits por lo tanto desde 0 hasta Vref podrás partirlo en 256 () cuantos o niveles.

        Nada mejor que una imagen. En vez de una placa arduino uso un microcontrolador pic16f84 pero RB0 - RB1 - RB2 y RB3 serían las salidas digitales (un DAC de 4 bits solamente por simplicidad para la imagen)

        Haz clic en la imagen para ampliar

Nombre:	conversor.PNG
Vitas:	1
Tamaño:	15,2 KB
ID:	303484

        Las salidas de los pines del micro estarán entre 0 V para un nivel bajo y Vcc (5V) para un nivel alto. La tensión de referencia le puse 50V. Como observarás las llaves de conmutación son transistores Mosfet que por cualquier cosa usé los IRF510 que son de 43 [W] y soportan 10 [A] de corriente. Es decir, para una salida baja de los pines están en corte el transistor y no conduce y para una tensión de 5[V] de salida de los pines están en conducción los transistores y su resistencia de canal tiende a cero.
        Si observas el pin RB0 circulará una mayor corriente que el pin RB1 (los puse alreves pero bueno) y RB1 circula una mayor corriente que RB2 por lo tanto se suman las corrientes.

        Bueno la ecuación la puse en wikipedia pero observarás como puedes manejar la corriente con los valores digitales. OJO es la suma de corriente y la tensión depende de la carga, es decir que en la carga (usé 470 ohms) circulará la suma de corrientes. Si solo se activa RB0 la corriente será 50[v]/(20000+470)= 2.44 mA. Si está activado solamente RB1 50[V]/ 2 (20000+470) = 1.22 mA. Si está activado RB0 y RB1 circulará por la resistencia de 470, 2.44mA+1.22mA. Es decir, si el dato es 0011 circulará 3.66 mA.

        Puedes comprar algún conversor DAC comercial sino.

        Sobre la entrada, no conocía analogReference, pero ésta sólo cambia la cota superior. La inferior siempre es 0 V¿? Entonces, no puedo leer cotas de tensiones negativas¿?
        No porque el arduino se alimenta con Vcc y masa. No está alimentado con tensiones partidas es decir +/- Vcc y masa por lo que no tiene una tensión negativa con que comparar. Pero como te dije antes eso lo puedes hacer por software, es decir en otra entrada pones un comparador a un pin configurado en entrada. Para tensiones negativas el comparador pone una tensión alta en ese pin y sabrás que es un valor negativo y para tensiones positivas el comparador tira una tension baja o puede ser alrevez. El comparador puede ser un smith trigger.

        https://es.wikipedia.org/wiki/Disparador_Schmitt

        Por lo tanto tendrás 2 pines como entrada uno que será analógico para el canal del conversor y otro un pin de entrada digital para el comparador de tension, si es negativo o positiva. A la salida puedes tener una pantalla LCD para que te muestre los datos leidos por el conversor ADC y si te dan los pines el conversor DAC externo. Si no te dan los pines tienes que multiplexar.
        Por más bella o elegante que sea la teoría, si los resultados no la acompañan, está mal.

        Comentario

        Contenido relacionado

        Colapsar

        Trabajando...
        X