Mündəricat:

Arduino üçün DIY Güc Ölçmə Modulu: 9 Adım (Şəkillərlə birlikdə)
Arduino üçün DIY Güc Ölçmə Modulu: 9 Adım (Şəkillərlə birlikdə)

Video: Arduino üçün DIY Güc Ölçmə Modulu: 9 Adım (Şəkillərlə birlikdə)

Video: Arduino üçün DIY Güc Ölçmə Modulu: 9 Adım (Şəkillərlə birlikdə)
Video: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, Iyul
Anonim
Arduino üçün DIY Güc Ölçmə Modulu
Arduino üçün DIY Güc Ölçmə Modulu
Arduino üçün DIY Güc Ölçmə Modulu
Arduino üçün DIY Güc Ölçmə Modulu
Arduino üçün DIY Güc Ölçmə Modulu
Arduino üçün DIY Güc Ölçmə Modulu

Hamıya salam, inşallah əla iş görürsən! Bu təlimatda sizə Arduino lövhəsi ilə istifadə etmək üçün bu güc sayğacı/ vattmetr modulunu necə hazırladığımı göstərəcəyəm. Bu güc sayğacı, DC Load tərəfindən istehlak olunan gücü hesablaya bilər. Güclə yanaşı, bu modul bizə gərginlik və cərəyanın dəqiq oxunuşlarını da verə bilər. 20 mA -dan çox olmayan bir səhv ilə 50 mA qədər aşağı olan aşağı gərginliyi (2V ətrafında) və aşağı cərəyanları asanlıqla ölçə bilər. Dəqiqlik, ehtiyaclarınıza əsasən komponentlərin seçilməsindən asılıdır.

Təchizat

  • IC LM358 ikili OP-AMP
  • 8 pinli IC bazası
  • Şönt rezistoru (mənim vəziyyətimdə 8.6 milliOhms)
  • Rezistorlar: 100K, 10K, 2.2K, 1K (1/2 vat)
  • Kondansatörler: 3 * 0.1uF keramika kondansatörleri
  • Veroboard və ya sıfır lövhə
  • Vida terminalları
  • Lehimləmə dəmir və lehim
  • Arduino Uno və ya hər hansı digər uyğun lövhə
  • OLED Ekran
  • Çörək bağı tellərinin birləşdirilməsi

Addım 1: Lazımi komponentləri toplayın

Lazımi komponentlərin toplanması
Lazımi komponentlərin toplanması

Bu layihə çox sadə və asan əldə edilən komponentlərdən istifadə edir: bunlara rezistorlar, keramika kondansatörləri, Əməliyyat gücləndiricisi və prototip hazırlamaq üçün veroboard daxildir.

Komponentlərin seçimi və dəyəri tətbiqin növündən və ölçmək istədiyiniz güc aralığından asılıdır.

Addım 2: İş prinsipi

İş prinsipi
İş prinsipi
İş prinsipi
İş prinsipi
İş prinsipi
İş prinsipi
İş prinsipi
İş prinsipi

Güc modulunun işi iki dövrə nəzəriyyəsi və əsas elektrik anlayışına əsaslanır: Giriş gərginliyinin ölçülməsi üçün gərginlik bölücü konsepsiyası və dövrədən keçən cərəyanı hesablamaq üçün Ohm Qanunu. Üzərində çox kiçik bir gərginlik düşməsi yaratmaq üçün şönt rezistorundan istifadə edirik. Bu gerilim düşməsi şantdan axan cərəyanın miqdarına mütənasibdir. Əməliyyat gücləndiricisi tərəfindən gücləndirildikdə bu kiçik gərginlik, bizə cari dəyəri vermək üçün proqramlaşdırıla bilən bir mikro nəzarətçiyə giriş olaraq istifadə edilə bilər. Əməliyyat gücləndiricisi qazancın geribildirim dəyərləri ilə təyin olunduğu ters çevrilməyən gücləndirici kimi istifadə olunur. müqavimət R2 və R1. Ters çevrilməyən konfiqurasiyadan istifadə edərək, ölçmə istinadı olaraq ümumi bir zəminə sahib olmağımıza imkan verir. Bunun üçün dövrənin aşağı tərəfində cərəyan ölçülür. Tətbiqim üçün geribildirim şəbəkəsi olaraq 100K və 2.2K müqavimət istifadə edərək 46 qazanc seçdim. Gərginliyin ölçülməsi, giriş gərginliyini istifadə olunan rezistor şəbəkəsinə nisbətlə bölən bir gərginlik bölücü dövrə istifadə etməklə aparılır.

Həm OP-Amp-dən cari dəyər, həm də bölücü şəbəkədən olan gərginlik dəyəri arduinonun iki analoq girişinə verilə bilər ki, bir yükün istehlak etdiyi gücü hesablaya bilək.

Addım 3: Parçaları bir araya gətirin

Parçaları bir araya gətirmək
Parçaları bir araya gətirmək
Parçaları bir araya gətirmək
Parçaları bir araya gətirmək
Parçaları bir araya gətirmək
Parçaları bir araya gətirmək

Giriş və çıxış əlaqəsi üçün vintli terminalların mövqeyinə qərar verərək güc modulumuzun inşasına başlayaq. Müvafiq mövqeləri işarələdikdən sonra vintli terminalları və şant rezistorunu yerində lehimləyirik.

Addım 4: Gərginlik Hissi Şəbəkəsinin Parçalarını Əlavə Etmək

Gərginlik Hiss Şəbəkəsi üçün hissələrin əlavə edilməsi
Gərginlik Hiss Şəbəkəsi üçün hissələrin əlavə edilməsi
Gərginlik Hiss Şəbəkəsi üçün hissələrin əlavə edilməsi
Gərginlik Hiss Şəbəkəsi üçün hissələrin əlavə edilməsi
Gərginlik Hiss Şəbəkəsi üçün hissələrin əlavə edilməsi
Gərginlik Hiss Şəbəkəsi üçün hissələrin əlavə edilməsi

Giriş gərginliyi algılaması üçün 10K və 1K gərginlik bölücü şəbəkəsindən istifadə edirəm. Gərginliyi düzəltmək üçün 1K rezistor boyunca 0,1 uF kondansatör əlavə etdim. Gərginlik hissi şəbəkəsi giriş terminalının yaxınlığında lehimlənir.

Addım 5: Mövcud Hiss Şəbəkəsi üçün hissələri əlavə edin

Cari Sense Şəbəkəsi üçün hissələrin əlavə edilməsi
Cari Sense Şəbəkəsi üçün hissələrin əlavə edilməsi
Cari Sense Şəbəkəsi üçün hissələrin əlavə edilməsi
Cari Sense Şəbəkəsi üçün hissələrin əlavə edilməsi
Cari Sense Şəbəkəsi üçün hissələrin əlavə edilməsi
Cari Sense Şəbəkəsi üçün hissələrin əlavə edilməsi
Cari Sense Şəbəkəsi üçün hissələrin əlavə edilməsi
Cari Sense Şəbəkəsi üçün hissələrin əlavə edilməsi

Cərəyan, rezistor şəbəkəsi tərəfindən əvvəlcədən təyin edilmiş bir qazancla şönt rezistorundakı gərginlik düşməsini hesablamaq və gücləndirməklə ölçülür. Ters çevrilməyən gücləndirmə rejimi istifadə olunur. İstenmeyen gərginlik düşməməsi üçün lehim izlərini kiçik tutmaq məsləhətdir.

Addım 6: Qalan bağlantıları tamamlayın və quruluşu bitirin

Qalan əlaqələri tamamlayın və quruluşu bitirin
Qalan əlaqələri tamamlayın və quruluşu bitirin
Qalan əlaqələri tamamlayın və quruluşu bitirin
Qalan əlaqələri tamamlayın və quruluşu bitirin
Qalan əlaqələri tamamlayın və quruluşu bitirin
Qalan əlaqələri tamamlayın və quruluşu bitirin

Bağlanan və lehimlənən gərginlik və cərəyan hissi şəbəkələri ilə, kişi baş pinlərini lehimləmək və lazımi güc və siqnal çıxışlarını etmək vaxtıdır. Modul, bir arduino lövhəsindən asanlıqla əldə edə biləcəyimiz 5 voltluq standart iş gərginliyi ilə işləyəcək. İki gərginlik mənası çıxışı arduinonun analoq girişlərinə bağlanacaq.

Addım 7: Modulu Arduino ilə bağlayın

Modulu Arduino ilə birləşdirmək
Modulu Arduino ilə birləşdirmək
Modulu Arduino ilə birləşdirmək
Modulu Arduino ilə birləşdirmək
Modulu Arduino ilə birləşdirmək
Modulu Arduino ilə birləşdirmək
Modulu Arduino ilə birləşdirmək
Modulu Arduino ilə birləşdirmək

Modul tamamlandıqda, nəhayət bir Arduino ilə əlaqə qurub işə salmağın vaxtı gəldi. Dəyərləri görmək üçün arduino ilə ünsiyyət qurmaq üçün I2C protokolundan istifadə edən bir OLED ekran istifadə etdim. Ekranda göstərilən parametrlər gərginlik, cərəyan və gücdür.

Addım 8: Layihə Kodu və Dövrə Şeması

Layihə Kodu və Dövrə Şeması
Layihə Kodu və Dövrə Şeması

Bu addımda güc modulunun dövrə diaqramını və kodunu əlavə etdim (Əvvəllər kodu ehtiva edən.ino və.txt faylını əlavə etmişdim, lakin bəzi server səhvləri kodun istifadəçilər üçün əlçatmaz və ya oxunmaz olmasına səbəb olmuşdu, buna görə hamısını yazdım Bu addımı atın. Bu kodu bölüşmək üçün yaxşı bir yol olmadığını bilirəm:(). Bu kodu tələblərinizə uyğun olaraq dəyişdirməkdən çekinmeyin. Ümid edirəm bu layihə sizin üçün faydalı oldu. Zəhmət olmasa rəylərinizi şərhlərdə paylaşın. Alqışlar!

#daxil edin

#daxil edin

#daxil edin

#daxil edin

#define OLED_RESET 4 Adafruit_SSD1306 displeyi (OLED_RESET);

float val = 0;

float cərəyanı = 0;

üzmə gərginliyi = 0;

üzmə gücü = 0;

boş quraşdırma () {

pinMode (A0, GİRİŞ);

pinMode (A1, GİRİŞ);

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // I2C addr 0x3C (128x32 üçün) display.display () ilə işə salın;

gecikmə (2000);

// Tamponu silin.

display.clearDisplay ();

display.setTextSize (1);

display.setCursor (0, 0);

display.setTextColor (BEYAZ);

Serial.begin (9600); // Serial monitorda dəyərləri görmək üçün

}

boşluq döngəsi () {

// sabit oxunuşlar üçün ortalamanın alınması

üçün (int i = 0; i <20; i ++) {

cari = cari + analoqOxu (A0);

gərginlik = gərginlik + analoqOxu (A1); }

cari = (cari/20); cari = cari * 0.0123 * 5.0; // kalibrləmə dəyəri, istifadə olunan komponentlərə görə dəyişdirilməlidir

gərginlik = (gərginlik/20); gərginlik = gərginlik * 0.0508 * 5.0; // kalibrləmə dəyəri, istifadə olunan komponentlərə görə dəyişdiriləcək

güc = gərginlik*cərəyan;

// dəyərləri serial monitorda çap etmək

Serial. çap (gərginlik);

Serial.print ("");

Serial. çap (cari);

Serial.print ("");

Serial.println (güc);

// dəyərləri OLED ekranda çap etmək

display.setCursor (0, 0);

display.print ("Gərginlik:");

ekran. çap (gərginlik);

display.println ("V");

display.setCursor (0, 10);

display.print ("Cari:");

display.print (cari);

display.println ("A");

display.setCursor (0, 20);

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

ekran. çap (güc);

display.println ("W");

display.display ();

gecikmə (500); // gecikmə ilə təyin olunan yeniləmə sürəti

display.clearDisplay ();

}

Tövsiyə: