Buat Voltmeter Cerdas dengan Arduino & Smartphone – Proyek DIY Mudah
Komponen dan Perlengkapan
Arduino UNO
×
1
PHPoC WiFi Shield for Arduino
×
1
Resistor 100k ohm
×
1
Resistor 1M ohm
×
1
Kabel jumper
×
1
Tentang Proyek Ini
Demonstrasi
Jika Anda baru dengan Arduino, Anda dapat memulai dengan Tutorial Arduino untuk pemula.
Cara Kerja
Kita dapat menggunakan pin input analog Arduino untuk mengukur tegangan. Namun, tegangan maksimum yang dapat diukur adalah 5V.
Untuk meningkatkan tegangan yang dapat diukur, kita perlu menggunakan pembagi tegangan
Teori
Kita punya:
V_measure = (R1 + R2) / R2 * V_in
ratio = (R1 + R2) / R2
=> V_measure = ratio * V_in
Jika kita memilih R1 = 10 * R2, kita punya:
V_measure = 11 * V_in
Karena maksimum V_in yang diizinkan adalah 5V => Tegangan maksimum yang dapat diukur adalah 55V
Untuk membatasi arus yang mengalir melalui pin Arduino, yang dapat menyebabkan kerusakan pada Arduino, kita perlu memilih nilai resistor sebesar mungkin.
Saya memilih R1 = 1 Mohm, R2 = 100Kohm
Dalam Praktik
Ada beberapa masalah dalam praktik
Nilai R1 dan R2 memiliki kesalahan. Kesalahan menyebabkan kesalahan pada V_measure
Sumber daya Arduino mungkin tidak stabil. Itu membuat V_REF dari input analog tidak stabil. Oleh karena itu, itu menyebabkan kesalahan dalam perhitungan V_in. => itu menyebabkan kesalahan dalam perhitungan V_measure
Masalah-masalah ini diatasi pada bagian Kalibrasi
Kalibrasi
1. Ukur nilai nyata dari (R1 + R2) / R2
Ini hanya perlu dilakukan satu kali untuk mendapatkan rasio
Kode untuk kalibrasi ini => lihat ResisterCalibration.ino di bagian kode
2. Ketidakstabilan Sumber Daya
Ketidakstabilan sumber daya menyebabkan ketidakstabilan dalam referensi tegangan pin analog. Itu menyebabkan pengukuran yang salah dalam perhitungan tegangan.
Untuk mengatasinya, kita perlu mengukur referensi tegangan secara sering.
Bagaimana cara mengukur referensi tegangan?
Hubungkan 3.3V ke pin A1
Referensi tegangan diukur secara tidak langsung berdasarkan nilai di A1:
Pemasangan seperti rangkaian "kabel kalibrasi resistor"
Unggah ResistorCalibration.ino
Buka Serial Plotter
Salin nilai rasio
Ganti nilai ini di baris 5 Voltmeter.ino
Ulangi pemasangan seperti "kabel utama"
Unggah Voltmeter.ino
Unggah Antarmuka Pengguna Web (voltmeter.php dan voltmeter_body.jpg) ke PHPoC Shield
Akses halaman web https://phpoc_shield_ip_address/voltmeter.php untuk melihat tegangan.
Anda dapat melihat tegangan di ponsel pintar seperti ini:
Tips Pemasangan:
Kit Starter Arduino Terbaik untuk Pemula
Lihat Kit Arduino Terbaik untuk Pemula
Kode
ResistorCalibration.ino
Voltmeter.ino
voltmeter.php
ResistorCalibration.inoArduino
- Pemasangan seperti yang dijelaskan di bagian Kalibrasi - Jalankan kode ini satu kali - Buka Serial Plotter - Salin nilai rasio - Ganti nilai ini di baris 5 Voltmeter.ino
double ratio; int analogReadAverage(int pin, int read_time) { unsigned long read_value = 0; // baca nilai analog in read_time kali: for(int i = 0; i < read_time; i++) { read_value += analogRead(pin); delay(2); } // Dapatkan rata-rata read_value /= read_time; return read_value; } double resistorCalibration() { double _ratio; double A0_read_value; double A1_read_value; A0_read_value = analogReadAverage(A0, 20); A1_read_value = analogReadAverage(A1, 20); _ratio = A1_read_value / A0_read_value; return _ratio; } void setup() { // inisialisasi komunikasi serial pada 9600 bps: Serial.begin(9600); } void loop() { ratio = resistorCalibration(); Serial.print("ratio:"); Serial.println(ratio); delay(200); }
Voltmeter.inoArduino
Ini adalah kode utama. Sebelum mengunggah kode ini, kita perlu : - unggah ResistorCalibration.ino - buka Serial Monitor - salin nilai rasio dan ganti nilai di baris 5 dari kode ini