- Gerekli malzemeler
- Devre şeması
- Ölçü birimi
- Hesaplama ve görüntüleme birimi
- Arduino'nun Programlanması
- Daha doğru ölçüm nasıl yapılır?
- Çalışma ve Test
Elektronik mühendisleri olarak, bir devrenin çalışmasını ölçmek ve analiz etmek için her zaman sayaçlara / aletlere güveniyoruz. Basit bir multimetre ile başlayarak karmaşık güç kalitesi analizörlerine veya DSO'lara kadar her şeyin kendi benzersiz uygulamaları vardır. Bu ölçüm cihazlarının çoğu kolaylıkla temin edilebilir ve ölçülecek parametrelere ve doğruluklarına göre satın alınabilir. Ancak bazen kendi sayaçlarımızı inşa etmemiz gereken bir duruma düşebiliriz. Örneğin bir güneş PV projesi üzerinde çalıştığınızı ve yükünüzün güç tüketimini hesaplamak istediğinizi varsayalım, bu tür senaryolarda Arduino gibi basit bir mikro denetleyici platformu kullanarak kendi Wattmetremizi oluşturabiliriz.
Kendi sayaçlarınızı inşa etmek yalnızca test maliyetini düşürmekle kalmaz, aynı zamanda bize test sürecini kolaylaştırmak için alan sağlar. Gibi, Arduino kullanılarak oluşturulan bir wattmetre, Seri monitördeki sonuçları izlemek ve Seri plotter üzerinde bir grafik çizmek veya önceden tanımlanmış aralıklarla voltaj, akım ve güç değerlerini otomatik olarak kaydetmek için bir SD kart eklemek için kolayca ayarlanabilir. Kulağa ilginç geliyor değil mi? Öyleyse başlayalım…
Gerekli malzemeler
- Arduino Nano
- LM358 Op-Amp
- 7805 Voltaj regülatörü
- 16 * 2 LCD ekran
- 0.22 ohm 2Watt şönt direnç
- 10k Düzeltici tencere
- 10k, 20k, 2.2k, 1k Dirençler
- 0.1uF Kapasitörler
- Test Yükü
- Perf board veya breadboard
- Lehimleme kiti (isteğe bağlı)
Devre şeması
Arduino wattmetre projesinin tam devre şeması aşağıda verilmiştir.
Anlama kolaylığı için arduino wattmetre devresi iki birime ayrılmıştır. Devrenin üst kısmı ölçüm birimi ve devrenin alt kısmı hesaplama ve görüntüleme birimidir. Bu tür devrelerde yeni olan insanlar için etiketleri takip etti. Örnek + 5V etikettir, bu da etiketin bağlı olduğu tüm pinlerin birbirine bağlı oldukları için dikkate alınması gerektiği anlamına gelir. Etiketler normalde devre şemasının düzgün görünmesini sağlamak için kullanılır.
Devre, bir Solar PV'nin özelliklerini akılda tutarak 0-1A akım aralığında 0-24V arasında çalışan sistemlere uyacak şekilde tasarlanmıştır. Ancak, devrenin çalışmasını anladıktan sonra aralığı kolayca genişletebilirsiniz. Devrenin arkasındaki temel ilke, güç tüketimini hesaplamak için yük boyunca voltajı ve içinden geçen akımı ölçmektir. Ölçülen tüm değerler 16 * 2 Alfanümerik bir LCD ekranda görüntülenecektir.
Daha aşağıda devreyi küçük parçalara ayıralım, böylece devrenin çalışması için nasıl girintili olduğuna dair net bir resim elde edebiliriz.
Ölçü birimi
Ölçüm birimi, voltajı ölçmemize yardımcı olacak bir potansiyel bölücüden oluşur ve devreden geçen akımı ölçmemize yardımcı olmak için Ters Çevrilmeyen Op-amp'li bir kapalı direnç kullanılır. Yukarıdaki devreden gelen potansiyel bölücü kısım aşağıda gösterilmiştir
Burada Giriş voltajı Vcc ile temsil edilir, daha önce de belirtildiği gibi devreyi 0V ila 24V voltaj aralığı için tasarlıyoruz. Ancak Arduino gibi bir mikrodenetleyici, bu kadar yüksek voltaj değerlerini ölçemez; yalnızca 0-5V arasındaki voltajı ölçebilir. Bu nedenle, 0-24V ile 0-5V arasındaki voltaj aralığını eşlememiz (dönüştürmemiz) gerekir. Bu, aşağıda gösterildiği gibi bir potansiyel bölücü devre kullanılarak kolayca yapılabilir. Direnç 10k ve 2.2k birlikte potansiyel bölücü devreyi oluşturur. Potansiyel bölücünün çıkış voltajı, aşağıdaki formüller kullanılarak hesaplanabilir. Aynısı dirençlerinizin değerine karar vermek için de kullanılabilir, devreyi yeniden tasarlıyorsanız, direnç değerini hesaplamak için çevrimiçi hesaplayıcımızı kullanabilirsiniz.
Vout = (Vin × R2) / (R1 + R2)
Eşlenen 0-5V Voltaj olarak etiketlenmiş orta kısımdan elde edilebilir. Bu eşlenmiş voltaj daha sonra Arduino Analog pinine beslenebilir.
Daha sonra LOAD aracılığıyla akımı ölçmeliyiz. Mikrodenetleyicilerin yalnızca analog voltajı okuyabildiğini bildiğimiz için, akımın değerini bir şekilde voltaja dönüştürmemiz gerekiyor. Ohm yasasına göre, içinden geçen akımla orantılı bir voltaj değerini düşürecek yola bir direnç (şönt direnci) ekleyerek yapılabilir. Bu voltaj düşüşünün değeri çok daha az olacak, bu yüzden onu yükseltmek için bir op-amp kullanıyoruz. Aynı devre aşağıda gösterilmiştir
Burada şönt direncinin (SR1) değeri 0.22 Ohm'dur. Daha önce de belirtildiği gibi, devreyi 0-1A için tasarlıyoruz, bu nedenle Ohm yasasına dayanarak, bu direnç boyunca voltaj düşüşünü hesaplayabiliriz ve bu, yükten maksimum 1A akım geçtiğinde 0.2V civarında olacaktır. Bu voltaj, bir mikrodenetleyicinin okuması için çok küçüktür, Arduino'nun okuması için voltajı 0.2V'den daha yüksek seviyeye çıkarmak için Ters Çevirmeyen Amplifikatör modunda bir Op-Amp kullanıyoruz.
Ters Çevrilmeyen moddaki Op-Amp yukarıda gösterilmiştir. Amplifikatör, 0.2 * 21 = 4.2V olacak şekilde 21'lik bir kazanıma sahip olacak şekilde tasarlanmıştır. Op-amp kazancını hesaplamak için formüller aşağıda verilmiştir, ayrıca devreyi yeniden tasarlıyorsanız direncinizin değerini elde etmek için bu çevrimiçi kazanç hesaplayıcısını da kullanabilirsiniz.
Kazanç = Vout / Vin = 1 + (Rf / Rin)
Burada bizim durumumuzda Rf'nin değeri 20k ve Rin'in değeri 1k'dır ki bu da bize 21'lik bir gian değeri verir. Op-amp'in yükseltilmiş voltajı daha sonra 1k dirençli bir RC filtresine ve 0.1uF kapasitörüne verilir. bağlı olan herhangi bir gürültüyü filtreleyin. Son olarak voltaj daha sonra Arduino analog pinine beslenir.
Ölçü biriminde kalan son kısım ise voltaj regülatör kısmıdır. Değişken bir giriş voltajı vereceğimiz için Arduino ve Op-amp'in çalışması için regüle edilmiş + 5V volta ihtiyacımız var. Bu düzenlenmiş voltaj, 7805 Voltaj regülatörü tarafından sağlanacaktır. Gürültüyü filtrelemek için çıkışa bir kapasitör eklenir.
Hesaplama ve görüntüleme birimi
Ölçü biriminde Gerilim ve Akım parametrelerini Arduino Analog pinlerine beslenebilecek 0-5V'a çevirecek devre tasarladık. Şimdi devrenin bu bölümünde, bu voltaj sinyallerini Arduino'ya bağlayacağız ve ayrıca 16 × 2 alfanümerik bir ekranı Arduino'ya arayüzleyeceğiz, böylece sonuçları görüntüleyebiliriz. Aynı devre aşağıda gösterilmiştir
Gördüğünüz gibi Voltaj pini Analog pin A3'e ve akım pini Analog pin A4'e bağlanmıştır. LCD, 7805'ten + 5V'den güç alır ve 4 bit modunda çalışmak için Arduino'nun dijital pinlerine bağlanır. LCD'nin kontrastını değiştirmek için Con pinine bağlı bir potansiyometre (10k) kullandık.
Arduino'nun Programlanması
Artık donanımı iyi anladığımıza göre, Arduino'yu açıp programlamaya başlayalım. Kodun amacı, A3 ve A4 pinlerindeki analog gerilimi okumak ve Gerilim, Akım ve Güç değerini hesaplamak ve son olarak LCD ekranda göstermektir. Aynı şeyi yapacak programın tamamı, yukarıda tartışılan donanım için olduğu gibi kullanılabilen sayfanın sonunda verilmiştir. Ayrıca kod küçük parçalara bölünür ve açıklanır.
Başladığımız tüm programlar gibi kullandığımız pinleri tanımlıyoruz. Projede A3 ve A4 pinleri sırasıyla voltaj ve akımı ölçmek için kullanılır ve dijital pinler 3, 4, 8, 9, 10 ve 11, LCD'nin Arduino ile arayüzlenmesi için kullanılır.
int Read_Voltage = A3; int Read_Current = A4; const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; // LCD bağlantısı için pin numarasını belirtin LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
Ayrıca LCD ile Arduino arasında arayüz oluşturmak için sıvı kristal adlı bir başlık dosyası ekledik. Daha sonra kurulum fonksiyonunun içinde LCD ekranı başlatıyoruz ve “Arduino Wattmetre” olarak bir giriş metni görüntülüyoruz ve temizlemeden önce iki saniye bekleriz. Aynı kod aşağıda gösterilmiştir.
geçersiz kurulum () { lcd.begin (16, 2); // 16 * 2 LCD lcd.print'i başlat ("Arduino Wattmetre"); // Giriş Mesajı 1. satır lcd.setCursor (0, 1); lcd.print ("- Circuitdigest"); // Giriş Mesajı 2. satır gecikmesi (2000); lcd.clear (); }
Ana döngü işlevinin içinde, voltaj değerini A3 ve A4 pinlerinden okumak için analog okuma işlevini kullanıyoruz. Arduino ADC çıkış değerini 10 bitlik bir ADC'ye sahip olduğu için 0-1203 arasında bildiğimiz gibi. Bu değer daha sonra 0-5V'a dönüştürülmelidir ve bu da (5/1023) ile çarpılarak yapılabilir. Daha sonra yine donanımda daha önce 0-24V ile 0-5V arasındaki gerçek voltaj değerini ve 0-1A ile 0-5V akım biçiminin gerçek değerini eşleştirdik. Öyleyse şimdi bu değerleri gerçek değere döndürmek için bir çarpan kullanmalıyız. Bu, bir çarpan değeriyle çarpılarak yapılabilir. Çarpanın değeri, donanım bölümünde verilen formüller kullanılarak teorik olarak hesaplanabilir veya bilinen bir gerilim ve akım değerlerine sahipseniz pratik olarak hesaplayabilirsiniz.İkinci seçeneği izledim çünkü gerçek zamanlı olarak daha doğru olma eğilimindedir. Yani burada çarpanların değeri 6.46 ve 0.239. Dolayısıyla kod aşağıdaki gibi görünüyor
float Voltage_Value = analogRead (Read_Voltage); float Current_Value = analogRead (Read_Current); Voltage_Value = Voltage_Value * (5.0 / 1023.0) * 6.46; Current_Value = Current_Value * (5.0 / 1023.0) * 0.239;
Daha doğru ölçüm nasıl yapılır?
Gerçek Gerilim ve akım değerini hesaplamanın yukarıdaki yolu gayet iyi çalışacaktır. Ancak bir dezavantajı var, yani ölçülen ADC voltajı ile gerçek voltaj arasındaki ilişki doğrusal olmayacak, bu nedenle tek bir çarpan çok doğru sonuçlar vermeyecektir, aynısı akım için de geçerlidir.
Dolayısıyla, doğruluğu artırmak için, bilinen bir dizi değeri kullanarak gerçek değerlerle ölçülen ADC değerleri kümesini çizebilir ve ardından bu verileri bir grafiği çizmek ve doğrusal regresyon yöntemini kullanarak çarpan denklemini türetmek için kullanabiliriz. Benzer bir yöntem kullandığım Arduino dB metreye başvurabilirsiniz.
Son olarak, yük boyunca gerçek voltaj ve gerçek akımın değerini hesapladıktan sonra, formülleri kullanarak Gücü hesaplayabiliriz (P = V * I). Ardından aşağıdaki kodu kullanarak LCD ekranda üç değeri de görüntülüyoruz.
lcd.setCursor (0, 0); lcd.print ("V ="); lcd.print (Gerilim_Değeri); lcd.print (""); lcd.print ("I ="); lcd.print (Current_Value); float Power_Value = Voltage_Value * Current_Value; lcd.setCursor (0, 1); lcd.print ("Güç ="); lcd.print (Power_Value);
Çalışma ve Test
Eğitim uğruna, devrede gösterildiği gibi tüm bileşenleri lehimlemek için bir performans kartı kullandım. Yükü bağlamak için Phoenix vidalı terminali ve güç kaynağımı bağlamak için normal DC varil Jakını kullandım. Arduino Nano kartı ve LCD, bir Dişi Bergstik üzerine monte edilmiştir, böylece daha sonra gerekirse yeniden kullanılabilirler.
Donanımı hazırladıktan sonra, Arduino kodunu Nano kartınıza yükleyin. Net bir giriş metni görene kadar LCD'nin kontrast seviyesini kontrol etmek için düzeltici potu ayarlayın. Kartı test etmek için yükü vidalı terminal konektörüne ve kaynağı Namlu jakına bağlayın. Arduino'nun çalışması için + 5V gerektiğinden, bu projenin çalışması için kaynak voltajı 6V'den fazla olmalıdır. Her şey yolunda giderse, yük boyunca Gerilim değerini ve LCD'nin ilk satırında görüntülenen ve hesaplanan gücü aşağıda gösterildiği gibi LCD'nin ikinci satırında görüntülenen değerini görmelisiniz.
Bir şeyi inşa etmenin eğlenceli yanı, ne kadar düzgün çalışacağını kontrol etmek için onu test etmektir. Bunu yapmak için yük olarak 12V otomobil gösterge lambaları ve kaynak olarak RPS kullandım. RPS'nin kendisi akım ve gerilimin değerini ölçüp görüntüleyebildiğinden, devremizin doğruluğunu ve performansını çapraz kontrol etmek bizim için kolay olacaktır. Ve evet, RPS'mi çarpan değerimi kalibre etmek için kullandım, böylece doğru değere yaklaştım.
Tam çalışma bu sayfanın sonunda verilen videoda bulunabilir. Umarım devreyi ve programı anladınız ve yararlı bir şeyler öğrendiniz. Bunu çalıştırmakta herhangi bir sorununuz varsa, aşağıdaki yorum bölümüne gönderin veya daha fazla teknik yardım için forumlarımıza yazın.
Bu Arduino tabanlı Wattmetre projesi, otomatik veri kaydetme, grafik çizme, aşırı voltaj veya aşırı akım durumlarını bildirme vb. Performansı artırmak için eklenebilecek daha birçok yükseltmeye sahiptir. Bu yüzden meraklı kalın ve bunu ne için kullanacağınızı bana bildirin.