Inhaltsverzeichnis:
- Schritt 1: Generieren des PWM-Signals für 50Hz
- Schritt 2: Arduino-Programm für variable Einschaltdauer
- Schritt 3: Abwechselnd mit 50Hz Arduino Pins
- Schritt 4: Fahren einer H-Brücke und Filtern des PWM-Signals
Video: Arduino Sinewave für Wechselrichter - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
In diesem Projekt habe ich ein SPWM-Signal (sine wave pulse wide modulated) aus zwei Arduino-PWM-Digitalausgängen generiert.
Um ein solches Programm zu erstellen, muss ich über viele andere Funktionen und Eigenschaften des Arduino sprechen. Das gesamte Projekt einschließlich Oszilloskopbilder und für verschiedene Frequenzen besuchen Sie bitte meine Website:
eprojectszone
Schritt 1: Generieren des PWM-Signals für 50Hz
Um ein 50Hz-Signal mit einer höheren Frequenz zu erzeugen, sind einige Berechnungen erforderlich. Frequenzen von Arduino können bei 8 MHz liegen, aber wir wollen ein Signal mit variablem Tastverhältnis.
Um die Arten der variablen Arbeitszyklen von Arduino zu verstehen, können Sie diese 3 Teile desselben Beitrags 1, 2 und 3 lesen.
Nehmen wir an, unsere Frequenz beträgt 50 Hz, was bedeutet, dass die Zeitspanne 20 ms beträgt. 10ms ist also eine Halbzyklusperiode. In diesen 10 ms müssen wir viele Impulse mit unterschiedlichen Tastverhältnissen haben, beginnend mit kleinen Tastverhältnissen, in der Mitte des Signals haben wir maximale Tastverhältnisse und enden auch mit kleinen Tastverhältnissen. Um eine Sinuswelle zu erzeugen, verwenden wir zwei Pins, einen für positive Halbwelle und eine für negative Halbwelle. In unserem Beitrag verwenden wir dafür die Pins 5 und 6, das heißt Timer 0.
Für ein glattes Signal wählen wir phasenkorrektes PWM bei einer Frequenz von 31372 Hz - siehe vorheriger Beitrag. Eines der größten Probleme besteht darin, wie wir das erforderliche Tastverhältnis für jeden Impuls berechnen. Da unsere Frequenz f = 31372 Hz beträgt, beträgt die Periode für jeden Impuls T = 1/31372 = 31,8 us, die Anzahl der Impulse für einen Halbzyklus beträgt also N = 10 ms / 31,8 us = 314 Impulse. Um nun das Tastverhältnis für jeden Impuls zu berechnen, haben wir y = sinx, aber in dieser Gleichung brauchen wir Grad, so dass der halbe Zyklus 180 Grad für 314 Impulse hat. Für jeden Puls haben wir 180/314 = 0,57 Grad/Puls. Das heißt für jeden Puls bewegen wir uns mit 0,57deg vorwärts.
y ist das Tastverhältnis und x der Wert der Position im halben Tastverhältnis. Zuerst ist x 0, danach x=0.57, x=1.14 und so weiter bis x= 180.
Wenn wir alle 314 Werte berechnen, erhalten wir ein Array 314 Elemente (Typ "int", um von Arduino einfacher berechnet zu werden).
Ein solches Array ist:
int sinPWM={1, 2, 5, 7, 10, 12, 15, 17, 19, 22, 24, 27, 30, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 61, 64, 66, 69, 71, 73, 76, 78, 80, 83, 85, 88, 90, 92, 94, 97, 99, 101, 103, 106, 108, 110, 113, 115, 117, 119, 121, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 169, 171, 173, 175, 177, 178, 180, 182, 184, 185, 187, 188, 190, 192, 193, 195, 196, 198, 199, 201, 202, 204, 205, 207, 208, 209, 211, 212, 213, 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 237, 238, 239, 240, 240, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, 247, 248, 248, 248, 248, 249, 249, 249, 249, 249, 250, 250, 250, 250, 249, 249, 249, 249, 249, 248, 248, 248, 248, 247, 247, 247, 246, 246, 245, 245, 244, 244, 243, 243, 242, 242, 241, 240, 240, 239, 238, 237, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 217, 21 6, 215, 213, 212, 211, 209, 208, 207, 205, 204, 202, 201, 199, 198, 196, 195, 193, 192, 190, 188, 187, 185, 184, 182, 180, 178, 177, 175, 173, 171, 169, 168, 166, 164, 162, 160, 158, 156, 154, 152, 150, 148, 146, 144, 142, 140, 138, 136, 134, 132, 130, 128, 126, 124, 121, 119, 117, 115, 113, 110, 108, 106, 103, 101, 99, 97, 94, 92, 90, 88, 85, 83, 80, 78, 76, 73, 71, 69, 66, 64, 61, 59, 57, 54, 52, 49, 47, 44, 42, 39, 37, 34, 32, 30, 27, 24, 22, 19, 17, 15, 12, 10, 7, 5, 2, 1};
Sie können sehen, dass das Tastverhältnis wie bei einer Sinuswelle am ersten und letzten Element am niedrigsten und in der Mitte am höchsten ist.
Schritt 2: Arduino-Programm für variable Einschaltdauer
Im obigen Bild haben wir Signale mit variablem Tastverhältnis mit Werten aus dem Array.
Aber wie macht man ein solches Signal??
der folgende Teil des Programms verwendet Interrupts, um die Werte der Arbeitszyklen zu ändern
sei(); // Unterbrechungen aktivieren
}
ISR(TIMER1_COMPA_vect){// Interrupt, wenn Timer 1 mit dem OCR1A-Wert übereinstimmt
if(i>313 && OK==0){// Endwert vom Vektor für Pin 6
i=0; // gehe zum ersten Wert des Vektors (Array)
OK=1; // Pin 5 aktivieren
}
x=sinPWM;// x nehme den Wert vom Vektor entsprechend der Position i(i ist null indiziert)-Wert des Tastverhältnisses
i=i+1;// gehe zur nächsten Position
}
Schritt 3: Abwechselnd mit 50Hz Arduino Pins
Da jeder Pin nur ein halbes Tastverhältnis erzeugt, um eine volle Sinuswelle zu erzeugen, verwenden wir zwei Pins, die sich nach genau 10 ms (für 50 Hz) nacheinander abwechseln. Diese Änderung der Pins erfolgt am Ende des Arrays - nachdem Pin 5 314 Impulse erzeugt hat, wird dieser Pin ausgeschaltet und Pin 6 aktiviert, was dasselbe macht, außer für den negativen Arbeitszyklus.
Da Arduino nur positive Signale erzeugen kann, wird ein negatives Tastverhältnis in der h-Brücke gemacht - Sie können hier darüber lesen
Das Programm zum Pinwechsel:
sei(); // Unterbrechungen aktivieren
}
ISR(TIMER1_COMPA_vect){// Interrupt, wenn Timer 1 mit dem OCR1A-Wert übereinstimmt
if(i>313 && OK==0){// Endwert vom Vektor für Pin 6
i=0; // gehe zum ersten Wert des Vektors
OK=1; // Pin 5 aktivieren
}
if(i>313 && OK==1){// Endwert vom Vektor für Pin 5
i=0; // gehe zum ersten Wert des Vektors
OK=0; // Pin 6 aktivieren
}
x=sinPWM; // x nimm den Wert aus dem Vektor, der der Position i entspricht (i ist null indiziert)
i=i+1;// gehe zur nächsten Position
wenn(OK==0){
OCR0B = 0; // Pin 5 0 machen
OCR0A=x; // Pin 6 auf entsprechenden Arbeitszyklus aktivieren
wenn(OK==1){
OCR0A=0; // Pin 6 0 machen
OCR0B=x; // Pin 5 auf entsprechenden Arbeitszyklus aktivieren
}
}
Schritt 4: Fahren einer H-Brücke und Filtern des PWM-Signals
Die von Arduino erhaltenen Signale sind der Steuerteil für Wechselrichteranwendungen, da beide positiv sind. Um eine volle Sinuswelle und einen praktischen Wechselrichter zu erzeugen, müssen wir eine h-Brücke und zum Löschen des PWM einen Tiefpassfilter verwenden.
Die H-Brücke wird hier vorgestellt.
Der Tiefpassfilter mit kleinen AC-Motoren getestet - hier.
Empfohlen:
220V DC zu 220V AC: DIY Wechselrichter Teil 2: 17 Schritte
220V DC bis 220V AC: DIY Wechselrichter Teil 2: Hallo zusammen. Ich hoffe ihr seid alle sicher und bleibt gesund. In diesem anweisbaren zeige ich Ihnen, wie ich diesen DC-AC-Wandler gemacht habe, der 220V DC-Spannung in 220V AC-Spannung umwandelt. Die hier erzeugte AC-Spannung ist ein Rechtecksignal und kein Pur
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i
Wie baue ich einen Wechselrichter zu Hause?: 7 Schritte
Wie baut man einen Wechselrichter zu Hause?: Notwendige Hardwarekomponenten12 V BatterieWiderstand 100W x2Widerstand 1,2kW x1Widerstandstrimmer100kW x1Rote LED x1MOSFET T
So machen Sie den klassischen Wechselrichter 110 V oder 220 V zu Hause – wikiHow
Wie man den klassischen Wechselrichter 110v oder 220v zu Hause herstellt: Hallo Freunde, ich werde heute vorstellen, wie man einen einfachen Wechselrichter namens "den klassischen Wechselrichter" herstellt, den jeder zu Hause mit einigen Komponenten machen kann, die billig und leicht zu finden sind und keine besonderen Fähigkeiten haben benötigt.Dies ist der einfachste Wechselrichter DI
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für 0 $.: 9 Schritte
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für $ 0.: In diesem anweisbaren werde ich Sie durch die Reparatur eines toten LCD-Hintergrundlicht-Wechselrichters mit den Teilen führen, die Sie haben. Sie können feststellen, ob Sie ein totes Gegenlicht haben, indem Sie zuerst andere Möglichkeiten ausschließen. Monitor auf mehreren Computern überprüfen. Stellen Sie sicher, dass