Inverter 12 -220 volt su seno puro Arduino con codice programma completo.
teoria
Raggiungere un'uscita sinusoidale è abbastanza difficile e non può essere raccomandato per gli inverter, perché elettronico ai dispositivi di solito non piacciono le correnti o le tensioni che aumentano esponenzialmente. Poiché gli inverter sono prodotti principalmente utilizzando dispositivi elettronici a stato solido, viene solitamente eliminata una forma d'onda sinusoidale.
I dispositivi elettronici di potenza quando si lavora con onde sinusoidali danno risultati inefficaci, poiché i dispositivi, di regola, sono riscaldati rispetto agli impulsi rettangolari.
Pertanto, l'opzione migliore per implementare un'onda sinusoidale su un inverter è PWM, che significa modulazione della larghezza di impulso o PWM.
PWM è un modo migliorato (versione digitale) dell'esposizione esponenziale della forma d'onda attraverso larghezze d'impulso quadrate proporzionalmente variabili, il cui valore netto viene calcolato esattamente in base al valore netto della forma d'onda esponenziale selezionata, qui il valore "puro" si riferisce al valore RMS. Pertanto, la PWM calcolata con riferimento a una determinata onda sinusoidale può essere utilizzata come equivalente ideale per la replica di una determinata onda sinusoidale. Inoltre, i PWM saranno idealmente compatibili con i dispositivi elettronici di alimentazione (mosfet, BJT, IGBTS) e ne consentiranno l'utilizzo con un calore minimo.
Che cos'è SPWM?
Il metodo più comune è produrre un sinusoidale PWM (sinusoidale) o SPWM, applicando diversi segnali esponenzialmente variabili all'ingresso di un amplificatore operazionale per l'elaborazione necessaria. Tra i due segnali di ingresso, uno dovrebbe avere una frequenza molto più elevata rispetto all'altro.
Utilizzando due segnali di ingresso
Come menzionato nella sezione precedente, la procedura prevede la fornitura di due segnali a variazione esponenziale agli ingressi dell'amplificatore operazionale.
Qui, l'amplificatore operazionale è configurato come un tipico comparatore, quindi possiamo presumere che l'amplificatore operazionale inizierà immediatamente a confrontare i livelli di tensione istantanea di questi due segnali sovrapposti nel momento in cui compaiono o vengono applicati ai suoi ingressi.
Affinché l'amplificatore operazionale possa implementare correttamente il PWM sinusoidale necessario alla sua uscita, è necessario che uno dei segnali abbia una frequenza molto più elevata dell'altro. La frequenza più lenta qui è quella che dovrebbe essere l'onda sinusoidale del campione, che dovrebbe essere simulata (replicata) dai PWM.
Idealmente, entrambi i segnali dovrebbero essere sinusoidali (uno con una frequenza più alta dell'altro), tuttavia, lo stesso può essere realizzato includendo un'onda triangolare (alta frequenza) e un'onda sinusoidale (onda selettiva con una bassa frequenza). Come si può vedere nelle immagini seguenti, il segnale ad alta frequenza viene invariato invariato all'ingresso invertente (-) dell'amplificatore operazionale, mentre un altro segnale sinusoidale più lento viene fornito all'ingresso non invertente (+) dell'amplificatore operazionale. Nel peggiore dei casi, entrambi i segnali possono essere onde triangolari con livelli di frequenza raccomandati, come descritto sopra. Tuttavia, questo aiuterà a raggiungere un equivalente ragionevolmente buono dell'onda sinusoidale PWM.
Un segnale con una frequenza più alta è chiamato segnale portante, mentre un segnale di campionamento più lento è chiamato ingresso modulante.
Crea SPWM con un'onda triangolare e tendinea
Facendo riferimento alla figura sopra, è possibile visualizzare chiaramente attraverso i punti tracciati i vari punti di tensione coincidenti o sovrapposti dei due segnali per un determinato periodo di tempo. L'asse orizzontale mostra il periodo di tempo della forma d'onda, mentre l'asse verticale mostra i livelli di tensione di 2 in esecuzione simultaneamente, la forma d'onda sovrapposta. La figura ci informa come l'amplificatore operazionale risponderà ai livelli di tensione istantanea coincidenti mostrati dei due segnali e produrrà un PWM sinusoidale che cambia di conseguenza alla sua uscita. Un amplificatore operazionale (op-amp) confronta semplicemente i livelli di tensione di un'onda triangolare veloce che cambia istantaneamente un'onda sinusoidale (può anche essere un'onda triangolare) e verifica i casi in cui la tensione della forma d'onda triangolare può essere inferiore alla tensione dell'onda sinusoidale e risponde crea immediatamente una logica elevata sulle tue uscite.
Questo viene mantenuto fintanto che l'onda potenziale del triangolo continua ad essere inferiore al potenziale dell'onda sinusoidale e nel momento in cui viene rilevato che il potenziale dell'onda sinusoidale è inferiore al potenziale istantaneo dell'onda del triangolo, le uscite ritornano al minimo e resistono fino a quando la situazione si ripete.
Questo confronto continuo dei livelli di potenziale istantaneo di due forme d'onda sovrapposte ai due ingressi degli amplificatori operazionali porta alla creazione di PWM che cambiano di conseguenza, in grado di ripetere con precisione la forma sinusoidale applicata all'ingresso non invertente dell'amplificatore operazionale.
Amplificatore operativo e SPWM
La figura seguente mostra modellismo l'operazione sopra:
Qui possiamo osservare come è implementato nella pratica, ed è così che l'amplificatore operazionale farà lo stesso (anche se a una velocità molto più elevata, nella SM).
L'operazione è abbastanza ovvia e mostra chiaramente come l'amplificatore operazionale dovrebbe elaborare l'onda sinusoidale PWM confrontando due segnali che cambiano simultaneamente ai suoi ingressi, come descritto nelle sezioni precedenti.
Infatti, l'amplificatore operazionale elaborerà il PWM sinusoidale in modo molto più accurato rispetto alla simulazione mostrata sopra, può essere 100 volte migliore, creando un PWM estremamente uniforme e ben misurato che corrisponde al campione fornito. Onda sinusoidale.
Arduino inverter a due circuiti
elenco delle parti
Tutti i resistori da 1/4 Watt, 5% CFR
• 10K = 4
• 1K = 2
• BC547 = 4 pezzi
• MOSFET IRF540 = 2 pezzi
• Arduino UNO = 1
• Trasformatore = 9-0-9 V / 220 V / 120 V.
• Batteria = 12V
Tutti i resistori da 1/4 Watt, 5% CFR
• 10K = 4
• 1K = 2
• BC547 = 4 pezzi
• MOSFET IRF540 = 2 pezzi
• Arduino UNO = 1
• Trasformatore = 9-0-9 V / 220 V / 120 V.
• Batteria = 12V
Il design è in realtà molto semplice, come mostrato nella figura seguente.
Il pin n. 8 e il pin n. 9 creano PWM alternativamente e scambiano Mosfet con lo stesso PWM.
Mosfet, a sua volta, induce una forma d'onda SPWM ad alta corrente sul trasformatore, sfruttando la potenza della batteria, facendo sì che il trasformatore secondario produca una forma d'onda identica.
Il circuito di inverter Arduino proposto può essere aggiornato a qualsiasi livello di potenza superiore preferito semplicemente sostituendo i Mosfet e il trasformatore, rispettivamente, in alternativa, è anche possibile convertirlo in un inverter a onda sinusoidale full bridge o H-bridge
Potenza scheda Arduino
Immagini delle forme d'onda per Arduino SPWM
Poiché Arduino produrrà un'uscita 5V, questo potrebbe non essere ideale per il controllo diretto dei transistor MOS.
Pertanto, è necessario aumentare il livello di lampeggiamento a 12V in modo che i Mosfet funzionino correttamente senza riscaldare i dispositivi.
Per assicurarsi che Mosfety non si avvii all'avvio o all'avvio di Arduino, è necessario aggiungere il seguente generatore di ritardo e collegarlo alla base dei transistor BC547, in modo da proteggere i Mosfet e impedire che si brucino durante un interruttore di alimentazione e all'avvio di Arduino.
Aggiunta di un regolatore di tensione automatico
Proprio come su qualsiasi altro inverter, all'uscita di questo design, la corrente può salire a limiti non sicuri quando la batteria è completamente carica.
Per controllarlo, aggiungi un regolatore di tensione automatico.
I collettori BC547 devono essere collegati alle basi della coppia BC547 sinistra, che sono collegati all'Arduino tramite resistori da 10K.
La seconda versione dell'inverter che utilizza il chip sn7404 / k155ln1
È importante:
Per evitare l'accensione accidentale prima di caricare Arduino, un semplice ritardo nel circuito del timer può essere incluso nel design sopra, come mostrato di seguito:
Codice programma:
/ *
Questo codice si basava sul codice Swagatam SPWM con le modifiche apportate per rimuovere gli errori. Usa questo codice come faresti con qualsiasi altra opera di Swagatam.
Atton risk 2017
* /
const int sPWMArray [] = {500.500.750.500,1250.500.200.000.500,1250.500.750.500.500}; // Questo è l'array con i valori SPWM che li cambiano a piacimento
const int sPWMArrayValues = 13; // Ne hai bisogno poiché C non ti fornisce la lunghezza di un array
// I pin
const int sPWMpin1 = 10;
const int sPWMpin2 = 9;
// Il pin commuta
bool sPWMpin1Status = true;
bool sPWMpin2Status = true;
void setup ()
{
pinMode (sPWMpin1, OUTPUT);
pinMode (sPWMpin2, OUTPUT);
}
void loop ()
{
// Loop per pin 1
per (int i (0); i! = sPWMArrayValues; i ++)
{
if (sPWMpin1Status)
{
digitalWrite (sPWMpin1, HIGH);
delayMicroseconds (sPWMArray [i]);
sPWMpin1Status = false;
}
altro
{
digitalWrite (sPWMpin1, LOW);
delayMicroseconds (sPWMArray [i]);
sPWMpin1Status = true;
}
}
// Loop per pin 2
per (int i (0); i! = sPWMArrayValues; i ++)
{
if (sPWMpin2Status)
{
digitalWrite (sPWMpin2, HIGH);
delayMicroseconds (sPWMArray [i]);
sPWMpin2Status = false;
}
altro
{
digitalWrite (sPWMpin2, LOW);
delayMicroseconds (sPWMArray [i]);
sPWMpin2Status = true;
}
}
}
Buona fortuna