Cara Memprogram Sensor Tegangan DC Pada ESP32

Cara Memprogram Sensor Tegangan DC Pada ESP32

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.h adalah library dasar Arduino.
  • port_sensor_tegangan adalah 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.
  • sensorValue berkisar 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 :

Apa itu ESP32?