Embedded System ESP 32 — Project 1
Project 1— Digital Input/Output
Digital Input/Output adalah hal yang kamu lakukan kepada Sistem ESP32 untuk memberikan input yang kemudian akan menyalakan atau mematikan lampu. Untuk memulai pemakaian ESP 32 di project 0 kali ini, siapkan terlebih dulu barang yang akan digunakan, antara lain:
1. ESP 32
2. Breadboard
3. Kabel data micro usb type-B
4. Laptop/Komputer (dengan koneksi internet)
5. Kabel Jumper 6 buah
6. Resistor 330 Ohm dan 2 resistor 10000 Ohm
7. Push Button
Rangkaian Digital Input Sederhana
Untuk rangkaian input sederhana, kita harus memasangkan rangkaian dengan push button, resistor, jumper cable, dan LED. Berikut adalah gambar rangkaian.
Untuk menjalankan program tersebut, dibutuhkan kode seperti berikut.
// mengatur pin pada GPIO yang ditentukan
const int buttonPin = 4; // push button pada GPIO 4
const int ledPin1 = 5; // LED pada GPIO 5// untuk menyimpan status push button (ditekan/belum)
int buttonState = 0;void setup() {
Serial.begin(115200);
pinMode(buttonPin, INPUT); // inisialisasi push button -> input
pinMode(ledPin1, OUTPUT); // inisialisasi LED -> output
}void loop() {
buttonState = digitalRead(buttonPin); // membaca status push button (ditekan/belum)
Serial.println(buttonState);
if (buttonState == HIGH) { // jika push button ditekan
digitalWrite(ledPin1, HIGH); // LED 1 menyala
} else { // jika push button tidak ditekan
digitalWrite(ledPin1, LOW); // LED 1 mati
}
}
Rangkaian Digital Input Modifikasi.
Di rangkaian yang saya modifikasi, saya menambahkan sebuah LED merah dengan kondisi awal menyala dan kondisi awal LED biru mati. Setelah diberikan input, LED merah akan mati dan LED biru akan menyala.
Untuk menjalankan program tersebut, dibutuhkan kode seperti berikut.
// mengatur pin pada GPIO yang ditentukan
const int buttonPin = 4; // push button pada GPIO 4
const int ledPin1 = 5; // LED pada GPIO 5
const int ledPin2 = 22; // LED pada GPIO 22
// untuk menyimpan status push button (ditekan/belum)
int buttonState = 0;
void setup() {
Serial.begin(115200);
pinMode(buttonPin, INPUT); // inisialisasi push button -> input
pinMode(ledPin1, OUTPUT); // inisialisasi LED -> output
pinMode(ledPin2, OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin); // membaca status push button (ditekan/belum)
Serial.println(buttonState);
if (buttonState == HIGH) { // jika push button ditekan
digitalWrite(ledPin1, HIGH); // LED 1 menyala
digitalWrite(ledPin2, LOW); // LED 2 mati
}
else { // jika push button tidak ditekan
digitalWrite(ledPin1, LOW); // LED 1 mati
digitalWrite(ledPin2, HIGH); // LED 2 menyala
}
}
Perbedaan kondisi dapat dilihat di digitalWrite, terutama kondisi HIGH dan LOW. Kondisi tersebut menentukan nyalanya lampu di kondisi yang ditentukan sebelumnya.
Untuk melihat jalannya sistem Digital Input Output, cek link video youtube di bawah ini https://youtu.be/PaBoyuOVOSE