İçindekiler:

Arduino için DIY Güç Ölçüm Modülü: 9 Adım (Resimlerle)
Arduino için DIY Güç Ölçüm Modülü: 9 Adım (Resimlerle)

Video: Arduino için DIY Güç Ölçüm Modülü: 9 Adım (Resimlerle)

Video: Arduino için DIY Güç Ölçüm Modülü: 9 Adım (Resimlerle)
Video: Arduino Projeleri - Arduino Nano İle Kendi Wattmetremizi Yapıyoruz - Wattmetre Nasıl Yapılır? 2024, Temmuz
Anonim
Arduino için DIY Güç Ölçüm Modülü
Arduino için DIY Güç Ölçüm Modülü
Arduino için DIY Güç Ölçüm Modülü
Arduino için DIY Güç Ölçüm Modülü
Arduino için DIY Güç Ölçüm Modülü
Arduino için DIY Güç Ölçüm Modülü

Herkese merhaba, umarım harikasınızdır! Bu talimatta size bu Güç ölçer / Wattmetre modülünü bir Arduino kartıyla kullanmak için nasıl yaptığımı göstereceğim. Bu güç ölçer, DC Yük tarafından tüketilen gücü hesaplayabilir. Bu modül, gücün yanı sıra bize doğru voltaj ve akım okumaları da verebilir. Düşük voltajları (yaklaşık 2V) ve düşük akımları, 50 mA kadar düşük, 20mA'dan fazla olmayan bir hatayla kolayca ölçebilir. Doğruluk, gereksinimlerinize göre bileşenlerin seçimine bağlıdır.

Gereçler

  • IC LM358 çift OP-AMP
  • 8 pinli IC tabanı
  • Şönt direnci (benim durumumda 8.6 milliOhm)
  • Dirençler: 100K, 10K, 2.2K, 1K (1/2watt)
  • Kondansatörler: 3 * 0.1uF seramik kapasitörler
  • Veroboard veya sıfır kurulu
  • Vidalı terminaller
  • Havya ve lehim
  • Arduino Uno veya başka bir uyumlu kart
  • OLED Ekran
  • Breadbard kablolarını bağlama

Adım 1: Gerekli Bileşenlerin Toplanması

Gerekli Bileşenlerin Toplanması
Gerekli Bileşenlerin Toplanması

Bu proje çok basit ve elde edilmesi kolay bileşenler kullanır: bunlar dirençler, seramik kapasitörler, İşlemsel yükselteç ve prototipleme için bir veroboard içerir.

Bileşenlerin seçimi ve değeri, uygulamanın türüne ve ölçmek istediğiniz güç aralığına bağlıdır.

Adım 2: Çalışma Prensibi

Çalışma Prensibi
Çalışma Prensibi
Çalışma Prensibi
Çalışma Prensibi
Çalışma Prensibi
Çalışma Prensibi
Çalışma Prensibi
Çalışma Prensibi

Güç modülünün çalışması, devre teorisi ve temel elektrik olmak üzere iki konsepte dayanmaktadır: Giriş voltajının ölçümü için voltaj bölücü kavramı ve devreden akan akımı hesaplamak için Ohm Yasası. Üzerinde çok küçük bir voltaj düşüşü oluşturmak için bir şönt direnci kullanıyoruz. Bu voltaj düşüşü, şanttan geçen akımın miktarı ile orantılıdır. Bu küçük voltaj, işlemsel bir yükselteç tarafından yükseltildiğinde, bize mevcut değeri vermek üzere programlanabilen bir mikro denetleyiciye bir giriş olarak kullanılabilir. İşlemsel yükselteç, kazancın geri besleme değerleri tarafından belirlendiği, ters çevirmeyen bir yükseltici olarak kullanılır. direnç R2 ve R1. Evirmeyen konfigürasyonu kullanmak, ölçüm referansı olarak ortak bir zemine sahip olmamızı sağlar. Bunun için devrenin alçak tarafında akım ölçülmektedir. Uygulamam için geri besleme ağı olarak 100K ve 2.2K direnç kullanarak 46 kazanç seçtim. Gerilim ölçümü, giriş gerilimini kullanılan direnç şebekesine orantılı olarak bölen bir gerilim bölücü devre kullanılarak yapılır.

Hem OP-Amp'den gelen akım değeri hem de bölücü ağdan gelen voltaj değeri, bir yükün tükettiği gücü hesaplayabilmemiz için arduino'nun iki analog girişine beslenebilir.

Adım 3: Parçaları Bir Araya Getirmek.

Parçaları Bir Araya Getirmek.
Parçaları Bir Araya Getirmek.
Parçaları Bir Araya Getirmek.
Parçaları Bir Araya Getirmek.
Parçaları Bir Araya Getirmek.
Parçaları Bir Araya Getirmek.

Giriş ve çıkış bağlantısı için vidalı terminallerin konumuna karar vererek güç modülümüzün yapımına başlayalım. Uygun pozisyonları işaretledikten sonra vidalı terminalleri ve şönt direnci yerine lehimliyoruz.

Adım 4: Gerilim Algılama Ağı için Parçaları Ekleme

Gerilim Algılama Ağı için Parçaları Ekleme
Gerilim Algılama Ağı için Parçaları Ekleme
Gerilim Algılama Ağı için Parçaları Ekleme
Gerilim Algılama Ağı için Parçaları Ekleme
Gerilim Algılama Ağı için Parçaları Ekleme
Gerilim Algılama Ağı için Parçaları Ekleme

Giriş voltajı algılama için 10K ve 1K'lık bir voltaj bölücü ağı kullanıyorum. Ayrıca voltajları yumuşatmak için 1K direnç boyunca 0,1 uF kapasitör ekledim. Voltaj algılama ağı giriş terminalinin yakınında lehimlenmiştir.

Adım 5: Current Sense Network için Parçaların Eklenmesi

Current Sense Network için Parçaları Ekleme
Current Sense Network için Parçaları Ekleme
Current Sense Network için Parçaları Ekleme
Current Sense Network için Parçaları Ekleme
Current Sense Network için Parçaları Ekleme
Current Sense Network için Parçaları Ekleme
Current Sense Network için Parçaları Ekleme
Current Sense Network için Parçaları Ekleme

Akım, direnç ağı tarafından ayarlanan önceden tanımlanmış bir kazanç ile şönt direnç boyunca voltaj düşüşünü hesaplayarak ve yükselterek ölçülmektedir. Ters çevirmeyen amplifikasyon modu kullanılır. İstenmeyen voltaj düşüşlerini önlemek için lehim izlerinin küçük tutulması arzu edilir.

Adım 6: Kalan Bağlantıların Tamamlanması ve Derlemenin Tamamlanması.

Kalan Bağlantıların Tamamlanması ve Yapının Bitirilmesi.
Kalan Bağlantıların Tamamlanması ve Yapının Bitirilmesi.
Kalan Bağlantıların Tamamlanması ve Yapının Bitirilmesi.
Kalan Bağlantıların Tamamlanması ve Yapının Bitirilmesi.
Kalan Bağlantıların Tamamlanması ve Yapının Bitirilmesi.
Kalan Bağlantıların Tamamlanması ve Yapının Bitirilmesi.

Gerilim ve akım algılama ağlarının bağlanıp lehimlenmesi ile erkek header pinlerinin lehimlenmesi, güç ve sinyal çıkışlarının gerekli bağlantılarının yapılması zamanı gelmiştir. Modül, bir arduino kartından kolayca alabileceğimiz 5 voltluk standart çalışma voltajı ile beslenecektir. İki voltaj algılama çıkışı, arduino'nun analog girişlerine bağlanacaktır.

Adım 7: Modülün Arduino ile Bağlanması

Modülün Arduino ile Bağlanması
Modülün Arduino ile Bağlanması
Modülün Arduino ile Bağlanması
Modülün Arduino ile Bağlanması
Modülün Arduino ile Bağlanması
Modülün Arduino ile Bağlanması
Modülün Arduino ile Bağlanması
Modülün Arduino ile Bağlanması

Modül tamamlandığında, artık onu bir Arduino'ya bağlamanın ve çalıştırmanın zamanı geldi. Değerleri görmek için arduino ile iletişim kurmak için I2C protokolünü kullanan bir OLED ekran kullandım. Ekranda görüntülenen parametreler Voltaj, Akım ve Güçtür.

Adım 8: Proje Kodu ve Devre Şeması

Proje Kodu ve Devre Şeması
Proje Kodu ve Devre Şeması

Bu adımda güç modülünün devre şemasını ve kodunu ekledim(Daha önce kodun bulunduğu.ino ve.txt dosyasını eklemiştim fakat bazı server hatası kodun kullanıcılar tarafından erişilemez veya okunamaz olmasına neden oldu o yüzden tamamını yazdım Kodu bu adımda kullanın. Bunun kodu paylaşmanın iyi bir yolu olmadığını biliyorum:(. Bu kodu gereksinimlerinize göre değiştirmekten çekinmeyin. Bu projenin sizin için yararlı olduğunu umuyorum. Lütfen görüşlerinizi yorumlarda paylaşın. Şerefe!

#Dahil etmek

#Dahil etmek

#Dahil etmek

#Dahil etmek

#define OLED_RESET 4 Adafruit_SSD1306 ekranı(OLED_RESET);

kayan değer = 0;

yüzer akım = 0;

yüzer voltaj = 0;

yüzer güç=0;

geçersiz kurulum() {

pinMode(A0, GİRİŞ);

pinMode(A1, GİRİŞ);

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // I2C adresi 0x3C (128x32 için) ile başlat display.display();

gecikme(2000);

// Arabelleği temizle.

display.clearDisplay();

display.setTextSize(1);

display.setCursor(0, 0);

display.setTextColor(BEYAZ);

Seri.başla(9600); // Seri monitörde değerleri görmek için

}

boşluk döngüsü () {

// kararlı okumalar için ortalamanın alınması

for(int i=0;i<20;i++) {

akım=akım + analogOkuma(A0);

gerilim=gerilim + analogOkuma(A1); }

akım=(akım/20); akım=akım * 0.0123 * 5.0; // kullanılan bileşenlere göre değiştirilecek kalibrasyon değeri

voltaj=(voltaj/20); voltaj=voltaj* 0.0508 * 5.0; // kullanılan bileşenlere göre değiştirilecek kalibrasyon değeri

güç= voltaj*akım;

// değerleri seri monitörde yazdırma

Serial.print(voltaj);

Seri.print(" ");

Seri.baskı(mevcut);

Seri.print(" ");

Seri.println(güç);

// OLED ekranındaki değerleri yazdırma

display.setCursor(0, 0);

display.print("Voltaj: ");

display.print(voltaj);

display.println(" V");

display.setCursor(0, 10);

display.print("Mevcut: ");

display.print(geçerli);

display.println("A");

display.setCursor(0, 20);

display.print("Güç: ");

display.print(güç);

display.println(" W");

display.display();

gecikme(500); // gecikme tarafından ayarlanan yenileme hızı

display.clearDisplay();

}

Önerilen: