Label

Kamis, 05 Juni 2025

modul pwm dengan arduino pro mini dilengkapi dengan batrai level meter 5 led

 

🔋 Contoh Indikator Level Baterai dengan LED (4 Tingkat)

🔧 Tujuan:

  • LED1 menyala jika tegangan ≥ 12.6V (full)

  • LED2 menyala jika tegangan ≥ 12.4V

  • LED3 menyala jika tegangan ≥ 12.2V

  • LED4 menyala jika tegangan ≥ 12.0V

  • Jika tegangan < 11.8V → semua LED mati + LED merah LOW BATT nyala


📐 Perhitungan Tegangan & ADC pada Arduino 3.3V

Dengan voltage divider 10k:3.3k:

ini:

V_ADC = V_bat × 0.248 ADC = V_ADC / 3.3 × 1023

Berikut ADC untuk tiap tegangan:

TeganganV_ADCADC
12.6V3.12V~968
12.4V3.07V~951
12.2V3.02V~935
12.0V2.98V~923
11.8V2.93V~907

🧠 Gunakan 4 LED (bar indikator) + 1 LED Low Battery

LEDPin Arduino
LED FullD3
LED HighD4
LED MidD5
LED LowD6
LED LowBatD7

✅ Kode Lengkap:


const int battPin = A1; const int hallPin = A0; const int pwmPin = 9; // LED indikator level baterai const int ledFull = 3; const int ledHigh = 4; const int ledMid = 5; const int ledLow = 6; const int ledLowBat = 7; // LED merah // Batas ADC untuk tiap level (Vref = 3.3V, divider 10k:3.3k) const int adcFull = 968; // 12.6V const int adcHigh = 951; // 12.4V const int adcMid = 935; // 12.2V const int adcLow = 923; // 12.0V const int adcCutoff = 907; // 11.8V void setup() { pinMode(pwmPin, OUTPUT); pinMode(ledFull, OUTPUT); pinMode(ledHigh, OUTPUT); pinMode(ledMid, OUTPUT); pinMode(ledLow, OUTPUT); pinMode(ledLowBat, OUTPUT); } void loop() { int battADC = analogRead(battPin); // Reset semua LED digitalWrite(ledFull, LOW); digitalWrite(ledHigh, LOW); digitalWrite(ledMid, LOW); digitalWrite(ledLow, LOW); digitalWrite(ledLowBat, LOW); if (battADC >= adcFull) { digitalWrite(ledFull, HIGH); digitalWrite(ledHigh, HIGH); digitalWrite(ledMid, HIGH); digitalWrite(ledLow, HIGH); } else if (battADC >= adcHigh) { digitalWrite(ledHigh, HIGH); digitalWrite(ledMid, HIGH); digitalWrite(ledLow, HIGH); } else if (battADC >= adcMid) { digitalWrite(ledMid, HIGH); digitalWrite(ledLow, HIGH); } else if (battADC >= adcLow) { digitalWrite(ledLow, HIGH); } else { // Baterai < 11.8V → LOW BATT digitalWrite(ledLowBat, HIGH); analogWrite(pwmPin, 0); // PWM dimatikan delay(100); return; } // Jika tegangan cukup, lanjutkan kontrol PWM int hallADC = analogRead(hallPin); int pwmValue = map(hallADC, 0, 1023, 0, 255); analogWrite(pwmPin, pwmValue); delay(100); }

💡 Saran Fisik:

  • Gunakan LED warna hijau untuk full, high, mid, low

  • Gunakan LED merah untuk low battery

  • Tambahkan resistor 330–470Ω di seri tiap LED

Tidak ada komentar:

Posting Komentar

Terbaru

modul pwm dengan arduino pro mini dilengkapi dengan batrai level meter 5 led

  🔋 Contoh Indikator Level Baterai dengan LED (4 Tingkat) 🔧 Tujuan: LED1 menyala jika tegangan ≥ 12.6V (full) LED2 menyala jika teg...

Lainya