Arduino kullanarak H-Bridge Sine Dalga İnverter devresi

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Devre Tasarımını Anlamak

Tüm açıklamayı okumak istemiyorsanız, bunun yerine bu videoyu izleyebilirsiniz:

  Uyarı Mesajı: Elektrik tehlikelidir, dikkatle devam edin

Şimdi aşağıdaki devre şemasını görelim ve bu şeyin gerçekte nasıl çalıştığını öğrenelim. Devrede aşağıdaki ana parçaları görüyoruz:



  Arduino sinüs dalgası tam köprü inverter devre şeması

Arduino Kurulu - Bu bizim beynimiz. Devrimizin nasıl çalışacağına karar veren SPWM darbeleri verir.

IR2110 MOSFET sürücü ICS (IC1 ve IC2) -Bu cihazlar, Arduino'dan standart SPWM sinyallerini alır ve önyükleme yöntemini kullanarak 4 N kanallı H-Bridge MOSFET'lerini düzgün bir şekilde değiştirmek için uyumlu hale getirir.



MOSFETS (Q1, Q2, Q3, Q4) - Bunlar güç anahtarları. DC gücünü, çıktıda AC oluşturmak için belirli bir şekilde açar ve kapatırlar.

Diyotlar (1N4007) ve kapasitörler - Bunlar, 4 MOSFET'in mükemmel anahtarlanması için IC'lerin önyükleme ağının doğru çalışmasını sağlamak içindir.

Diğer kapasitörler ve dirençler - Bunlar küçük ama çok önemli çünkü her şeyin sorunsuz çalışmasını sağlıyorlar.

Güç kaynağı - Arduino ve IR2110 IC'ler için +12V ve +5V'ye ve yük spesifikasyonlarına göre MOSFET'ler için yüksek bir DC voltajına ihtiyacımız var.

Devrede neler oluyor?

Şimdi bunun adım adım nasıl çalıştığını görelim:

Arduino, iki çıkış piminde SPWM sinyalleri üretir (pim 8 ve pim 9). Bu sinyaller, AC sinüs dalgasına eşdeğer bir şekil oluşturmak için genişliği değiştirmeye devam eder.

IR2110 IC'ler bu PWM sinyallerini alır ve MOSFET'leri çok özel bir şekilde açmak için kullanın.

Dört MOSFET kullanılarak yapılan H köprüsü, SPWM anahtarlamasını kullanarak yükleme yoluyla akım yönünü değiştirerek DC veri yolu beslemesini AC benzeri çıkışa dönüştürür.

Çıktıda bir sinüs dalgası yaklaşımı elde ederiz, yani bir sinüs dalgası gibi görünür, ancak aslında hızlı anahtarlama darbelerinden yapılmıştır.

Çıktıya bir filtre devresi eklersek, bu darbeleri yumuşatabilir ve daha mükemmel bir sinüs dalgası alabiliriz.

Sine Wave PWM için Arduino Kodumuz

Şimdi kodu görelim. Arduino'nun SPWM sinyallerini oluşturmak için çalışacağı şey budur.

835EA9484999CA2B1A94FC3D1BB3E885B51FF2262

Bu kodda neler oluyor?

İlk olarak iki çıkış pimi (pim 8 ve pim 9) ayarladık. Bunlar PWM sinyallerimizi gönderecek.

Sonra döngüde pimi özel bir desenle açıp kapatırız.

Dar darbelerle başlıyoruz ve yavaş yavaş nabız genişliğini artırıyoruz ve sonra geri indiriyoruz. Bu, basamaklı bir sinüs dalgası PWM paterni oluşturur.

İlk yarım döngü yapıldıktan sonra, bir sonraki döngü için diğer pim üzerinde (pim 9) aynı şeyi tekrarlarız.

Bu şekilde H-Bridge'imiz MOSFET'leri moda gibi uygun bir sinüzoidal dalgada değiştirir.

Bu tasarımın nesi iyi

Tasarım aslında çok basit. Sadece bir Arduino ve bazı yaygın bileşenler kullanıyoruz.

Burada bir sinüs dalga jeneratörüne ihtiyacımız yok, değil. Arduino'nun kendisi SPWM kullanarak sinüs şekli yapıyor.

H-köprüsü, MOSFET'lerin aşırı ısınmadan doğru bir şekilde geçişini sağlamak için IR2110 IC'leri kullanarak verimli bir şekilde çalışır.

SPWM'yi kolayca ayarlayabiliriz, farklı bir sinüs dalgası frekansı istiyorsak, o zaman kodu biraz değiştiririz.

Arduino önyükleme gecikmesini nasıl ele almalıyız

Şimdi anlamamız gereken çok önemli bir şey, Arduino'nun gücü açtıktan sonra başlaması biraz zaman alıyor.

Bunun nedeni, Arduino'ya güç verdiğimizde, önce birkaç saniye süren dahili önyükleyicisini çalıştırır.

Bu süre zarfında IR2110 Gate sürücüsü ICS ve MOSFET'ler Arduino'dan uygun sinyaller alamayabilir.

Bu olursa, mosfetler rastgele açılabilir, bu da IC'lere anında zarar verebilir veya kısa devre veya patlamaya neden olabilir.

Yukarıdaki önyükleme gecikmesinin ilk güç sırasında IC'leri ve MOSFET'leri yakmadığından emin olmak için, yukarıdaki kodu aşağıda gösterildiği gibi değiştirmemiz gerekir:

// 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);
}

Parça Listesi

Arduino Kurulu Arduino Uno (veya herhangi bir uyumlu tahta) 1
Mosfet sürücü IC IR2110 Yüksek ve Düşük Yan Sürücü 2
Mosfets IRF3205 (veya benzer n kanal) 4
Diyotlar 1N4007 (Bootstrap ve Koruma İçin) 4
Direnç 1KΩ 1/4W (Mosfet Gate-Down-Down-Down) 4
Direnç 150Ω 1/4W (Mosfet Gate Serisi Direnç) 4
Kapasitörler 100NF (bootstrap kapasitör) 2
Kapasitörler 22UF 25V (Güç Kaynağı Filtresi) 2
Yük Herhangi bir direnç veya endüktif yük 1
Güç kaynağı +12V DC (MOSFET'ler için) & +5V DC (Arduino için) 1
Kablolar ve konektörler Devre bağlantıları için uygun Gerektiği gibi

İnşaat İpuçları

Şimdi aslında bu şeyi inşa ettiğimizde, birkaç önemli şey konusunda çok dikkatli olmalıyız. Aksi takdirde işe yaramayabilir ya da daha kötüsü, bir şey yanabilir mi? İşte takip etmemiz gereken bazı süper önemli inşaat ipuçları:

Tahtadaki parçaları nasıl düzenlemeliyiz

Bir breadboard kullanırsak, bu devre iyi çalışmayabilir, çünkü yüksek güçlü MOSFET'ler ve sürücüler güçlü, sağlam bağlantılara ihtiyaç duyar.

Bu nedenle bir PCB (basılı devre kartı) veya en azından bir perf kart kullanmalı ve parçaları düzgün bir şekilde lehimlemeliyiz.

Bir PCB yaparsak, MOSFET'leri ve IR2110 IC'leri birbirine yakın tutmalıyız, böylece sinyaller zayıf veya gecikmez.

Kalın teller, güç kaynağından mosfetlere ve mosfetlerden yüke kadar yüksek akım yolları için gitmelidir.

İnce teller yalnızca Arduino'dan IR2110 IC'lere kadar sinyal bağlantıları için kullanılabilir.

Mosfets'i nasıl yerleştirmeliyiz

Dört mosfet, kablolama dağınık hale gelmeyecek şekilde uygun bir H-köprü şekline yerleştirilmelidir.

Her MOSFET'in IR2110 IC'sine kısa ve kalın bağlantıları olmalıdır.

MOSFET'leri IR2110'dan çok uzağa yerleştirirsek, sinyaller zayıflayabilir ve MOSFET'ler düzgün değişmeyebilir.

Bu olursa, mosfetler ısınabilir ve hatta yanabilir.

Isı sorunu nasıl çözmeliyiz

IRF3205 MOSFET'leri veya benzeri olanları kullanırsak, onlara bir soğutucu vermezsek ısınırlar.

Bu nedenle, onları serin tutmak için MOSFET'lere büyük bir alüminyum soğutucu düzeltmeliyiz.

Yüksek güçlü bir inverter (100W'dan fazla) yapıyorsak, soğutma fanı da soğutma fanı takmalıyız.

MOSFET'ler dokunmak için çok ısınırsa, bir sorun olduğu ve devreyi tekrar kontrol etmemiz gerektiği anlamına gelir.

Devreye nasıl güç vermeliyiz

Arduino kısmı 5V'de çalışır ve MOSFET'lerin çalışmak için 12V veya daha fazla olması gerekir.

Bu yüzden 12V'yi asla Arduino'ya bağlamamalıyız, yoksa anında yanar!

IR2110 IC'lerin iki güç kaynağına ihtiyacı vardır:

Yüksek taraflı mosfetler için 12V

Mantık bölümü için 5V

Bu güç hatlarını karıştırırsak, devre düzgün çalışmaz ve MOSFET'ler doğru değişmez.

Kabloları nasıl bağlamalıyız

Zemin (GND) bağlantısı çok önemlidir. Zemin kabloları zayıf veya uzunsa, devre garip davranabilir.

Tüm parçalar için ortak bir zemin kullanmalıyız, yani Arduino Ground, IR2110 Ground ve MOSFET kaynak zemini birbirine bağlanmalıdır.

Devrenin garip davrandığını görürsek (çıkış titreşimi veya MOSFET'lerin yük olmadan ısınması gibi), önce zemin bağlantılarını kontrol etmeliyiz.

Dövüşmeden önce devreyi nasıl kontrol etmeliyiz

Gücü açmadan önce, her şeyin doğru olup olmadığını görmek için tüm bağlantıları iki kez kontrol etmeliyiz.

Bir multimetremiz varsa, MOSFET'leri yerleştirmeden önce farklı noktalardaki voltajları kontrol etmek için kullanmalıyız.

Doğru görünüp görünmediklerini görmek için Arduino'dan gelen SPWM sinyallerini kontrol edebilmemiz için kesinlikle bir osiloskopa ihtiyacımız olacak.

Devreyi dikkatlice nasıl test etmeliyiz

Bu devreyi güvenli bir şekilde test etmenin en iyi yolu, düşük voltajla başlamaktır.

12V yerine, MOSFET'lerin doğru şekilde geçip geçmediğini görmek için önce 6V veya 9V ile deneyebiliriz.

Devre düşük voltajda iyi çalışıyorsa, yavaşça 12V'ye ve son olarak tam voltaja kadar artabiliriz.

Aniden tam voltaj uygularsak ve bir şey yanlışsa, bir şey anında yanabilir!

Bu nedenle adım adım test etmeli ve aşırı ısınma veya yanlış davranışları kontrol etmeye devam etmeliyiz.

Daha pürüzsüz bir çıkış için nasıl bir filtre ekleyebiliriz

Bu devre PWM kullanarak bir AC çıkışı yapar, ancak yine de hızlı darbelerden yapılmıştır.

Temiz bir sinüs dalgası istiyorsak, çıkışa bir LC filtresi eklemeliyiz.

Bu LC filtresi sadece büyük bir indüktör ve çıkışa bağlı bir kapasitördür.

İndüktör hızlı anahtarlama darbelerini çıkarır ve kapasitör dalga formunu yumuşatır.

Bunu düzgün yaparsak, cihazlar için güvenli olan saf bir sinüs dalgası alabiliriz.

Devreyi hasardan nasıl korumalıyız

Güç kaynağı ile her zaman seri bir sigorta eklemeliyiz.

Şort veya mosfet bir şey başarısız olursa, sigorta önce kırılır ve devreyi yakılır.

MOSFET'ler başarısız olursa, bazen kısa sürede başarısız olurlar (yani her zaman açık kalırlar).

Bu olursa, büyük akım transformatöre veya diğer parçalara akabilir ve zarar verebilir.

Bu nedenle, yüksek güç uygulamadan önce bir multimetre kullanarak MOSFET'leri kontrol etmek her zaman iyidir.

Çözüm

Burada sadece Arduino ve bir H-Bridge Mosfet devresi kullanarak nasıl sinüs dalgası invertör yapabileceğimizi gördük. Sinüs modüle edilmiş AC'imizi oluşturmak için MOSFET'leri ve PWM kontrolünü Arduino'dan düzgün bir şekilde değiştirmek için IR2110 MOSFET sürücülerini kullandık.

Şimdi hatırlanması gereken bir şey, bu çıkışın hala hızlı anahtarlama darbelerinden yapılmış olmasıdır, bu yüzden saf bir sinüs dalgasına ihtiyacımız olursa, o zaman yumuşatmak için çıkışa bir LC filtresi eklemeliyiz.

Ama genel olarak bu, evde bir sinüs dalga inverter yapmanın çok pratik ve kolay bir yoludur!