Potensiometer: Mengatur Frekuensi Kedipan LED

Potensiometer: Mengatur Frekuensi Kedipan LED

Praktik Arduino untuk membaca sinyal analog dan menggunakannya untuk mengatur kecepatan kedipan LED secara dinamis.

🎯 Tujuan Praktik

Pada praktik ini kita akan menggunakan potensiometer sebagai sumber input analog.

Posisi potensiometer dibaca oleh Arduino melalui pin analog A0. Nilai tersebut kemudian dikonversi menjadi waktu tunda (delay) untuk mengatur frekuensi kedipan LED.

Konsep utama: potensiometer menghasilkan tegangan analog yang dapat dibaca Arduino sebagai nilai antara 0 sampai 1023.
Potensiometer
      │
      ▼
     A0
      │
      ▼
   Arduino
      │
      │ nilai 0 - 1023
      ▼
     map()
      │
      │ delay 50 - 1000 ms
      ▼
     LED
      

🧰 Komponen

Komponen Jumlah Fungsi
Arduino UNO 1 Mikrokontroler
Potensiometer 1 Input analog
LED 1 Output
Resistor 220 Ω 1 Pembatas arus LED
Breadboard 1 Media rangkaian
Kabel jumper Secukupnya Penghubung rangkaian

🔌 Rangkaian

Potensiometer mempunyai tiga kaki. Dua kaki luar dihubungkan ke 5V dan GND, sedangkan kaki tengah atau slider dihubungkan ke A0.

                 +5V
                  │
             ┌────┴────┐
             │ POTENSIO│
             │  METER  │
             └────┬────┘
                  │
                  ├──────────── A0
                  │
                 GND


D9 ─────────[ 220 Ω ]────────►|──────── GND
                               LED
      

Hubungan Pin

Komponen Koneksi
Potensiometer kaki kiri 5V
Potensiometer kaki tengah A0
Potensiometer kaki kanan GND
Anoda LED D9 melalui resistor 220 Ω
Katoda LED GND
⚠️ Perhatikan: Jika arah putaran potensiometer terasa terbalik, kaki 5V dan GND pada kedua sisi potensiometer dapat ditukar.

🧠 Memahami Potensiometer

Potensiometer dapat dipahami sebagai pembagi tegangan yang dapat diatur.

Ketika knop diputar, tegangan pada kaki tengah berubah. Arduino membaca tegangan tersebut melalui pin analog A0.

Potensiometer diputar

        5V
         │
         │
      [ POT ]
         │
         ├──────► A0
         │
         │
        GND


Tegangan A0 berubah
        ↓
analogRead()
        ↓
Nilai 0 - 1023
      

Pada Arduino Uno, pembacaan analog menghasilkan nilai dari 0 sampai 1023.

Posisi minimum

Tegangan A0 mendekati 0V.

Nilai pembacaan mendekati 0.

Posisi maksimum

Tegangan A0 mendekati 5V.

Nilai pembacaan mendekati 1023.

💻 Program Arduino

const int sensorPin = A0; // Pin potensiometer
const int ledPin = 9;     // Pin LED

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  int sensorValue = analogRead(sensorPin); // Baca nilai analog (0 - 1023)
  int delayTime = map(sensorValue, 0, 1023, 50, 1000); // Konversi ke waktu tunda

  digitalWrite(ledPin, HIGH);
  delay(delayTime);

  digitalWrite(ledPin, LOW);
  delay(delayTime);
}

🔍 Memahami Program

1. Menentukan Pin

const int sensorPin = A0;
const int ledPin = 9;

Potensiometer dibaca melalui A0, sedangkan LED dikendalikan melalui pin digital 9.

2. Membaca Nilai Analog

int sensorValue = analogRead(sensorPin);

Fungsi analogRead() membaca tegangan pada A0 dan menghasilkan nilai antara 0 sampai 1023.

Tegangan A0
    │
    ▼
analogRead()
    │
    ▼
0 ─────────────── 1023
minimum           maksimum
      

3. Mengubah Nilai dengan map()

int delayTime = map(sensorValue, 0, 1023, 50, 1000);

Fungsi map() mengubah rentang nilai dari satu rentang menjadi rentang lainnya.

Nilai Potensiometer Delay
0 50 ms
Nilai tengah Sekitar 525 ms
1023 1000 ms

Artinya, semakin besar nilai potensiometer, semakin besar nilai delayTime.

4. Mengatur Kedipan LED

digitalWrite(ledPin, HIGH);
delay(delayTime);

digitalWrite(ledPin, LOW);
delay(delayTime);

LED menyala selama delayTime, kemudian mati selama delayTime.

Karena nilai delayTime berasal dari potensiometer, kecepatan kedipan LED dapat berubah ketika knop diputar.

🧪 Langkah Hands-on

  1. Pasang potensiometer pada breadboard.
  2. Hubungkan salah satu kaki luar potensiometer ke 5V.
  3. Hubungkan kaki luar lainnya ke GND.
  4. Hubungkan kaki tengah potensiometer ke A0.
  5. Hubungkan D9 ke resistor 220 Ω.
  6. Hubungkan resistor ke anoda LED.
  7. Hubungkan katoda LED ke GND.
  8. Upload program ke Arduino UNO.
  9. Putar knop potensiometer secara perlahan.
  10. Amati perubahan kecepatan kedipan LED.
Hasil yang diharapkan:
Ketika posisi potensiometer berubah, kecepatan kedipan LED juga berubah secara dinamis.

💡 Challenge: Mengatur Kecerahan LED

Pada program sebelumnya, potensiometer digunakan untuk mengatur kecepatan kedipan.

Sekarang ubah program sehingga potensiometer digunakan untuk mengatur kecerahan LED secara langsung.

Gunakan fungsi analogWrite() dan map().

Petunjuk:
Nilai dari analogRead() berada pada rentang 0–1023, sedangkan nilai PWM untuk analogWrite() berada pada rentang 0–255.
int brightness = map(sensorValue, 0, 1023, 0, 255);

Kemudian gunakan nilai tersebut untuk mengatur PWM LED:

analogWrite(ledPin, brightness);
Potensiometer
     │
     ▼
analogRead()
     │
     ▼
  0 - 1023
     │
     ▼
    map()
     │
     ▼
   0 - 255
     │
     ▼
analogWrite()
     │
     ▼
Kecerahan LED
      

🎓 Inti Pembelajaran

Pada praktik ini kita mulai berpindah dari dunia digital ke analog.

Konsep Fungsi
analogRead() Membaca nilai analog dari A0
0–1023 Rentang hasil pembacaan analog Arduino Uno
map() Mengubah satu rentang nilai menjadi rentang lainnya
delay() Mengatur waktu tunggu kedipan LED
analogWrite() Menghasilkan PWM untuk mengatur output
Kesimpulan:
Potensiometer menghasilkan tegangan analog yang dibaca Arduino melalui A0. Nilai tersebut dapat diproses menggunakan map() untuk mengendalikan parameter lain, seperti kecepatan kedipan atau tingkat kecerahan LED.

Post a Comment

0 Comments