Pada kesempatan kali ini, saya akan mejabarkan beberapa project arduino dengan memanfaatkan LED. Project tersebut dapat mudah dipratekan oleh siapapun yang akan belajar tentang arduino baik itu pemula, penghobi, maupun yang sudah expert dalam hal programming arduino.
Selain itu project ini dapat juga dikembangkan atau diaplikasikan ke hal yang berguna pada kehidupan sehari – hari. Misalnya digunakan untuk membuat kode rahasia yang dipakai dalam kondisi perang, dan lain – lain.
Project 1 : project arduino membuat sandi morse “SOS”
Sandi Morse merupakan sistem representasi huruf, angka, dan tanda baca dengan menggunakan sinyal – sinyal kode untuk mengimplemantasikan suatu makna kata yang dikonversi.
Kebanyakan orang mengenal sandi ini hanya bisa digunakan oleh orang dari pramuka, tetapi tidak begitu dikarenakan kemudahan untuk dipelajari bagi semua orang.
Sandi Morse diciptakan oleh Samuel F.B. Morse dan Alfred Vail pada tahun 1835. Untuk menghafalkan kode ini digunakan metode yang mengelompokkan huruf-huruf berdasarkan bagaimana huruf ini diwakili oleh kode morsenya.
Tabel sandi morse
A • – | J • – – – | S • • • | 2 • • – – – |
B – • • • | K – • – | T – | 3 • • • – – |
C – • – • | L • – • • | U • • – | 4 • • • • – |
D – • • | M – – | V • • • – | 5 • • • • • |
E • | N – • | W • – – | 6 • • • • – |
F • • – • | O – – – | X – • • – | 7 – – • • • |
G – – • | P • – – • | Y – • – – | 8 – – – • • |
H • • • • | Q – – • – | Z – – • • | 9 – – – – • |
I • • | R • – • | 1 • – – – – | 0 – – – – – |
Kode representasi morse “SOS” :
- S direpresentasikan dengan • • •
- O direpresentasikan dengan – – –
- S direpresentasikan dengan • • •
Bahan yang perlu dipersiapkan :
- LED merah
- Resistor : 220 Ω
- Breadboard
- Arduino Uno
- Komputer + Software IDE Arduino
- Kabel jumper
Skema rangkaian yang dirangkaian
Koding pemrograman
//untuk mengirimkan isyarat SOS secara berulang int LED = 13; //memberikan nama alias dengan nama LED void setup() { pinMode(LED, OUTPUT); //deklarasikan LED sebagai output } void hurufs(){ //konversi (HURUF S)• • • digitalWrite(LED, HIGH); delay(300); digitalWrite(LED, LOW); delay(100); digitalWrite(LED, HIGH); delay(300); digitalWrite(LED, LOW); delay(100); digitalWrite(LED, HIGH); delay(300); digitalWrite(LED, LOW); } void hurufo(){ //konversi (Huruf O) – – – digitalWrite(LED, HIGH); delay(900); digitalWrite(LED, LOW); delay(100); digitalWrite(LED, HIGH); delay(900); digitalWrite(LED, LOW); delay(100); digitalWrite(LED, HIGH); delay(900); digitalWrite(LED, LOW); } void loop() { hurufs(); delay(500); hurufo(); delay(500); hurufs(); delay(500); delay(2000); }
Project 2 : Project Arduino mengatur kecerahan (Fading) LED
Project ke-2 ini berbicara tentang bagaimana cara membuat lampu LED menjadi redup dan terang menggunakan fungsi analogWrite().
Pada fungsi tersebut mempergunakan modulasi lebar pulsa atau PWM, yang berfungsi untuk mengubah kondisi pin digital untuk meng-ON-kan dan meng-OFF-kan dengan sangat cepat.
Efek dari itu digunakan untuk menciptakan efek terang maupun redup sesuai dengan nilai PWM yang diberikan.
Apa itu PWM?
Pulse Width Modulation merupakan teknik untuk mendapatkan hasil sinyal analog dengan cara digital. Nilai rata-rata tegangan dan arus diumpankan ke beban dan dikendalikan dengan perbandingan antara tegangan masukan dan beban dan mematikan pada waktu yang cepat.
Semakin lama kondisi tersebut dibandingkan dengan periode off, maka tinggi pula daya total dipasok yang menuju ke beban. Analoginya seperti sebuah saklar untuk membuka dan menutup dengan sangat cepat dalam satuan waktu.
Untuk mendapatkan nilai yang bervariasi analog dengan mengubah atau memodulasi lebar pulsa. Jika mengulangi pola ini on-off cukup cepat dan diaplikasikan pada LED misalnya, hasilnya yaitu kecerahan LED yang bervariasi.
Pin khusus untuk PWM
Arduino UNO memiliki 6 pin digital yang dapat digunakan sebagai output PWM (3, 5, 6, 9, 10, 11). Arduino dapat mengirim sinyal PWM dengan fungsi analogWrite (). Panggilan untuk analogWrite () adalah pada skala 0-255, sehingga analogWrite (255) meminta siklus 100% (selalu), dan analogWrite (127) adalah siklus 50% (pada separuh waktu) untuk contoh.
Bahan yang diperlukan yaitu :
- Arduino Uno
- LED 5mm merah
- Resistor 220 ohm
- Komputer + Software IDE Arduino
Skema yang perlu dirangkaikan
Fungsi analogWrite () yang akan dituliskan ke dalam program utama ( void loop() ) membutuhkan dua argumen: Satu mengatakan fungsi yang pin yang akan digunakan, dan satu lagi yang menunjukkan nilai dari keluarkan PWM yang akan ditulis.
Koding pemrograman
int led = 3; // nama alias dari pin 3 yaitu LED int brightness = 00; // nilai awal brightness disetting 0 int fadeAmount = 5; // nilai dari fadeamount dengan kelipatan 5 void setup() { // Deklarasi pin 3 sebagai output pinMode(led, OUTPUT); } void loop() { // sett nilai PWM ke LED analogWrite(led, brightness); // perubahan nilai brightness brightness = brightness + fadeAmount; // setting maksimal dan minimal nilai brightness //jika mendekati 255 akan berkurang 5 if (brightness == 00|| brightness == 255) { fadeAmount = -fadeAmount ; } // wait for 30 milliseconds to see the dimming effect delay(30); }
Project 3 : Project Arduino mengatur kecerahan (Fading) LED (lanjutan)
Project ketiga merupakan pengembangan dari project kedua, hanya saja kontrol untuk kecerahan LED berdasarkan putaran potensiometer, putarnya semakin ke kanan semakin terang, dan sebaliknya.
Prinsip kerjanya yaitu Arduino uno membaca nilai pada potensiometer yang terhubung dengan pin ADC yang dikonversi menjadi nilai 10 bit (0-1023). Kemudian dari nilai tersebut dihubungkan dengan fungsi analogWrite () yang dimana keluaran atau outputnya langsung ke LED.
Berikut skema rangkaian sederhananya untuk project ketiga ini.
Skema yang perlu dirangkaikan
Tingkat kecerahan dari LED berdasarkan nilai pembacaan potensiometer, dan diubah dalam bentuk nilai PWM.
Koding pemrograman
int led = 3; // nama alias pin 3 yaitu LED void setup() { // deklarasi Led sebagai output pinMode(led, OUTPUT); //inisialisasi komunikasi serial pada kecepatan 9600 bps Serial.begin(9600); } void loop() { int potensio = analogRead(A0); int pot = map(potensio, 00 , 1023, 00 , 255); // set nilai brightness berdasarkan pembacaan potensiometer analogWrite(led, pot); //terdapat jeda atau tunda sebesar 30 ms untuk pembacaan berikutnya Serial.println(pot); delay(30); }
Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!
>> CMIIW <<