Baik, berikut adalah penjelasan lebih lengkap untuk setiap bagian dari modul belajar Arduino UNO dari
dasar, termasuk panduan praktisnya.
### Modul Belajar Arduino UNO dari Dasar
#### 1. Pendahuluan
**Materi Teori:**
- **Apa itu Arduino UNO?**: Arduino UNO adalah mikrokontroler berbasis ATmega328P yang
digunakan untuk membuat berbagai proyek elektronik.
- **Sejarah singkat Arduino**: Dimulai pada tahun 2005 oleh sekelompok insinyur di Italia, bertujuan
untuk menyediakan platform open-source untuk proyek elektronik.
- **Aplikasi Arduino dalam kehidupan sehari-hari**: Contoh-contoh seperti otomasi rumah, robotika,
dan perangkat Internet of Things (IoT).
#### 2. Perangkat Keras Arduino UNO
**Materi Teori:**
- **Pengenalan komponen utama pada board Arduino UNO**:
- **Mikrokontroler (ATmega328P)**
- **Pin Digital I/O**
- **Pin Analog Input**
- **Power Pins**
- **Reset Button**
- **USB Connector**
**Praktek:**
1. **Instalasi Driver Arduino**:
- Unduh driver dari situs Arduino.
- Ikuti panduan instalasi sesuai sistem operasi (Windows, Mac, Linux).
- Pastikan board terdeteksi dengan benar di Device Manager (Windows) atau System Information
(Mac).
#### 3. Persiapan Lingkungan Pemrograman
**Materi Teori:**
- **Mengunduh dan menginstal Arduino IDE**: Tersedia di [situs resmi
Arduino]([Link]
- **Pengenalan antarmuka Arduino IDE**: Menjelaskan menu, toolbar, dan area koding.
**Praktek:**
1. **Menginstal Arduino IDE**:
- Download dari situs Arduino.
- Ikuti panduan instalasi.
2. **Menyiapkan board Arduino UNO di Arduino IDE**:
- Hubungkan Arduino UNO ke komputer melalui kabel USB.
- Buka Arduino IDE, pilih **Tools > Board > Arduino/Genuino UNO**.
- Pilih port yang sesuai di **Tools > Port**.
#### 4. Dasar-Dasar Pemrograman Arduino
**Materi Teori:**
- **Struktur dasar program Arduino (setup() dan loop())**
- **Dasar-dasar syntax pemrograman C/C++**:
- **Variabel dan tipe data**
- **Operator**
- **Control flow (if, for, while)**
- **Fungsi**
**Praktek:**
1. **Menulis Program Sederhana**:
```cpp
void setup() {
// Inisialisasi pin digital 13 sebagai output
pinMode(13, OUTPUT);
void loop() {
digitalWrite(13, HIGH); // Nyalakan LED
delay(1000); // Tunggu 1 detik
digitalWrite(13, LOW); // Matikan LED
delay(1000); // Tunggu 1 detik
```
2. **Mengunggah program ke Arduino**:
- Klik tombol **Upload** di Arduino IDE.
- Tunggu hingga proses selesai dan LED pada pin 13 berkedip.
#### 5. Proyek Sederhana: Blink LED
**Materi Teori:**
- **Penjelasan skema dasar LED**: Memahami cara menghubungkan LED dengan resistor ke pin digital.
**Praktek:**
1. **Menyusun rangkaian Blink LED**:
- Hubungkan resistor (220 ohm) ke pin 13.
- Sambungkan LED ke resistor (anoda) dan ground (katoda).
2. **Menulis program Blink LED** (seperti contoh di atas).
3. **Mengunggah dan menguji program**:
- LED seharusnya berkedip dengan interval 1 detik.
#### 6. Menggunakan Pin Digital
**Materi Teori:**
- **Input dan output digital**:
- Menyalakan dan mematikan LED.
- Membaca status tombol (push button).
**Praktek:**
1. **Menyalakan dan Mematikan LED**:
```cpp
void setup() {
pinMode(13, OUTPUT); // Set 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
```
2. **Membaca status tombol**:
- Hubungkan tombol (push button) antara pin 2 dan ground.
- Hubungkan resistor pull-up (10k ohm) antara pin 2 dan VCC.
- Program untuk membaca tombol:
```cpp
void setup() {
pinMode(2, INPUT_PULLUP); // Set pin 2 sebagai input dengan pull-up resistor
pinMode(13, OUTPUT); // Set pin 13 sebagai output
void loop() {
int buttonState = digitalRead(2); // Membaca status tombol
if (buttonState == LOW) {
digitalWrite(13, HIGH); // Nyalakan LED jika tombol ditekan
} else {
digitalWrite(13, LOW); // Matikan LED jika tombol tidak ditekan
```
#### 7. Menggunakan Pin Analog
**Materi Teori:**
- **Membaca input analog (potensiometer)**.
- **Menulis output analog (PWM)**.
**Praktek:**
1. **Membaca input analog**:
- Hubungkan potensiometer dengan pin A0, VCC, dan ground.
- Program untuk membaca potensiometer:
```cpp
int potValue = 0;
void setup() {
[Link](9600); // Inisialisasi komunikasi serial
void loop() {
potValue = analogRead(A0); // Membaca nilai dari potensiometer
[Link](potValue); // Menampilkan nilai di Serial Monitor
delay(500); // Tunggu sejenak
```
2. **Menulis output analog (PWM)**:
- Hubungkan LED ke pin 9 melalui resistor (220 ohm).
- Program untuk mengontrol kecerahan LED dengan PWM:
```cpp
int potValue = 0;
int ledValue = 0;
void setup() {
pinMode(9, OUTPUT); // Set pin 9 sebagai output
void loop() {
potValue = analogRead(A0); // Membaca nilai dari potensiometer
ledValue = map(potValue, 0, 1023, 0, 255); // Mengkonversi nilai ke rentang PWM
analogWrite(9, ledValue); // Menulis nilai PWM ke LED
delay(10); // Tunggu sejenak
```
#### 8. Sensor dan Aktuator
**Materi Teori:**
- **Menggunakan sensor suhu (LM35)**.
- **Menggunakan sensor cahaya (LDR)**.
- **Mengendalikan motor DC**.
**Praktek:**
1. **Menggunakan sensor suhu (LM35)**:
- Hubungkan LM35: VCC ke 5V, GND ke ground, output ke pin A0.
- Program untuk membaca suhu:
```cpp
float tempC;
void setup() {
[Link](9600); // Inisialisasi komunikasi serial
void loop() {
int sensorValue = analogRead(A0); // Membaca nilai dari sensor suhu
tempC = sensorValue * 0.48828125; // Konversi nilai ke suhu Celsius
[Link]("Temperature: ");
[Link](tempC);
[Link](" C");
delay(1000); // Tunggu sejenak
```
2. **Menggunakan sensor cahaya (LDR)**:
- Hubungkan LDR: satu ujung ke 5V, ujung lainnya ke pin A0 dan resistor (10k ohm) ke ground.
- Program untuk membaca cahaya:
```cpp
int ldrValue = 0;
void setup() {
[Link](9600); // Inisialisasi komunikasi serial
}
void loop() {
ldrValue = analogRead(A0); // Membaca nilai dari LDR
[Link]("Light Level: ");
[Link](ldrValue);
delay(500); // Tunggu sejenak
```
3. **Mengendalikan motor DC**:
- Gunakan driver motor (L298N): hubungkan motor ke output driver, input driver ke pin digital
Arduino.
- Program untuk mengendalikan motor:
```cpp
void setup() {
pinMode(5, OUTPUT); // Set pin 5 sebagai output
pinMode(6, OUTPUT); // Set pin 6 sebagai output
void loop() {
digitalWrite(5, HIGH); // Motor maju
digitalWrite(6, LOW);
delay(2000); // Berjalan selama 2 detik
digitalWrite(