Sensor Tegangan DC adalah sebuah perangkat atau modul elektronik yang digunakan untuk mengukur tegangan listrik arus searah (DC – Direct Current) pada suatu rangkaian atau sumber daya listrik.Berikut adalah cara memproogram sensor tegangan DC pada ESP32 :
#include <Arduino.h>
int port_sensor_tegangan = A0;
float baca_sensor_tegangan() {
float R1 = 30000.0; //nilai resistor dari module tegangan. jgn diubah
float R2 = 7500.0;
int sensorValue = analogRead(port_sensor_tegangan);
float tegangan = (sensorValue * 3.3) / 1024.0; // sesuaikan tegangan sesuai board
tegangan = tegangan / (R2 / (R1 + R2)); // rumus wajib
//dibawah ini adalah skala nilai, untuk mengatasi masalah perbedaan hasil pengukuran sensor dengan volt sebenarnya, jika tidak ada masalah maka tidak perlu dipakai.
// tegangan = tegangan * (10.0 / 15.88); // faktor koreksi // Koreksi faktor penskalaan berdasarkan data percobaan volt sebenarnya 10 tapi terbaca 15.88
return tegangan;
}
void setup()
{
Serial.begin(9600);
pinMode(port_sensor_tegangan, INPUT);
}
void loop(){
float sensor_tegangan = baca_sensor_tegangan();
Serial.println("Tegangan : " + (String)sensor_tegangan);
}
Berikut ini adalah penjelasan dari kode di atas :
1. Library dan Deklarasi Variabel
#include <Arduino.h>
int port_sensor_tegangan = A0;
Arduino.hadalah library dasar Arduino.port_sensor_teganganadalah pin analog yang digunakan untuk membaca tegangan dari sensor (A0).
2. Fungsi membaca tegangan
float baca_sensor_tegangan() {
float R1 = 30000.0; // nilai resistor pertama dalam ohm (30 kΩ)
float R2 = 7500.0; // nilai resistor kedua dalam ohm (7.5 kΩ)
int sensorValue = analogRead(port_sensor_tegangan); // baca nilai analog dari pin A0 (0-1023)
float tegangan = (sensorValue * 3.3) / 1024.0; // konversi nilai ADC ke tegangan (dengan referensi 3.3V)
tegangan = tegangan / (R2 / (R1 + R2)); // hitung tegangan sebenarnya berdasarkan pembagi tegangan
// Jika ingin mengoreksi hasil pengukuran agar lebih akurat, bisa digunakan faktor koreksi di bawah (dikomentari)
// tegangan = tegangan * (10.0 / 15.88);
return tegangan;
}
Penjelasan:
analogRead()membaca nilai analog dari sensor tegangan yang sudah melalui pembagi tegangan.sensorValueberkisar dari 0 hingga 1023, yang dikonversi ke tegangan sebenarnya (tegangan) berdasarkan referensi ADC (3.3V).- Karena sensor menggunakan pembagi tegangan yang terdiri dari resistor R1 dan R2, tegangan pada pin sensor adalah hasil pembagian dari tegangan input asli.
- Rumus pembagi tegangan: Vout=Vin×R2R1+R2V_{out} = V_{in} \times \frac{R2}{R1 + R2} Sehingga untuk mendapatkan tegangan asli (
V_in), rumusnya dibalik: Vin=Vout÷R2R1+R2V_{in} = V_{out} \div \frac{R2}{R1 + R2} - Komentar kode menyebutkan ada opsi untuk kalibrasi (faktor koreksi) supaya hasil pengukuran lebih akurat jika sensor membaca beda dengan voltmeter sebenarnya.
3. Setup Arduino
void setup() {
Serial.begin(9600); // memulai komunikasi serial untuk debugging/output data
pinMode(port_sensor_tegangan, INPUT); // set pin analog sebagai input (optional, karena analogRead sudah otomatis)
}
- Serial Monitor diinisialisasi untuk menampilkan data tegangan.
- Pin sensor di-set sebagai input.
4. Loop utama
void loop() {
float sensor_tegangan = baca_sensor_tegangan(); // membaca tegangan dari sensor
Serial.println("Tegangan : " + (String)sensor_tegangan); // menampilkan tegangan dalam format string ke Serial Monitor
}
- Secara terus-menerus membaca tegangan dari sensor.
- Mencetak hasil pembacaan ke Serial Monitor dengan format:
Tegangan : [nilai tegangan]
Ringkasan
Kode ini:
- Membaca nilai analog dari sensor tegangan DC yang menggunakan pembagi tegangan (R1=30kΩ dan R2=7.5kΩ).
- Mengubah nilai ADC menjadi tegangan input sebenarnya.
- Menampilkan tegangan tersebut secara serial.
untuk diskusi bisa kontak dibawah ini :

Sosial media :





