Mündəricat:
Video: Arduino Həssas və Dəqiq Volt Ölçən (0-90V DC): 3 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Bu təlimatda, Arduino Nano istifadə edərək yüksək gərginliyi DC (0-90v) nisbi dəqiqliklə və dəqiqliklə ölçmək üçün bir voltmetr qurdum.
Aldığım test ölçüləri kifayət qədər dəqiq idi, əsasən standart bir voltmetrlə ölçülmüş faktiki gərginliyin 0,3v -dən çox olmamaqla (bir Astro AI DM6000AR istifadə etdim). Bu cihazdan məqsədli istifadə üçün kifayət qədər yaxındır.
Bunu arxivləşdirmək üçün bir gərginlik istinadını (4.096v) və gərginlik bölücüdən istifadə etdim.
Kod tərəfində, əlbəttə ki, Arduino Nano üçün "xarici istinad" seçimini və Arduino dərslərində "Düzləşdirmə" nümunəsini istifadə etdim.
Təchizat
1 x Arduino Nano - Bağlantı
1 x Oled Ekran (SSD 1306) - Bağlantı
1 x 1/4W 1% Rezistorlar - 1k ohm - Bağlantı
1 x 1/4W 1% Rezistorlar - 220k ohm - Bağlantı
1 x 1/4W 1% Rezistorlar - 10k ohm - Bağlantı
1 x 4.096v LM4040DIZ -4.1 Gərginlik Referansı - Bağlantı
Çörək paneli və tellər - Bağlantı
Astro AI DM6000AR - Bağlantı
USB Güc Bankı - Bağlantı
9V Batareyalar - Bağlantı
CanadianWinters, Amazon.com və əlaqəli saytlara keçid etməklə saytların ödəniş qazanması üçün bir vasitə təmin etmək üçün hazırlanmış Amazon Services LLC Associates Proqramının iştirakçısıdır. Bu bağlantıları istifadə edərək, Amazon Associate olaraq, başqa bir şey satın alsanız da, uyğun satınalmalardan qazanıram-və bunun sizə heç bir dəyəri olmayacaq.
Addım 1: Şematik
Bütün hissələri yuxarıdakı sxemə görə bağladım. Xüsusilə qətnaməni itirməmək üçün 5v işarəsinə mümkün qədər yaxın olmaq üçün 4.096 gərginlik istinadını seçdim.
Məlumat cədvəlindən sonra fərqli bir dəyərdən istifadə oluna bilsə də, gərginlik istinadı üçün 1K ohm rezistor seçdim. İstinad üçün gərginlik Nano 5v pinindən verilir.
Dövrün fikri, ölçülən DC gərginliyinin bir gərginlik rezistorundan keçməsidir. Ölçülən gərginlik Arduinonun analoq pininə daxil olur, nümunələnir, hamarlanır, yenidən ölçülür və OLed ekranda göstərilir.
Hər şeyi sadə saxlamağa çalışdım:)
Addım 2: Kod və Rezistor Hesablamaları
Rezistorların dəyərləri, empedansı 10k ohmdan aşağı saxlamaq üçün tövsiyə olunduğu kimi seçildi (səhv etmirəmsə Arduino/Atmega məlumat cədvəlindədir).
İşləri asanlaşdırmaq üçün fərqli müqavimət dəyərlərindən istifadə etmək istəsəniz hesablamaları avtomatlaşdıran bir elektron cədvəl hazırladım: Google Hesabına bağlantı
Bu layihə üçün istifadə etdiyim kod budur:
#daxil edin
#daxil U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (fırlanma, [sıfırlama]) üzmə gərginliyi = 0; // float gərginlik dəyərini saxlamaq üçün istifadə olunur Radjust = 0.043459459; // Gərginlik bölücü faktoru (R2 /R1+R2) float vbat = 0; // hesablamadan sonra son gərginlik- batareya float gərginliyi Vref = 4.113; // Gerilim arayış - ölçülmüş real dəyər. Nominal dəyər 4.096v const int numReadings = 50; // oxu nümunələrinin sayı - daha hamarlaşdırmaq üçün artırın. Daha sürətli oxumaq üçün azaldın. int oxunuşları [numReadings]; // analoq girişdən oxunmalar int readIndex = 0; // indiki oxunuş indeksi işarəsiz uzun ümumi = 0; // işləyən ümumi int orta = 0; // gecikmədən istifadə etmədən ekranı yeniləmək üçün dəyişənlər işarəsiz uzun əvvəlkiMillis = 0; // son dəfə ekran yenilənəndə saxlayacaq // sabitlər dəyişməyəcək: const long interval = 50; // ekranı yeniləmək üçün vaxt (milisaniyə) boşluq qurulması (boşluq) {analogReference (EXTERNAL); // istinad gərginliyi 4.096 üçün AREF istifadə edin. İstinad real gərginliyim 4.113v u8g2.begin (); for (int thisReading = 0; thisReading = numReadings) {//… əvvəlinə sarın: readIndex = 0; } // ortalamanı hesabla: orta = (cəmi / sayıOxumlar); gərginlik = orta * (Vref / 1023.0); //4.113 Vref vbat = gərginlik/Radjust; // Millis istifadə edərək ekranın yenilənməsi üçün gecikməni təyin edin (currentMillis - previousMillis> = interval) {// ekranın son dəfə yeniləndiyini qeyd edin əvvəlkiMillis = currentMillis; u8g2.clearBuffer (); // daxili menyu silin // Paket Gərginliyi ekranı u8g2.setFont (u8g2_font_fub20_tr); // 20px font u8g2.setCursor (1, 20); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px font u8g2.setCursor (76, 20); u8g2.print ("Volt"); u8g2.setCursor (1, 40); u8g2.print ("CanadianWinters"); u8g2.setCursor (1, 60); u8g2.print ("Həssas Gərginlik"); } u8g2.sendBuffer (); // daxili yaddaşı ekran gecikməsinə köçürün (1); }
Arduino kodlaşdırma ilə bir az paslı olduğumu unutmayın, buna görə hər hansı bir səhv və ya kodu təkmilləşdirmək üçün bir yol taparsanız, təkliflərə açıqam:)
Addım 3: Gəlin Test Edək
Bu voltmetrini yoxlamaq üçün yerli bir mağazada aldığım 8x 9v batareyalardan istifadə etdim. Elektrikli velosiped batareyalarımdakı gərginliyi ölçmək üçün bu voltmetrdən istifadə etməyi planlaşdırıram (aralıqda 72v olan 24-60v arasında dəyişir).
Elektronika bir pcb və kiçik bir qutuya yığıldıqdan sonra bu, gözəl və portativ bir batareya paketi sayğacına çevriləcəkdir. OLED üzərindəki qrafika və şriftlər ehtiyaclarınıza uyğunlaşdırıla bilər (məsələn, asan oxumaq üçün daha böyük şrift).
Məqsədim, Rəqəmsal Çox Ölçmə cihazımdan çox da uzaq olmayan Oled/Arduino sayğacında bir gərginlik oxunuşuna sahib olmaq idi. +/- 0, 3v max delta üçün hədəfləyirdim. Videodan da gördüyünüz kimi, bunu ölçmələrin yuxarı ucundan başqa arxivləşdirə bildim.
Ümid edirəm bu Təlimatlandırmadan zövq aldınız və fikirlərinizi mənə bildirin!
Tövsiyə:
Arduino Volt Ölçən (0-100V DC) - Versiya 2 (daha yaxşı): 3 addım
Arduino Volt Ölçən Cihaz (0-100V DC)-Versiya 2 (daha yaxşı): Bu təlimatda, Arduino Nano və ADS 1115 ADC istifadə edərək yüksək gərginliyi DC (0-100v) nisbi dəqiqliklə və dəqiqliklə ölçmək üçün bir voltmetr qurdum. .Bu, mənim əvvəlki təlimatımda istifadə olunan voltmetrin ikinci versiyasıdır: https: // ww
GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Dəqiq: 3 addım
GPSDO YT, İntizamlı Osilator 10Mhz Referans Tezliyi. Aşağı Qiymət. Düzgün .: ********************************************* ******************************** STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP Bu köhnəlmiş bir layihədir. yeni 2x16 lcd ekran versiyası burada mövcuddur: https: //www.instructables.com/id
Köhnə Rus VFD Borulardan Arduino üçün Qalxan: Saat, Termometr, Volt Ölçən : 21 Addım (Şəkillərlə)
Köhnə Rus VFD Borulardan Arduino üçün Qalxan: Saat, Termometr, Volt Ölçer …: Bu layihənin tamamlanması təxminən yarım il çəkdi. Bu layihədə nə qədər iş aparıldığını təsvir edə bilmərəm. Bu layihəni təkbaşına etmək məni sonsuza qədər aparacaqdı, buna görə də dostlarımdan kömək aldım. Burada işlərimizin çox uzun bir təlimatda toplandığını görə bilərsiniz
20 funt sterlinqdən aşağı olan COVID-19 Ventilatoru üçün Arduino ilə dəqiq bir hava axını sensoru necə hazırlanır: 7 addım
20 funt sterlinqdən aşağı olan COVİD-19 Ventilatoru üçün Arduino ilə Həqiqi Hava Akış Hızı Sensoru Necə Hazırlanır: Zəhmət olmasa bu orifis axını sensorunun ən son dizaynı üçün bu hesabata baxın: https://drive.google.com/file/d/1TB7rhnxQ6q6C1cNb. ..Bu təlimatlar, aşağı qiymətli diferensial təzyiq sensoru ilə hava axını sensoru necə qurulacağını göstərir
Cib Volt Ölçən: 6 Adım (Şəkillərlə birlikdə)
Cib Volt Ölçən: Bir müddətdir ki, bu voltmetrin daha böyük bir versiyasını istifadə edirəm və həmişə Cib Ölçülü Müsabiqəsini görəndə özümə dedim ki, niyə bu fürsətdən istifadə etmədim və bunu sizinlə paylaşmadım Dizayn təkmilləşdirmələri