Pada tutorial ini, kita akan belajar bagaimana mengatur kecepatan blink LED dengan menggunakan potensiometer. Potensiometer adalah salah satu komponen elektronik yang dapat kita gunakan untuk mengubah tegangan listrik yang masuk ke suatu perangkat. Langsung saja kita bahas ya..
Alat dan Bahan:
- Arduino Uno (1 buah)
- LED (1 buah)
- Resistor 220 ohm (1buah)
- Potensiometer 10k (1 buah)
- Kabel jumper (secukupnya)
- Breadboard (1 buah)
Langkah-langkah :
- Hubungkan potensiometer ke breadboard menggunakan kabel jumper.
- Hubungkan kaki kiri potensiometer ke GND, kaki tengah ke pin A0, dan kaki kanan ke 5V Arduino.
- Hubungkan LED ke breadboard menggunakan kabel jumper. Kaki negatif(kaki yang pendek) dihubungkan ke GND sedangkan kutup positif(kaki yang Panjang) dipasang dengan resistor 220 ohm kemudian dihubungkan ke pin 13 Arduino.
- Uploadlah sketch program ke Arduino:
- Lakukan pengujian dengan cara memutar potensiometer untuk mengatur kecepatan blink LED.
int potPin = A0;
int ledPin = 13;
int potValue = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(potPin, INPUT);
}
void loop() {
potValue = analogRead(potPin);
digitalWrite(ledPin, HIGH);
delay(potValue);
digitalWrite(ledPin, LOW);
delay(potValue);
}
Pada kode di atas, kita dapat mendeklarasikan beberapa variabel yang digunakan dalam program:
- int potPin = A0; : Variabel potPin digunakan untuk menyimpan pin yang digunakan untuk potensiometer, yaitu pin A0.
- int ledPin = 13; : Variabel ledPin digunakan untuk menyimpan pin yang digunakan untuk LED, yaitu pin 13.
- int potValue = 0; : Variabel potValue digunakan untuk menyimpan nilai dari potensiometer yang dibaca dari pin A0.
Pada setup():
- pinMode(ledPin, OUTPUT); : Mengatur pin 13 sebagai output, sehingga mengirim sinyal ke pin tersebut untuk menyalakan atau mematikan LED.
- pinMode(potPin, INPUT); : Mengatur pin A0 sebagai input untuk membaca nilai dari potensiometer yang dihubungkan ke pin A0 tersebut.
Pada loop():
- potValue = analogRead(potPin); : Membaca nilai dari potensiometer yang dihubungkan ke pin A0 dan menyimpannya dalam variabel potValue.
- digitalWrite(ledPin, HIGH); : Mengirim sinyal HIGH ke pin 13, sehingga LED yang dihubungkan ke pin tersebut akan menyala.
- delay(potValue); : Memberikan delay selama nilai potValue dengan satuan milisecond. Nilai ini didapat dari nilai yang dibaca dari potensiometer sehingga delay akan berubah-ubah sesuai dengan posisi potensiometer.
- digitalWrite(ledPin, LOW); : Mengirim sinyal LOW ke pin 13, sehingga LED yang dihubungkan ke pin tersebut akan mati.
- delay(potValue); : Memberikan delay sesuai dengan nilai potValue.
Secara keseluruhan, program ini digunakan untuk menghidupkan dan mematikan LED secara bergantian dengan kecepatan yang ditentukan oleh posisi potensiometer. Setiap kali program dijalankan, nilai dari potensiometer akan dibaca dan digunakan sebagai delay untuk menghidupkan dan mematikan LED.
Note: Program tersebut tidak menggunakan perintah mapping pada input potensiometer sehingga nilai yang dibaca dari potensiometer akan digunakan sebagai delay tanpa dikonversi terlebih dahulu yaitu sebesar 0-1023. Dalam kasus ini, akan sangat sulit untuk mengatur kecepatan blink LED secara tepat karena nilai delay yang dihasilkan hanya akan berada dalam rentang 0 hingga 1023 milisecond, yang mungkin terlalu cepat atau terlalu lambat untuk digunakan sebagai delay. Maka dari itu perlu di tambahkan perintah mapping. Untuk memahami lebih lanjut tentang kegunaan perintah mapping sehingga dapat mengatur nilai delay yang sesuai dapat dilihat di postingan berikutnya.
Dengan menggunakan potensiometer ini, kita dapat dengan mudah mengatur kecepatan blink LED sesuai keinginan kita. Demikian pembahasan kali ini, semoga bermanfaat. Silahkan komen jika ada yang ingin dipertanyakan;)