Το κύκλωμα μετατροπέα ημιτονοειδούς κύματος H-Bridge χρησιμοποιώντας Arduino

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Κατανόηση του σχεδιασμού του κυκλώματος

Εάν δεν θέλετε να διαβάσετε ολόκληρη την εξήγηση, μπορείτε να παρακολουθήσετε αυτό το βίντεο αντ 'αυτού:

  Προειδοποιητικό μήνυμα: Η ηλεκτρική ενέργεια είναι επικίνδυνη, προχωρήστε με προσοχή

Τώρα ας δούμε το διάγραμμα κυκλώματος παρακάτω και να μάθετε πώς λειτουργεί αυτό το πράγμα. Βλέπουμε τα ακόλουθα κύρια μέρη στο κύκλωμα:



  Arduino Sine Wave Full Bridge Inverter Circuit Diagram

Arduino board - Αυτός είναι ο εγκέφαλός μας. Παρέχει παλμούς SPWM που αποφασίζουν πώς θα τρέξει το κύκλωμα μας.

IR2110 Οδηγός MOSFET ICS (IC1 και IC2) -Αυτές οι συσκευές λαμβάνουν τα τυπικά σήματα SPWM από το Arduino και τα κάνουν συμβατά για να αλλάξουν σωστά τα MOSFETs 4 N-Channel H-Bridge, χρησιμοποιώντας τη μέθοδο εκκίνησης.



MOSFETS (Q1, Q2, Q3, Q4) - Αυτοί είναι οι διακόπτες τροφοδοσίας. Ενεργοποιούν και απενεργοποιούν την ισχύ DC με συγκεκριμένο τρόπο για να δημιουργήσουν AC στην έξοδο.

Δίοδοι (1N4007) και πυκνωτές - Αυτά είναι για τη δυνατότητα στη σωστή λειτουργία του δικτύου bootstrapping του ICS για τέλεια αλλαγή των 4 MOSFETs.

Άλλοι πυκνωτές και αντιστάσεις - Αυτά είναι μικρά αλλά πολύ σημαντικά επειδή κρατούν τα πάντα ομαλά.

Τροφοδοσία - Χρειαζόμαστε +12V και +5V για το Arduino και το IR2110 ICS και μια υψηλή τάση DC για τα MOSFETs, σύμφωνα με τις προδιαγραφές φορτίου.

Τι συμβαίνει στο κύκλωμα;

Τώρα ας δούμε πώς λειτουργεί αυτό βήμα προς βήμα:

Το Arduino παράγει σήματα SPWM σε δύο ακίδες εξόδου (PIN 8 και PIN 9). Αυτά τα σήματα συνεχίζουν να αλλάζουν το πλάτος για να δημιουργήσουν ένα σχήμα ισοδύναμο με ένα ημιτονοειδές κύμα AC.

Το IR2110 ICS λαμβάνει αυτά τα σήματα PWM και τα χρησιμοποιήστε για να ενεργοποιήσετε και να απενεργοποιήσετε τα mosfets με πολύ συγκεκριμένο τρόπο.

Το H-Bridge που κατασκευάστηκε χρησιμοποιώντας τέσσερα MOSFETs μετατρέπει την παροχή διαύλου DC σε έξοδο τύπου AC μεταβάλλοντας την τρέχουσα κατεύθυνση μέσω του φορτίου χρησιμοποιώντας τη μεταγωγή SPWM.

Στην έξοδο έχουμε μια προσέγγιση ημιτονοειδούς κύματος που σημαίνει ότι μοιάζει με ένα ημιτονοειδές κύμα, αλλά είναι πραγματικά κατασκευασμένο από παλμούς ταχείας μεταγωγής.

Εάν προσθέσουμε ένα κύκλωμα φίλτρου στην έξοδο τότε μπορούμε να εξομαλύνουμε αυτούς τους παλμούς και να πάρουμε ένα πιο τέλειο ημιτονοειδές κύμα.

Ο κώδικας Arduino για το Sine Wave PWM

Τώρα λοιπόν ας δούμε τον κωδικό. Αυτό θα τρέξει το Arduino για να δημιουργήσει τα σήματα SPWM.

835EA9484999CA2B1A94FC3D1BB3E885B51FF2262

Τι συμβαίνει σε αυτόν τον κωδικό;

Πρώτα δημιουργήσαμε δύο ακίδες εξόδου (PIN 8 και PIN 9). Αυτά θα στείλουν τα σήματα PWM.

Στη συνέχεια, στο βρόχο ενεργοποιούμε και απενεργοποιούμε το πείρο σε ένα ειδικό μοτίβο.

Ξεκινάμε με στενούς παλμούς και αυξάνουμε σταδιακά το πλάτος του παλμού και στη συνέχεια το μειώνουμε πίσω. Αυτό δημιουργεί ένα βήμα Sine Wave PWM μοτίβο.

Μετά το πρώτο εξάμηνο κύκλο γίνεται, τότε επαναλαμβάνουμε το ίδιο πράγμα στον άλλο ακροδέκτη (PIN 9) για τον επόμενο κύκλο.

Με αυτόν τον τρόπο το H-Bridge μας μετατρέπει τα MOSFETs σε ένα κατάλληλο ημιτονοειδές κύμα όπως η μόδα.

Τι είναι καλό για αυτό το σχέδιο

Ο σχεδιασμός είναι πραγματικά πολύ απλός. Χρησιμοποιούμε μόνο ένα Arduino και μερικά κοινά συστατικά.

Δεν χρειαζόμαστε μια γεννήτρια ημιτονοειδών κυμάτων εδώ, σωστά. Το ίδιο το Arduino κάνει το σχήμα ημιτονοειδούς χρησιμοποιώντας το SPWM.

Το H-Bridge λειτουργεί αποτελεσματικά χρησιμοποιώντας το IR2110 ICS για να βεβαιωθείτε ότι οι MOSFETs διακόπτουν σωστά χωρίς υπερθέρμανση.

Μπορούμε να συντονίσουμε εύκολα το SPWM, σε περίπτωση που θέλουμε μια διαφορετική συχνότητα ημιτονοειδούς κύματος, τότε απλά τροποποιούμε λίγο τον κώδικα.

Πώς πρέπει να χειριστούμε την καθυστέρηση εκκίνησης Arduino

Τώρα ένα πολύ σημαντικό πράγμα που πρέπει να καταλάβουμε είναι ότι ο Arduino χρειάζεται κάποιο χρόνο για να ξεκινήσει αφού ενεργοποιήσουμε την ισχύ.

Αυτό συμβαίνει επειδή όταν τροφοδοτούμε το Arduino τότε τρέχει για πρώτη φορά το εσωτερικό του bootloader που διαρκεί μερικά δευτερόλεπτα.

Έτσι, κατά τη διάρκεια αυτής της περιόδου ο οδηγός IR2110 GATE ICS και τα MOSFETs ενδέχεται να μην λάβουν τα κατάλληλα σήματα από το Arduino.

Εάν συμβεί αυτό, τότε τα MOSFETs μπορούν να ενεργοποιηθούν τυχαία, γεγονός που μπορεί να βλάψει αμέσως το ICS ή να προκαλέσει βραχυκύκλωμα ή έκρηξη.

Προκειμένου να βεβαιωθείτε ότι η παραπάνω καθυστέρηση εκκίνησης δεν καίει το ICS και τα MOSFETs κατά τη διάρκεια της αρχικής ισχύος, πρέπει να τροποποιήσουμε τον παραπάνω κώδικα όπως φαίνεται παρακάτω:

// By Swagatam - Full Bridge Sine Wave Inverter Code with Delay
void setup() {
    pinMode(8, OUTPUT);
    pinMode(9, OUTPUT);
    
    delay(3000); // Booting delay (wait for 3 seconds before starting)
}
void loop() {
    // First pin (8) switching pattern
    digitalWrite(8, HIGH);
    delayMicroseconds(500);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(750);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(1250);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(2000);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(1250);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(750);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(500);
    digitalWrite(8, LOW);
    // Second pin (9) switching pattern
    digitalWrite(9, HIGH);
    delayMicroseconds(500);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(750);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(1250);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(2000);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(1250);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(750);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(500);
    digitalWrite(9, LOW);
}

Λίστα ανταλλακτικών

Arduino board Arduino Uno (ή οποιοδήποτε συμβατό πίνακα) 1
Οδηγός MOSFET IC IR2110 High & Low Side Driver 2
Μοτσέτς IRF3205 (ή παρόμοιο κανάλι Ν) 4
Διόδους 1N4007 (για bootstrap & προστασία) 4
Αντιστάσεις 1kΩ 1/4W (Pull-Down Gate Down) 4
Αντιστάσεις 150Ω 1/4W (αντίσταση σειράς MOSFET GATE) 4
Πυκνωτής 100NF (πυκνωτής bootstrap) 2
Πυκνωτής 22UF 25V (φίλτρο τροφοδοσίας) 2
Φορτίο Οποιοδήποτε αντίστοιχο ή επαγωγικό φορτίο 1
Τροφοδοσία +12V DC (για MOSFETS) & +5V DC (για Arduino) 1
Καλώδια και συνδετήρες Κατάλληλο για συνδέσεις κυκλώματος Όπως απαιτείται

Συμβουλές κατασκευής

Τώρα, όταν χτίζουμε πραγματικά αυτό το πράγμα πρέπει να είμαστε πολύ προσεκτικοί για μερικά σημαντικά πράγματα. Διαφορετικά μπορεί να μην λειτουργεί ή χειρότερα, κάτι μπορεί να καεί σωστά; Έτσι, εδώ είναι μερικές εξαιρετικά σημαντικές συμβουλές κατασκευής που πρέπει να ακολουθήσουμε:

Πώς πρέπει να κανονίσουμε τα μέρη στο διοικητικό συμβούλιο

Εάν χρησιμοποιούμε ένα breadboard τότε αυτό το κύκλωμα μπορεί να μην λειτουργεί καλά επειδή τα MOSFET και οι οδηγοί υψηλής ισχύος χρειάζονται ισχυρές, συμπαγείς συνδέσεις.

Επομένως, πρέπει να χρησιμοποιήσουμε ένα PCB (πίνακα τυπωμένων κυκλωμάτων) ή τουλάχιστον ένα perf board και να συγκολλήσουμε σωστά τα μέρη.

Εάν κάνουμε ένα PCB τότε πρέπει να κρατήσουμε τα MOSFETs και IR2110 ICS κοντά, έτσι ώστε τα σήματα να μην γίνονται αδύναμα ή καθυστερημένα.

Τα παχιά καλώδια θα πρέπει να πηγαίνουν για διαδρομές υψηλού ρεύματος, όπως από την τροφοδοσία ρεύματος στα MOSFETs και από τα MOSFETs μέχρι το φορτίο.

Τα λεπτά καλώδια μπορούν να χρησιμοποιηθούν μόνο για συνδέσεις σήματος όπως από το Arduino έως το IR2110 ICS.

Πώς πρέπει να τοποθετήσουμε τα mosfets

Τα τέσσερα MOSFETs θα πρέπει να τοποθετηθούν σε ένα σωστό σχήμα H-γέφυρας έτσι ώστε η καλωδίωση να μην γίνει ακατάστατη.

Κάθε MOSFET θα πρέπει να έχει σύντομες και παχές συνδέσεις στο IR2110 IC.

Εάν τοποθετήσουμε τα MOSFETs πολύ μακριά από το IR2110, τότε τα σήματα μπορεί να γίνουν αδύναμα και τα MOSFETs να μην αλλάζουν σωστά.

Εάν συμβεί αυτό, τα MOSFETs μπορούν να ζεσταίνουν και ακόμη και να καούν.

Πώς πρέπει να διορθώσουμε το πρόβλημα θερμότητας

Εάν χρησιμοποιούμε MOSFETs IRF3205 ή παρόμοια, τότε θα ζεσταθούν αν δεν τους δώσουμε μια ψύκτρα.

Πρέπει λοιπόν να διορθώσουμε μια μεγάλη ψύκτρα αλουμινίου στα MOSFETs για να τα κρατήσουμε δροσερά.

Εάν κάνουμε έναν μετατροπέα υψηλής ισχύος (περισσότερο από 100W) τότε θα πρέπει επίσης να επισυνάψουμε έναν ανεμιστήρα ψύξης στη ψύξη.

Εάν τα MOSFETs πάνε πολύ ζεστά για να αγγίξουν τότε σημαίνει ότι υπάρχει κάποιο πρόβλημα και πρέπει να ελέγξουμε ξανά το κύκλωμα.

Πώς πρέπει να τροφοδοτήσουμε το κύκλωμα

Το τμήμα Arduino τρέχει στο 5V και οι MOSFETs χρειάζονται 12V ή περισσότερο για να εργαστούν.

Γι 'αυτό δεν πρέπει ποτέ να συνδέσουμε 12V με Arduino, ή θα καεί αμέσως!

Το IR2110 ICS χρειάζεται δύο τροφοδοτικά:

12V για τα mosfets υψηλής πλευράς

5V για την ενότητα Λογικής

Εάν ανακατεύουμε αυτές τις γραμμές ηλεκτρικής ενέργειας τότε το κύκλωμα δεν θα λειτουργήσει σωστά και τα MOSFET δεν θα αλλάξουν σωστά.

Πώς πρέπει να συνδέσουμε τα καλώδια

Η σύνδεση εδάφους (GND) είναι εξαιρετικά σημαντική. Εάν η καλωδίωση του εδάφους είναι αδύναμη ή μεγάλη, τότε το κύκλωμα μπορεί να συμπεριφέρεται περίεργα.

Θα πρέπει να χρησιμοποιήσουμε ένα κοινό έδαφος για όλα τα μέρη, που σημαίνει ότι το έδαφος Arduino, το έδαφος IR2110 και η πηγή MOSFET πρέπει να συνδεθούν μεταξύ τους.

Εάν βλέπουμε το κύκλωμα να συμπεριφέρεται παράξενα (όπως το τρεμόπαιγμα εξόδου ή τα MOSFETs να ζεσταίνουν χωρίς φορτίο), τότε θα πρέπει πρώτα να ελέγξουμε τις συνδέσεις εδάφους.

Πώς πρέπει να ελέγξουμε το κύκλωμα πριν το ενεργοποιήσουμε

Πριν ενεργοποιήσουμε την ισχύ, πρέπει να ελέγξουμε όλες τις συνδέσεις για να δούμε αν όλα είναι σωστά.

Εάν έχουμε ένα πολύμετρο, τότε θα πρέπει να το χρησιμοποιήσουμε για να ελέγξουμε τις τάσεις σε διαφορετικά σημεία πριν εισαγάγουμε τα MOSFETs.

Θα χρειαστούμε αυστηρά έναν παλμογράφο, ώστε να μπορέσουμε να ελέγξουμε τα σήματα SPWM που προέρχονται από το Arduino για να δούμε αν φαίνονται σωστά.

Πώς πρέπει να δοκιμάσουμε προσεκτικά το κύκλωμα

Ο καλύτερος τρόπος για να δοκιμάσετε αυτό το κύκλωμα με ασφάλεια είναι ξεκινώντας με χαμηλή τάση.

Αντί για 12V μπορούμε πρώτα να δοκιμάσουμε με 6V ή 9V για να δούμε αν τα MOSFETs αλλάζουν σωστά.

Εάν το κύκλωμα λειτουργεί καλά σε χαμηλή τάση, τότε μπορούμε αργά να αυξηθούν σε 12V και τελικά στην πλήρη τάση.

Αν ξαφνικά εφαρμόζουμε πλήρη τάση και κάτι δεν πάει καλά τότε κάτι μπορεί να καεί αμέσως!

Πρέπει λοιπόν να δοκιμάσουμε βήμα προς βήμα και να συνεχίσουμε τον έλεγχο για υπερθέρμανση ή λανθασμένη συμπεριφορά.

Πώς μπορούμε να προσθέσουμε ένα φίλτρο για μια ομαλότερη έξοδο

Αυτό το κύκλωμα κάνει μια έξοδο AC χρησιμοποιώντας PWM, αλλά εξακολουθεί να είναι κατασκευασμένο από γρήγορους παλμούς.

Αν θέλουμε ένα καθαρό ημιτονοειδές κύμα τότε πρέπει να προσθέσουμε ένα φίλτρο LC στην έξοδο.

Αυτό το φίλτρο LC είναι απλώς ένας μεγάλος επαγωγέας και ένας πυκνωτής που συνδέεται με την έξοδο.

Ο επαγωγέας αφαιρεί τους παλμούς γρήγορης μεταγωγής και ο πυκνωτής εξομαλύνει την κυματομορφή.

Εάν το κάνουμε αυτό σωστά τότε μπορούμε να πάρουμε ένα καθαρό ημιτονοειδές κύμα που είναι ασφαλές για τις συσκευές.

Πώς πρέπει να προστατεύσουμε το κύκλωμα από ζημιές

Πρέπει πάντα να προσθέσουμε μια ασφάλεια σε σειρά με την τροφοδοσία.

Εάν κάτι σορτς ή ένα MOSFET αποτύχει τότε η ασφάλεια θα σπάσει πρώτα και θα σώσει το κύκλωμα από την καύση.

Εάν τα MOSFET αποτύχουν τότε μερικές φορές αποτυγχάνουν βραχυκυκλωμένα (που σημαίνει ότι παραμένουν πάντα).

Εάν συμβεί αυτό, τότε το τεράστιο ρεύμα μπορεί να ρέει και να βλάψει τον μετασχηματιστή ή άλλα μέρη.

Έτσι είναι πάντα καλό να ελέγχετε τα MOSFETs χρησιμοποιώντας ένα πολύμετρο πριν εφαρμόσετε υψηλή ισχύ.

Σύναψη

Έτσι, εδώ είδαμε πώς μπορούμε να φτιάξουμε έναν μετατροπέα ημιτονοειδούς κύματος χρησιμοποιώντας μόνο το Arduino και ένα κύκλωμα MOSFET H-Bridge. Χρησιμοποιήσαμε τους οδηγούς MOSFET IR2110 για να αλλάξουμε σωστά το MOSFETS και το PWM Control από το Arduino για να δημιουργήσουμε το sine-διαμορφωμένο AC μας.

Τώρα ένα πράγμα που πρέπει να θυμόμαστε είναι ότι αυτή η έξοδος εξακολουθεί να είναι κατασκευασμένη από παλμούς ταχείας μεταγωγής, οπότε αν χρειαζόμαστε ένα καθαρό ημιτονοειδές κύμα τότε πρέπει να προσθέσουμε ένα φίλτρο LC στην έξοδο για να το εξομαλύνετε.

Αλλά συνολικά αυτός είναι ένας πολύ πρακτικός και εύκολος τρόπος για να φτιάξετε ένα ημιτονοειδές μετατροπέα κύματος στο σπίτι!