- Gerekli malzemeler
- Arduino DC Elektronik Yük Devre Şeması
- PCB Tasarımı ve Gerber Dosyası
- PCB'nizi AllPCB'den sipariş etme
- Ayarlanabilir DC Yükü için Arduino Kodu
- Ayarlanabilir DC Yükümüzü Test Etme
Piller, SMPS devreleri veya diğer Güç kaynağı devreleriyle daha önce çalıştıysanız, farklı yükleme koşullarında nasıl çalıştığını kontrol etmek için güç kaynağınızı yükleyerek test etmeniz gerekirdi. Bu tür bir testi gerçekleştirmek için yaygın olarak kullanılan bir cihaza Sabit Akım DC Yükü denir, bu da güç kaynağınızın çıkış akımını ayarlamamıza izin verir ve ardından tekrar ayarlanana kadar sabit tutar. Bu eğitimde, maksimum 24V giriş voltajı ve 5A kadar yüksek boşaltma akımı alabilen Arduino kullanarak kendi Ayarlanabilir Elektronik Yükümüzü nasıl oluşturacağımızı öğreneceğiz. Bu proje için Çin merkezli profesyonel bir PCB imalat ve montaj hizmeti sağlayıcısı olan AllPCB tarafından üretilen PCB kartlarını kullandık.
Önceki voltaj kontrollü akım kaynağı eğitimimizde, bir MOSFET ile bir işlemsel amplifikatörün nasıl kullanılacağını ve voltaj kontrollü bir akım kaynağı devresinden nasıl yararlanılacağını açıkladık. Ancak bu eğitimde, bu devreyi uygulayıp dijital olarak kontrol edilen bir akım kaynağı yapacağız. Açıktır ki, dijital olarak kontrol edilen bir akım kaynağı dijital bir devre gerektirir ve amaca hizmet etmek için bir Arduino NANO kullanılır. Arduino NANO, DC yükü için gerekli kontrolleri sağlayacaktır.
Devre üç bölümden oluşmaktadır. Birinci bölüm Arduino Nano bölümü, ikinci bölüm dijitalden analoğa dönüştürücü, üçüncü bölüm ise yük bölümünü kontrol edecek tek bir pakette ikili işlemsel amplifikatörün kullanıldığı saf bir analog devredir. Bu proje Arduino'daki bir gönderiden esinlenmiştir, ancak devre, herkesin inşa etmesi için temel özelliklerle daha az karmaşık olacak şekilde değiştirilmiştir.
Elektronik yükümüz aşağıdaki giriş ve çıkış bölümlerine sahip olacak şekilde tasarlanmıştır.
- Yükü artırmak ve azaltmak için iki giriş anahtarı.
- Ayarlanan yükü, gerçek yükü ve yük voltajını gösteren bir LCD.
- Maksimum yük akımı 5A ile sınırlıdır.
- Yük için maksimum giriş voltajı 24V'tur.
Gerekli malzemeler
Bir DC elektronik yük oluşturmak için gerekli bileşenler aşağıda listelenmiştir.
- Arduino nano
- 16x2 karakter LCD
- İki namlu soketi
- Mosfet irf540n
- Mcp4921
- Lm358
- 5 watt şönt direnci. 1 ohm
- 1k
- 10k - 6 adet
- Soğutucu
- .1uF 50v
- 2k - 2 adet
Arduino DC Elektronik Yük Devre Şeması
Aşağıdaki şemada, işlemsel yükselticinin iki bölümü vardır. Biri MOSFET'i kontrol etmek, diğeri ise algılanan akımı yükseltmektir. Devrenin tam olarak çalışmasını açıklayan bu sayfanın altındaki videoyu da kontrol edebilirsiniz. İlk bölüm R12, R13 ve MOSFET'e sahip. Geri besleme bölümünde yükleme etkisini azaltmak için R12 kullanılır ve Mosfet geçit direnci olarak R13 kullanılır.
Bu sahte yük tarafından strese maruz kalacak güç kaynağının besleme voltajını algılamak için ek iki direnç R8 ve R9 kullanılır. Gerilim bölücü kuralına göre, bu iki direnç maksimum 24V'u destekler. 24V'den fazla ise Arduino pinlerine uygun olmayan bir voltaj üretecektir. Bu nedenle, 24V'den fazla çıkış voltajına sahip güç kaynağını bağlamamaya dikkat edin.
Direnç R7, buradaki gerçek yük direncidir. 5 Watt, 0,1 Ohm dirençtir. Güç kanununa göre, maksimum 7A'yı (P = I 2 R) destekleyecektir, ancak güvenli taraf için, yük akımını maksimum 5A ile sınırlamak daha akıllıca olacaktır. Bu nedenle, şu anda maksimum 24V, 5A yük bu yapay yük ile ayarlanabilir.
Amplifikatörün diğer bir bölümü kazanç amplifikatörü olarak yapılandırılmıştır. 6x kazanç sağlayacaktır. Akım akışı sırasında, bir voltaj düşüşü görünecektir. Örneğin, dirençten 5A akım geçtiğinde, ohm yasasına göre.1 Ohm şönt direnci (V = I x R) boyunca voltaj düşüşü.5V olacaktır. Tersine çevirmeyen amplifikatör, onu x6'ya yükseltir, bu nedenle 3V, amplifikatörün ikinci kısmından çıkış olacaktır. Bu çıkış, Arduino nano analog giriş pini tarafından algılanacak ve akım hesaplanacaktır.
Amplifikatörün ilk kısmı, MOSFET'i giriş voltajına göre kontrol edecek ve şönt direnç üzerinden akan yük akımı nedeniyle istenen geri besleme voltajını alacak bir voltaj takip devresi olarak yapılandırılmıştır.
MCP4921, Dijitalden Analog'a dönüştürücüdür. DAC, dijital verileri herhangi bir mikro denetleyici biriminden almak ve buna bağlı olarak analog voltaj çıkışı sağlamak için SPI iletişim protokolünü kullanır. Bu voltaj, op-amp'in girişidir. Daha önce bu MCP4921 DAC'nin PIC ile nasıl kullanılacağını da öğrenmiştik.
Diğer tarafta, dijital verileri DAC'a SPI protokolü üzerinden sağlayacak ve yükü kontrol edecek, ayrıca verileri 16x2 karakter ekranında görüntüleyecek bir Arduino Nano bulunmaktadır. İki ek şey daha kullanılır, yani azaltma ve artırma düğmesi. Dijital bir pime bağlamak yerine, analog pinlere bağlanır. Bu nedenle, kaydırıcı veya analog kodlayıcı gibi başka bir tür anahtarla değiştirilebilir. Ayrıca, kodu değiştirerek, yükü kontrol etmek için ham analog veriler sağlanabilir. Bu aynı zamanda anahtar geri alma sorununu da önler.
Son olarak, yükü artırarak, Arduino nano, DAC'ye yük verilerini dijital formatta sağlayacak, DAC, operasyonel amplifikatöre analog veriler sağlayacaktır ve operasyonel amplifikatör, MOSFET'i operasyonel amplifikatörün giriş voltajına göre kontrol edecektir.. Son olarak, şönt direncinden geçen yük akımına bağlı olarak, LM358'in ikinci kanalı tarafından daha da yükseltilecek ve Arduino nano tarafından alınacak bir voltaj düşüşü görünecektir. Bu, karakter ekranında görüntülenecektir. Kullanıcı azalt düğmesine bastığında da aynı şey olacaktır.
PCB Tasarımı ve Gerber Dosyası
Bu devre yüksek bir akım yoluna sahip olduğundan, istenmeyen arıza durumlarını ortadan kaldırmak için uygun PCB tasarım taktiklerini kullanmak daha akıllıca bir seçimdir. Bu nedenle, bu DC yükü için bir PCB tasarlanmıştır. PCB'mi tasarlamak için Eagle PCB Tasarım Yazılımını kullandım. Herhangi bir PCB Cad Yazılımını seçebilirsiniz. CAD yazılımında son olarak tasarlanan PCB aşağıdaki görselde gösterilmiştir,
Bu PCB'nin tasarımı sırasında dikkat edilmesi gereken önemli bir faktör, devrenin her yerinde doğru akım akışı için kalın bir güç düzlemi kullanmaktır. Her iki katmanda yukarı ve aşağı doğru düzgün zemin akışı için kullanılan zemin dikişi VIAS (zemin düzleminde rastgele yollar) da vardır.
Ayrıca bu PCB'nin Gerber dosyasını aşağıdaki bağlantıdan indirebilir ve imalat için kullanabilirsiniz.
- Ayarlanabilir Elektronik DC Yük Gerber Dosyasını İndirin
PCB'nizi AllPCB'den sipariş etme
Gerber dosyanızla hazır olduğunuzda, PCB'nizi imal ettirmek için kullanabilirsiniz. Yüksek kaliteli PCB'leri ve ultra hızlı sevkiyatıyla tanınan ALLPCB, bu makalenin sponsorunu gündeme getiriyor. AllPCB, PCB Üretiminin yanı sıra,PCB Montajı ve Bileşen Tedariki.
PCB siparişinizi onlardan almak için ziyaret edin allpcb.com ve kayıt. Ardından ana sayfada PCB'nizin boyutlarını ve gerekli miktarı aşağıda gösterildiği gibi girin. Ardından şimdi Alıntı üzerine tıklayın.
Artık PCB'nizin katman sayısı, maske rengi, kalınlık vb. Gibi diğer parametrelerini değiştirebilirsiniz. Sağ tarafta, ülkenizi ve tercih ettiğiniz nakliye seçeneğini seçebilirsiniz. Bu size teslim süresini ve ödenecek toplam tutarı gösterecektir. DHL'i seçtim ve toplam tutarım 26 $, ancak ilk kez müşteri iseniz, ödeme sırasında fiyatlar düşecektir. Ardından Sepete Ekle'ye tıklayın ve ardından şimdi kontrol et'e tıklayın.
Şimdi, "Gerber Yükle" seçeneğine ve ardından satın al seçeneğine tıklayarak Gerber dosyanızı yükle seçeneğine tıklayabilirsiniz.
Sonraki sayfada gönderim adresinizi girebilir ve PCB'niz için ödemeniz gereken son fiyatı kontrol edebilirsiniz. Daha sonra siparişinizi inceleyebilir ve ardından ödemeyi yapmak için gönder düğmesine tıklayabilirsiniz.
Siparişiniz onaylandıktan sonra arkanıza yaslanıp PCB'nizin kapınıza gelmesi için röle yapabilirsiniz. Birkaç gün sonra siparişimi aldım ve ardından ambalaj aşağıda gösterildiği gibi düzgün oldu.
Aşağıdaki resimlerde de görebileceğiniz gibi PCB'nin kalitesi her zaman olduğu gibi iyiydi. Kartın üst tarafı ve alt tarafı aşağıda gösterilmiştir.
Tahtanızı aldıktan sonra, tüm bileşenleri bir araya getirmeye devam edebilirsiniz. Bitmiş panom aşağıda gösterildiği gibi bir şeye benziyor.
Daha sonra, nasıl çalıştığını kontrol etmek için kodu yükleyebilir ve modülü çalıştırabilirsiniz. Bu projenin tam kodu bu sayfanın altında verilmiştir. Kodun açıklaması aşağıdaki gibidir.
Ayarlanabilir DC Yükü için Arduino Kodu
Kod oldukça basit. İlk olarak, SPI ve LCD başlık dosyalarını dahil ettik ve maksimum mantık voltajını, çip seçim pinlerini vb. Ayarladık.
#Dahil etmek
Bu bölüm, tamsayıların ve değişkenlerin program akışıyla ilgili gerekli bildirimlerini içerir. Ayrıca, ilişkili çevre birimleri pinlerini Arduino Nano ile ayarladık.
const int slaveSelectPin = 10; // Chip select pin int numarası = 0; int artış = A2; // Pin int düşüşünü artır = A3; // pini azalt int current_sense = A0; // akım algılama pini int voltaj_sense = A1; // voltaj algılama pimi int state1 = 0; int durum2 = 0; int Küme = 0; şamandıra volt = 0; float load_current = 0.0; şamandıra yük_voltajı = 0.0; şamandıra akımı = 0.0; şamandıra voltajı = 0.0; LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // LCD pimleri
Bu, LCD ve SPI Kurulumu için kullanılır. Ayrıca, raptiye yönleri burada ayarlanmıştır.
geçersiz kurulum () { pinMode (slaveSelectPin, OUTPUT); pinMode (artış, GİRİŞ); pinMode (azalt, GİRİŞ); pinMode (current_sense, INPUT); pinMode (voltaj_suyu, GİRİŞ); // SPI'yi başlat : SPI.begin (); // LCD'nin sütun ve satır sayısını ayarlayın: lcd.begin (16, 2); // LCD'ye bir mesaj yazdırın. lcd.print ("Dijital Yük"); lcd.setCursor (0, 1); lcd.print ("Devre Özeti"); gecikme (2000); }
DAC değerini dönüştürmek için kullanılır.
void convert_DAC (unsigned int value) { / * Step Size = 2 ^ n, Bu nedenle 12bit 2 ^ 12 = 4096 5V referansı için adım 5/4095 = 0.0012210012210012V veya 1mV (yaklaşık) * / unsigned int container; imzasız int MSB; işaretsiz int LSB; / * Adım: 1, 12 bitlik veriyi konteynere depoladı Verinin 4095 olduğunu varsayalım, ikili 1111 1111 1111 * / konteyner = değer; / * Adım: 2 Kukla 8 bit oluşturma. Böylece, 256'ya bölünerek, üst 4 bit LSB LSB = 0000 1111 * / LSB = konteyner / 256; / * Adım: 3 Yapılandırmayı 4 bitlik veriyi delerek gönderme. LSB = 0011 0000 VEYA 0000 1111. Sonuç 0011 1111 * / LSB = (0x30) - LSB; / * Adım: 4 Konteyner hala 21bit değerine sahip. Alttaki 8 bitin çıkarılması. 1111 1111 VE 1111 1111 1111. Sonuç 1111 1111, MSB * / MSB = 0xFF & kapsayıcı; / * Adım: 4 16 bitlik veriyi iki bayta bölerek gönderme. * / digitalWrite (slaveSelectPin, DÜŞÜK); gecikme (100); SPI.transfer (LSB); SPI.transfer (MSB); gecikme (100); // çipin seçimini kaldırmak için SS pinini yükseğe alın: digitalWrite (slaveSelectPin, HIGH); }
Bu bölüm, mevcut algılama ile ilgili işlemler için kullanılır.
float read_current (void) { load_current = 0; for (int a = 0; a <ortalama; a ++) { load_current = load_current + analogRead (current_sense); } load_current = load_current / ortalama; load_current = (load_current * MAX_VOLT) / 1024; load_current = (load_current / opamp_gain) / load_resistor; return load_current; }
Bu, yük voltajını okumak için kullanılır.
float okuma_voltajı (void) { load_voltage = 0; for (int a = 0; a <ortalama; a ++) { load_voltage = load_voltage + analogRead (Voltage_sense); } load_voltage = load_voltage / ortalama; load_voltage = ((load_voltage * MAX_VOLT) /1024.0) * 6; dönüş yük_voltajı; }
Bu gerçek döngüdür. Burada, anahtar adımları ölçülür ve veriler DAC'a gönderilir. Verileri ilettikten sonra, gerçek akım akışı ve yük voltajı ölçülür. Her iki değer de son olarak LCD'de yazdırılır.
boşluk döngüsü () { durum1 = analogRead (artır); eğer (durum1> 500) { gecikme (50); durum1 = analogRead (artır); eğer (durum1> 500) { volt = volt + 0.02; } } durum2 = analogRead (azalt); eğer (durum2> 500) { gecikme (50); state2 = analogRead (azalt); eğer (durum2> 500) { if (volt == 0) { volt = 0; } başka { volt = volt-0.02; } } } sayı = volt / 0,0012210012210012; convert_DAC (sayı); voltaj = okuma_ voltajı (); akım = read_current (); lcd.setCursor (0, 0); lcd.print ("Değeri Ayarla"); lcd.print ("="); Set = (volt / 2) * 10000; lcd.print (Ayarla); lcd.print ("mA"); lcd.setCursor (0, 1); lcd.print ("I"); lcd.print ("="); lcd.print (güncel); lcd.print ("A"); lcd.print ("V"); lcd.print ("="); lcd.print (voltaj); lcd.print ("V"); // lcd.print (load_voltage); //lcd.print("mA "); // gecikme (1000); //lcd.clear (); }
Ayarlanabilir DC Yükümüzü Test Etme
Dijital yük devresi lehimlenir ve 12V güç kaynağı kullanılarak çalıştırılır. 7.4V Lityum pilimi güç kaynağı tarafında kullandım ve nasıl çalıştığını kontrol etmek için bir pens ölçer bağladım. Ayar akımının 300mA olduğu zaman görebileceğiniz gibi devre, pens ampermetre ile 310mA olarak ölçülen pilden 300mA çeker.
Devrenin tam çalışması aşağıda bağlantısı verilen videoda bulunabilir. Umarım projeyi anladınız ve faydalı bir şey inşa etmekten keyif aldınız. Herhangi bir sorunuz varsa, yorum bölümüne bırakın veya Forumları kullanın.