Inversor 12-220 voltios en Arduino seno puro con código de programa completo.
Teoría
Lograr una salida de onda sinusoidal es bastante difícil y no se puede recomendar para inversores, porque electronica Por lo general, a los dispositivos no les gusta el aumento exponencial de corrientes o voltajes. Dado que los inversores se fabrican principalmente con dispositivos electrónicos de estado sólido, generalmente se elimina una forma de onda sinusoidal.
Los dispositivos electrónicos de potencia cuando se trabaja con ondas sinusoidales dan resultados ineficaces, ya que los dispositivos, por regla general, se calientan en comparación con los pulsos rectangulares.
Por lo tanto, la mejor opción para implementar una onda sinusoidal en un inversor es PWM, que significa modulación de ancho de pulso o PWM.
PWM es una forma mejorada (versión digital) de exposición de forma de onda exponencial a través de anchuras de pulso cuadrado que varían proporcionalmente, cuyo valor neto se calcula exactamente de acuerdo con el valor neto de la forma de onda exponencial seleccionada, aquí el valor "puro" se refiere al valor RMS. Por lo tanto, el PWM calculado con referencia a una onda sinusoidal dada puede usarse como un equivalente ideal para la replicación de una onda sinusoidal dada. Además, los PWM serán idealmente compatibles con dispositivos electrónicos de potencia (mosfets, BJT, IGBTS) y permitirán su uso con un calor mínimo.
¿Qué es SPWM?
El método más común es producir una onda sinusoidal PWM (onda sinusoidal) o SPWM, aplicando varias señales exponencialmente variables a la entrada de un amplificador operacional para el procesamiento necesario. Entre las dos señales de entrada, una debería ser mucho más alta en frecuencia en comparación con la otra.
Usando dos señales de entrada
Como se mencionó en la sección anterior, el procedimiento implica suministrar dos señales que varían exponencialmente a las entradas del amplificador operacional.
Aquí, el amplificador operacional está configurado como un comparador típico, por lo que podemos suponer que el amplificador operacional comenzará inmediatamente a comparar los niveles de voltaje instantáneo de estas dos señales superpuestas en el momento en que aparecen o se aplican a sus entradas.
Para que el amplificador operacional implemente correctamente el PWM sinusoidal necesario en su salida, es necesario que una de las señales tenga una frecuencia mucho más alta que la otra. La frecuencia más lenta aquí es la que debería ser la onda sinusoidal de la muestra, que debería ser simulada (replicada) por PWM.
Idealmente, ambas señales deberían ser sinusoidales (una con una frecuencia más alta que la otra), sin embargo, la misma se puede realizar al incluir una onda triangular (alta frecuencia) y una onda sinusoidal (onda selectiva con una frecuencia baja). Como se puede ver en las siguientes imágenes, la señal de alta frecuencia se alimenta invariablemente a la entrada inversora (-) del amplificador operacional, mientras que se suministra otra señal sinusoidal más lenta a la entrada no inversora (+) del amplificador operacional. En el peor de los casos, ambas señales pueden ser ondas triangulares con niveles de frecuencia recomendados, como se describió anteriormente. Sin embargo, esto ayudará a lograr un equivalente razonablemente bueno de onda sinusoidal PWM.
Una señal con una frecuencia más alta se denomina señal portadora, mientras que una señal de muestra más lenta se denomina entrada de modulación.
Crea SPWM con una onda triangular y tendinosa
Volviendo a la figura anterior, es posible visualizar claramente a través de los puntos trazados los diversos puntos de voltaje coincidentes o superpuestos de las dos señales durante un período de tiempo dado. El eje horizontal muestra el período de tiempo de la forma de onda, mientras que el eje vertical muestra los niveles de voltaje de 2 simultáneamente, la forma de onda superpuesta. La figura nos informa cómo responderá el amplificador operacional a los niveles de voltaje instantáneos coincidentes mostrados de las dos señales y producirá un PWM sinusoidal que cambia correspondientemente en su salida. Un amplificador operacional (amplificador operacional) simplemente compara los niveles de voltaje de una onda triangular rápida que cambia instantáneamente una onda sinusoidal (también puede ser una onda triangular), y comprueba los casos en que el voltaje de la forma de onda triangular puede ser menor que el voltaje de la onda sinusoidal y responde Inmediatamente cree una alta lógica en sus salidas.
Esto se mantiene siempre que la onda potencial del triángulo continúe siendo más baja que el potencial de la onda sinusoidal, y el momento en que se detecta que el potencial de la onda sinusoidal es menor que el potencial instantáneo de la onda del triángulo, las salidas regresan con un mínimo y resisten hasta que la situación se repita.
Esta comparación continua de los niveles de potencial instantáneo de dos formas de onda superpuestas en las dos entradas de los amplificadores operacionales conduce a la creación de PWM que cambian correspondientemente, que pueden repetir con precisión la forma sinusoidal aplicada a la entrada no inversora del amplificador operacional.
Amplificador operacional y SPWM
La siguiente figura muestra modelado la operación anterior:
Aquí podemos observar cómo se implementa en la práctica, y así es como el amplificador operacional hará lo mismo (aunque a una velocidad mucho mayor, en la MS).
La operación es bastante obvia y muestra claramente cómo el amplificador operacional debe procesar la onda sinusoidal PWM al comparar dos señales que cambian simultáneamente en sus entradas, como se describe en las secciones anteriores.
De hecho, el amplificador operacional procesará el PWM sinusoidal con mucha más precisión que la simulación mostrada anteriormente, puede ser 100 veces mejor, creando un PWM extremadamente uniforme y bien medido que coincide con la muestra suministrada. Onda sinusoidal.
Arduino inversor dos circuitos
lista de partes
Todas las resistencias de 1/4 vatios, 5% CFR
• 10K = 4
• 1K = 2
• BC547 = 4 piezas
• MOSFETs IRF540 = 2 piezas
• Arduino UNO = 1
• Transformador = 9-0-9V / 220V / 120V.
• Batería = 12V
Todas las resistencias de 1/4 vatios, 5% CFR
• 10K = 4
• 1K = 2
• BC547 = 4 piezas
• MOSFETs IRF540 = 2 piezas
• Arduino UNO = 1
• Transformador = 9-0-9V / 220V / 120V.
• Batería = 12V
El diseño es realmente muy simple, como se muestra en la siguiente figura.
Pin # 8 y pin # 9 crean PWM alternativamente y cambian Mosfets con el mismo PWM.
Mosfet, a su vez, induce una forma de onda SPWM altamente actual en el transformador, utilizando la potencia de la batería, haciendo que el transformador secundario produzca una forma de onda idéntica.
El circuito inversor Arduino propuesto puede actualizarse a cualquier nivel de potencia superior preferido simplemente reemplazando los Mosfets y el transformador, respectivamente, como alternativa, también puede convertir esto en un inversor de onda sinusoidal de puente completo o de puente H
Arduino Board Power
Imágenes de forma de onda para Arduino SPWM
Dado que el Arduino producirá una salida de 5V, esto puede no ser ideal para controlar directamente los transistores MOS.
Por lo tanto, es necesario elevar el nivel de luz estroboscópica a 12V para que los Mosfets funcionen correctamente sin dispositivos de calentamiento.
Para asegurarse de que Mosfety no se inicia cuando Arduino se inicia o se inicia, debe agregar el siguiente generador de retardo y conectarlo a la base de los transistores BC547. Esto protegerá a Mosfets y evitará que se quemen durante un interruptor de encendido y cuando Arduino arranque.
Agregar un regulador de voltaje automático
Al igual que en cualquier otro inversor, a la salida de este diseño, la corriente puede alcanzar límites inseguros cuando la batería está completamente cargada.
Para controlar esto, agregue un regulador de voltaje automático.
Los colectores BC547 deben conectarse a las bases del par izquierdo BC547, que están conectados al Arduino a través de resistencias de 10K.
La segunda versión del inversor con el chip sn7404 / k155ln1
Importante:
Para evitar un encendido accidental antes de cargar el Arduino, se puede incluir un retraso simple en el circuito del temporizador en el diseño anterior, como se muestra a continuación:
Código del programa:
/ *
Este código se basó en el código Swagatam SPWM con cambios realizados para eliminar errores. Use este código como usaría cualquier otro trabajo de Swagatam.
Riesgo Atton 2017
* /
const int sPWMArray [] = {500,500,750,500,1250,500,2000,500,1250,500,750,500,500}; // Esta es la matriz con los valores SPWM cámbielos a voluntad
const int sPWMArrayValues = 13; // Necesitas esto ya que C no te da la longitud de una matriz
// Los alfileres
const int sPWMpin1 = 10;
const int sPWMpin2 = 9;
// El pin cambia
bool sPWMpin1Status = verdadero;
bool sPWMpin2Status = verdadero;
configuración nula ()
{
pinMode (sPWMpin1, OUTPUT);
pinMode (sPWMpin2, OUTPUT);
}
bucle vacío ()
{
// Bucle para el pin 1
para (int i (0); i! = sPWMArrayValues; i ++)
{
if (sPWMpin1Status)
{
digitalWrite (sPWMpin1, HIGH);
delayMicroseconds (sPWMArray [i]);
sPWMpin1Status = falso;
}
otra cosa
{
digitalWrite (sPWMpin1, LOW);
delayMicroseconds (sPWMArray [i]);
sPWMpin1Status = verdadero;
}
}
// Bucle para el pin 2
para (int i (0); i! = sPWMArrayValues; i ++)
{
if (sPWMpin2Status)
{
digitalWrite (sPWMpin2, HIGH);
delayMicroseconds (sPWMArray [i]);
sPWMpin2Status = falso;
}
otra cosa
{
digitalWrite (sPWMpin2, LOW);
delayMicroseconds (sPWMArray [i]);
sPWMpin2Status = verdadero;
}
}
}
Buena suerte