Isi kandungan:

Arduino Volt Meter (0-100V DC) - Versi 2 (lebih baik): 3 Langkah
Arduino Volt Meter (0-100V DC) - Versi 2 (lebih baik): 3 Langkah

Video: Arduino Volt Meter (0-100V DC) - Versi 2 (lebih baik): 3 Langkah

Video: Arduino Volt Meter (0-100V DC) - Versi 2 (lebih baik): 3 Langkah
Video: Voltmeter 30V 100V 500V schematic DSN-DVM-368 V32D-4.2 V58-4 2024, Jun
Anonim
Image
Image
Langkah 1: Skematik
Langkah 1: Skematik

Dalam arahan ini, saya telah membina voltmeter untuk mengukur voltan tinggi DC (0-100v) dengan ketepatan dan ketepatan relatif menggunakan Arduino Nano dan ADS 1115 ADC.

Ini adalah versi kedua voltmeter yang menggunakan arahan saya sebelumnya di sini:

Pengukuran ujian yang saya ambil adalah tepat, kebanyakannya berada dalam jarak 0.1v voltan sebenar yang diukur dengan voltmeter standard (saya menggunakan Astro AI DM6000AR).

Ini jauh lebih baik, dan lebih mudah pada pendapat saya daripada menggunakan rujukan voltan luaran di Arduino.

Bekalan

1 x Arduino Nano - Pautan

1 x Paparan Oled (SSD 1306) - Pautan

1 x ADS 1115 - 16 bit ADC - Pautan

1 x 1 / 4W (saya cadangkan menggunakan perintang 1W) 1% Perintang - 220k ohm - Pautan

1 x 1 / 4W (saya cadangkan menggunakan perintang 1W) 1% Perintang - 10k ohm - Pautan

Papan roti dan wayar - Pautan

Astro AI DM6000AR - Pautan

Bank Kuasa USB - Pautan

Bateri 9V - Pautan

CanadianWinters adalah peserta dalam Program Associates Amazon Services LLC, program periklanan afiliasi yang direka untuk menyediakan cara bagi laman web untuk mendapatkan bayaran dengan menghubungkan ke Amazon.com dan laman web gabungan. Dengan menggunakan pautan ini, sebagai Amazon Associate, saya memperoleh hasil dari pembelian yang layak, walaupun anda membeli sesuatu yang lain - dan ia tidak akan dikenakan apa-apa.

Langkah 1: Langkah 1: Skematik

Langkah 1: Skematik
Langkah 1: Skematik

Saya menghubungkan semua bahagian mengikut skema di atas.

Saya mengikat pin ADDR ADC1115 ke tanah. Ini menetapkan alamat ADC ke 0x48.

Langkah 2: Langkah 2: Pengiraan Kod dan Perintang

Langkah 2: Pengiraan Kod dan Perintang
Langkah 2: Pengiraan Kod dan Perintang

Seperti yang diarahkan sebelumnya, idea litar adalah bahawa voltan DC yang akan diukur melalui perintang voltan. Voltan skala dan kemudian masuk ke pin analog penukar ADC untuk dibaca, kemudian diteruskan ke Arduino melalui I2C dan kemudian skala semula dan dipaparkan pada paparan OLed.

Saya tidak menggunakan rata-rata atau melicinkan kod dalam kes ini, kerana bacaannya agak tepat dan tepat. Untuk mengurangkan kebisingan, anda mungkin mahu menambahkan kapasitor kecil antara A0 (pada ADC) dan tanah. Ia tidak diperlukan untuk ujian saya.

Satu perkara yang saya perhatikan, adalah sedikit bunyi ketika tidak ada bateri yang terpasang (0 volt). Saya menggunakan monitor bersiri Arduino untuk memaparkan nilai ADC dan membetulkan / menyesuaikannya melalui kod.

Seperti yang diarahkan sebelumnya, saya membuat spreadsheet yang mengautomasikan pengiraan sekiranya anda ingin menggunakan nilai perintang yang berbeza dalam pembahagi voltan: Pautan ke Helaian Google

Inilah kod yang saya gunakan untuk projek ini:

#sertakan

#include #include #include Adafruit_ADS1115 iklan (0x48); // Alamat ADC U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (putaran, [reset]) int calib = 7; // Nilai penentukuran ADS1115 untuk mengurangkan voltan apungan ralat = 0; // digunakan untuk menyimpan nilai voltan apungan Radjust = 0.043421905; // Faktor pembahagi voltan (R2 / R1 + R2) float vbat = 0; // voltan akhir selepas calcs- voltan bateri // pemboleh ubah untuk menyegarkan skrin tanpa menggunakan penundaan lama yang tidak ditandatangani sebelumnyaMillis = 0; // akan disimpan kali terakhir skrin dimuat semula // pemalar tidak akan berubah: selang panjang const = 250; // selang untuk menyegarkan skrin (milisaat) penyediaan kosong (tidak sah) {Serial.begin (9600); u8g2.begin (); ads.begin (); } gelung void (kekosongan) {int16_t adc0; // 16 bit bacaan ADC input A0 adc0 = ads.readADC_SingleEnded (0); voltan = ((adc0 + calib) * 0.1875) / 1000; arus panjang yang tidak ditandatanganiMillis = millis (); vbat = voltan / Radjust; // Cegah paparan voltan negatif semasa bateri terputus jika (vbat = selang) {sebelumnyaMillis = currentMillis; u8g2.clearBuffer (); // kosongkan menu dalaman // Paparan Voltan Pek - Font di halaman ini: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // fon 20px u8g2.setFont (u8g2_font_fub35_tr); // fon 35px u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // fon 10 px u8g2.setCursor (1, 60); u8g2.print ("Volt"); } u8g2.sendBuffer (); // pindahkan memori dalaman ke kelewatan paparan (1); }

Langkah 3: Langkah 3: Mari Mengujinya

Langkah 3: Mari Mengujinya!
Langkah 3: Mari Mengujinya!

Untuk menguji voltmeter ini, saya menggunakan bateri 10x 9v yang saya dapat di sebuah kedai tempatan. Kali ini saya dapat mengukur hingga 97 volt! Saya merancang untuk menggunakan voltmeter ini untuk mengukur voltan pada pek bateri basikal elektrik saya (voltan antara 24-60v dengan 72v sesekali).

Setelah elektronik dibungkus ke dalam pcb dan kotak kecil, ini akan menjadikan meter pek bateri yang bagus dan mudah alih. Grafik dan fon di OLED dapat disesuaikan untuk memenuhi kebutuhan anda (mis. Fon yang lebih besar agar mudah dibaca). Tujuan saya adalah agar bacaan voltan pada meter Oled / Arduino tidak terlalu jauh dari Digital Multi Meter saya. Saya bertujuan untuk +/- 0, 3v max delta.

Seperti yang anda lihat dari video pada awal Instructable, saya dapat mengarkibkan ini! Sebilangan besar bacaan tepat!

Saya harap anda menikmati Instructable ini dan beritahu saya pendapat anda!

Disyorkan: