18/02/2025
Belajar Arduino
Arduino itu seperti otak kecil untuk mengendalikan benda-benda elektronik. Kalau kamu mau bikin lampu menyala sendiri, kipas berputar otomatis, atau bahkan robot kecil, Arduino yang mengatur semuanya. Bayangkan Arduino seperti otak manusia, yang bisa menerima informasi (misalnya tombol ditekan) dan kemudian memberi perintah (misalnya nyalakan lampu).
Dasar-Dasar Arduino
1. Papan Arduino
Ini adalah perangkat kerasnya, seperti papan kecil dengan banyak lubang dan komponen elektronik. Ada berbagai jenis Arduino, tapi yang paling populer adalah Arduino Uno.
2. Mikrokontroler
Ini adalah "otaknya", yaitu chip kecil di tengah papan Arduino yang memproses semua perintah.
3. Pin Input dan Output (I/O)
Input: Tempat untuk menerima informasi, misalnya dari sensor suhu atau tombol.
Output: Tempat untuk mengirim perintah, misalnya menyalakan lampu atau menggerakkan motor.
4. Sensor dan Aktuator
Sensor: Memberi informasi ke Arduino, misalnya sensor cahaya, sensor suhu, atau sensor gerak.
Aktuator: Alat yang melakukan sesuatu berdasarkan perintah Arduino, seperti motor, lampu LED, atau buzzer.
5. Bahasa Pemrograman Arduino
Arduino menggunakan bahasa pemrograman C++ yang disederhanakan. Contohnya, untuk menyalakan lampu LED:
void setup() {
pinMode(13, OUTPUT); // Menetapkan pin 13 sebagai output
}
void loop() {
digitalWrite(13, HIGH); // Nyalakan LED
delay(1000); // Tunggu 1 detik
digitalWrite(13, LOW); // Matikan LED
delay(1000); // Tunggu 1 detik
}
Penjelasan:
setup(): Bagian ini dijalankan sekali saat Arduino dinyalakan.
loop(): Bagian ini berjalan terus-menerus (seperti napas manusia).
pinMode(): Menentukan apakah sebuah pin digunakan sebagai input atau output.
digitalWrite(): Memberikan tegangan tinggi (HIGH) atau rendah (LOW) ke pin tertentu.
delay(): Menunggu selama beberapa milidetik sebelum menjalankan perintah berikutnya.
6. Software Arduino (IDE)
Untuk menulis dan mengunggah kode ke Arduino, kita butuh software bernama Arduino IDE. Dari sini, kita bisa mengetik program, menghubungkan Arduino ke komputer, dan mengunggah kode ke papan Arduino.
7. Power Supply (Sumber Daya)
Arduino bisa mendapatkan daya dari kabel USB (dari komputer atau power bank) atau dari adaptor listrik.
8. Komunikasi dengan Komputer
Arduino bisa berkomunikasi dengan komputer melalui kabel USB menggunakan Serial Monitor, alat di dalam Arduino IDE yang bisa menampilkan data dari sensor atau memberikan perintah ke Arduino.
Contoh Proyek Sederhana dengan Arduino
1. Lampu Otomatis
Gunakan sensor cahaya untuk menyalakan LED saat ruangan gelap.
2. Alarm Pencuri
Gunakan sensor gerak untuk mendeteksi seseorang dan menyalakan buzzer.
3. Termometer Digital
Gunakan sensor suhu untuk menampilkan suhu di layar LCD.
Jadi, Arduino itu gampang: kamu kasih perintah lewat kode, dia jalankan perintahnya. Kayak robot kecil yang bisa kamu program sesuka hati.
Arduino Uno adalah salah satu papan mikrokontroler paling populer, yang dirancang agar mudah digunakan oleh pemula maupun ahli. Untuk memahami arsitektur Arduino Uno, bayangkan ini seperti tubuh manusia: ada otak (mikrokontroler), tangan dan kaki (pin I/O), mata dan telinga (sensor), serta mulut (komunikasi dengan komputer).
---
1. Gambar dan Bagian-Bagian Arduino Uno
Berikut adalah diagram sederhana papan Arduino Uno:
+----------------------------------------------------+
| USB | ATmega328P (Otak) |
| Port | +-------------------+ |
| | | Digital Pins | |
| | | 0 - 13 (Tangan) | +-----------+ |
| | +-------------------+ | Voltage | |
| | | Regulator| |
| | +-------------------+ +-----------+ |
| | | Analog Pins A0-A5 | |
| | | (Mata & Telinga) | |
| | +-------------------+ |
| Power Jack Reset Button |
+----------------------------------------------------+
---
2. Komponen-Kompnen Utama di Arduino Uno
1. Mikrokontroler (Otak) - ATmega328P
Ini adalah chip utama yang menjalankan semua program.
Mempunyai CPU 16 MHz, memori Flash 32 KB, RAM 2 KB, dan EEPROM 1 KB.
Bisa diprogram menggunakan bahasa C/C++ lewat Arduino IDE.
2. Pin Digital (Tangan & Kaki) - 0 sampai 13
Digunakan untuk mengontrol perangkat seperti lampu LED, motor, buzzer.
Beberapa pin (3, 5, 6, 9, 10, 11) bisa mengeluarkan sinyal PWM untuk mengontrol kecepatan motor atau kecerahan LED.
3. Pin Analog (Mata & Telinga) - A0 sampai A5
Digunakan untuk membaca sensor suhu, sensor cahaya, atau sensor lainnya.
Mampu membaca tegangan dari 0V sampai 5V dengan resolusi 10-bit (0-1023).
4. Power Supply (Jantung & Darah)
Port USB: Bisa memberi daya ke Arduino dari komputer atau power bank.
Jack DC: Bisa diberi daya dengan adaptor 7-12V.
Regulator Tegangan: Menyesuaikan tegangan agar stabil di 5V untuk komponen Arduino.
5. Komunikasi (Mulut)
Port USB digunakan untuk mengunggah program dan berkomunikasi dengan komputer.
Pin TX (1) & RX (0) digunakan untuk komunikasi serial dengan modul lain seperti Bluetooth atau Wi-Fi.
6. Kristal Oscillator (Jantung Berdetak - 16 MHz)
Menentukan kecepatan kerja Arduino, memastikan instruksi dijalankan dengan waktu yang tepat.
7. Reset Button (Tombol Restart)
Kalau program macet, tekan tombol ini untuk memulai ulang.
---
3. Cara Kerja Arduino Uno dalam Sebuah Proses
Bayangkan Arduino seperti seorang pelayan restoran:
1. Membaca Input (Mata & Telinga)
Sensor cahaya melihat apakah ruangan gelap.
Sensor suhu mendeteksi apakah udara terlalu panas.
2. Memproses Data (Otak - ATmega328P)
Jika gelap → Nyalakan lampu LED.
Jika panas → Nyalakan kipas.
3. Mengeluarkan Output (Tangan & Kaki)
Menghidupkan atau mematikan LED, motor, atau suara alarm.
4. Berkomunikasi dengan Dunia Luar (Mulut - USB atau Serial)
Mengirim data ke komputer untuk ditampilkan di layar.
PWM (Pulse Width Modulation) adalah cara untuk menipu perangkat elektronik agar berpikir mereka mendapatkan daya yang bervariasi, padahal sebenarnya tidak.
Analog vs Digital: Kenapa PWM Diperlukan?
Tegangan Analog → Bisa diatur pelan-pelan, misalnya 0V, 1V, 2V, sampai 5V.
Tegangan Digital → Hanya ada dua pilihan: 0V (OFF) atau 5V (ON).
Masalahnya, Arduino hanya bisa mengeluarkan tegangan digital (0 atau 5V), jadi bagaimana kalau kita mau lampu redup atau motor berputar pelan?
Nah, di sinilah PWM beraksi!
---
Bagaimana PWM Bekerja?
PWM bekerja dengan menyalakan dan mematikan daya dengan sangat cepat, sehingga seolah-olah daya yang diberikan itu lebih kecil dari 5V.
Bayangkan kamu ingin membuat kipas berputar setengah kecepatan:
1. Jika kamu nyalakan (5V) terus-menerus, kipas akan berputar penuh.
2. Jika kamu matikan (0V) terus-menerus, kipas tidak berputar.
3. Jika kamu nyalakan sebentar, lalu matikan sebentar, lalu ulangi terus, kipas akan berputar lebih pelan!
Kecepatan atau intensitas ini ditentukan oleh Duty Cycle.
---
Apa Itu Duty Cycle?
Duty Cycle adalah persentase waktu di mana sinyal dalam keadaan ON (5V) dalam satu siklus.
Duty Cycle 100% (Full ON)
Perangkat mendapatkan 5V terus-menerus.
Contoh: Lampu menyala terang, kipas berputar kencang.
Duty Cycle 50% (Setengah ON, Setengah OFF)
Perangkat mendapatkan daya rata-rata 2,5V (setengah dari 5V).
Contoh: Lampu redup, kipas berputar setengah kecepatan.
Duty Cycle 25% (Lebih Banyak OFF)
Perangkat mendapatkan daya rata-rata 1,25V.
Contoh: Lampu sangat redup, kipas berputar pelan.
---
Contoh Gampang: PWM dalam Kehidupan Sehari-hari
1. Berkedip Cepat vs Berkedip Lambat
Bayangkan lampu yang kedip-kedip sangat cepat (1000x per detik). Mata kita akan melihatnya seolah-olah lampu redup, padahal sebenarnya hanya menyala dan mati dengan cepat.
2. Mengontrol Kecepatan Motor
Jika motor hanya mendapatkan listrik setengah waktu, maka kecepatannya juga setengah dari maksimal.
3. Suara di Speaker
PWM juga bisa digunakan untuk menghasilkan nada atau suara dari buzzer dengan mengubah frekuensi on-off.
---
Contoh PWM di Arduino
Di Arduino, PWM bisa dilakukan di pin 3, 5, 6, 9, 10, 11 dengan fungsi analogWrite().
void setup() {
pinMode(9, OUTPUT); // Pin 9 sebagai output
}
void loop() {
analogWrite(9, 128); // Duty Cycle 50% (Lampu redup atau kipas pelan)
delay(1000);
analogWrite(9, 255); // Duty Cycle 100% (Lampu terang atau kipas kencang)
delay(1000);
}
analogWrite(9, 128); → Lampu redup (50%)
analogWrite(9, 255); → Lampu terang penuh (100%)
Itu karena nilai pada analogWrite() di Arduino menggunakan rentang 0 - 255 untuk merepresentasikan duty cycle PWM.
1. Rentang 8-bit (0 - 255)
Arduino menggunakan PWM 8-bit, yang berarti nilai 0 sama dengan 0% duty cycle (mati) dan nilai 255 sama dengan 100% duty cycle (hidup penuh).
0% → analogWrite(pin, 0); → OFF sepenuhnya (0V).
50% → analogWrite(pin, 128); → Setengah daya (~2.5V rata-rata).
100% → analogWrite(pin, 255); → ON sepenuhnya (5V).
Karena 8-bit punya 256 nilai total (0 - 255), maka 50% dari 255 adalah 128:
50\% \times 255 = 127.5 \approx 128
---
2. Menghitung Duty Cycle Berdasarkan Nilai
Jika ingin mengatur PWM dengan duty cycle tertentu, gunakan rumus:
\text{Nilai PWM} = \frac{\text{Duty Cycle} \times 255}{100}
Jadi, 128 adalah setengah dari 255, sehingga menghasilkan duty cycle 50%.