#2 — Embedded System with ESP32: Digital Input Output (I/O)
Hai, Selamat Datang/Welcome/Ahlan Wa Sahlan/Arhbo/Herzlich willkommen kembali diblog ini bersamaku. Oke gaiss, jadi pada blog kali ini aku akan membahas dan membuat project ke-2 yaitu implementasi proses input/output. Oiya, untuk project kali ini kita memerlukan bahan tambahan seperti LED, Resistor, Kabel Jumper, dan Push Button. Tidak lupa juga kita menggunakan breadboard. Alat yang dipakai pada project sebelumnya akan dipakai juga. Jika teman-teman belum membaca blog percobaan yang pertama, berikut linknya.
Sebelum memulai projectnya, terlebih dahulu kita harus memahami komponen yang akan kita gunakan nanti. Mungkin dari kalian ada yang bertanya-tanya ketika melihat warna pada resistor, ataupun saat melihat kaki pada LED yang berbeda panjangnya? Hingga kabel jumper yang memiliki ujung-ujung yang berbeda. Jika kamu belum begitu paham seutuhnya, yuk simak pembahasan berikut!. Jika sudah paham, langsung cus aja ke bagian projectnya.
[PENGENALAN KOMPONEN]
#1 Kabel Jumper
Kabel jumper merupakan istilah untuk kabel berdiameter kecil yang digunakan untuk menghubungkan dua atau lebih titik maupun komponen elektronika. Kabel jumper biasanya dikenal dengan istilah connector. Kabel jumper sendiri memiliki 3 tipe, yaitu Male to Male, Female to Male, dan Female to Female. Perbedaan yang paling mencolok terdapat pada ujung masing-masing kabel, dimana ujung Male runcing atau terlihat seperti tusukan besi. Sedangkan ujung Female tidak runcing atau tidak terlihat seperti tusukan. Pada gambar dibawah, posisi ujung Female berada di atas dan Male di bawah.
Pada project kita kali ini, kita hanya membutuhkan kabel jumper bertipe Male to Male. Pada project aku kali ini, aku menggunakan 6 buah kabel jumper.
#2 LED
LED atau singkatan dari Light Emitting Diode merupakan salah satu jenis perangkat semikonduktor yang mengeluarkan cahaya ketika arus listrik melewatinya. LED memiliki kaki yang berbeda panjangnya, mungkin hal ini akan ditanyakan pertama kali ketika kita melihat LED. Berikut struktur dari LED.
Sehingga, kaki LED yang ukurannya lebih panjang merupakan bagian kutub positif atau anoda. Sedangkan yang lebih pendek merupakan bagian kutub negatif atau katoda.
#3 Resistor
Resistor merupakan komponen elektronika yang memiliki sifat penghambat arus listrik (pengatur tegangan dan arus listrik). Resistor merupakan komponen yang tidak memerlukan arus listrik untuk bekerja. Ketika kita membeli resistor, terdapat beberapa warna strip yang berbeda ataupun sama. Seperti saat kita menggunakan resistor 330 ohm dan 10k ohm pada percobaan ini terdapat perbedaan warna. Resistor 330 ohm memiliki warna strip orange-merah dan 10k ohm warnanya merah-cokelat. Ternyata warna-warna strip tersebut memiliki arti. Berikut penjelasannya.
#4 Breadboard
Breadboard atau yang biasa disebut project board merupakan dasar konstruksi sebuah circuit elektronik yang merupakan bagian prototipe suatu rangkaian elektronik yang belum disolder sehingga masih dapat dirubah komponennya. Breadboard memiliki 4 bagian utama. Pada gambar dibawah yang diberi simbol A, B, C, D merupakan 4 bagian utama breadboard. Dimana A dan D terhubung secara vertikal dan memiliki kutub (biru = kutub negatif, merah = kutub positif). Sedangkan bagian B dan C terhubung secara horizontal serta bersifat netral. Berikut gambar struktur breadboard.
[TUJUAN PROJECT]
Pada project kedua ini kita akan membahas tentang digital input ouput pada ESP32. Dimana kita akan menginput sebuah program yang akan menghasilkan nyala lampu LED sebagai outputnya.
[KOMPONEN/PERALATAN YANG DIGUNAKAN]
Untuk project “Digital Input Output”, ada beberapa komponen/peralatan yang perlu disiapkan untuk digunakan nanti, yaitu:
- ESP32 (DOIT DEVKIT V1)
- Kabel MicroUSB (USB Type A to Micro B)
- Laptop/Komputer untuk memrogram ESP32
- LED 5mm F5 (Disini aku menggunakan warna merah)
- Kabel Jumper Male to Male (Jumlahnya mengikuti kebutuhan project kalian ya. Disini aku menggunakan 6 buah kabel jumper)
- Resistor 330 Ohm (dan 10k Ohm, ini optional saja)
- Push-button
- Breadboard (Disini aku menggunakan breadboard 830 Point solderless)
[SOFTWARE YANG DIGUNAKAN]
Tentunya pada project kedua kita kali ini digunakan sebuah software untuk memrogram ESP32 serta software optional untuk menata rangkaian yang akan kita buat. Berikut softwarenya:
- Arduino IDE
- Fritzing (untuk memodelkan project kita)
Untuk proses install Arduino IDE sudah aku jelaskan dalam blog project pertama. Jika belum di install let’s go menuju blog pertama untuk project ku. Untuk installasi fritzing kalian bisa langsung download di google. Untuk detailnya aku akan jelaskan di bagian project.
[STEP BY STEP]
Pra Project
Pra project yang dilakukan pada project kedua kita akan sama dengan pra project kita yang pertama. Berikut link project pertama ku.
Project
Dalam memulai project ini alangkah baiknya kita merangkai setiap komponen dengan menggunakan fritzing. Dalam fritzing tidak terdapat komponen ESP32, akan tetapi di internet ada orang-orang baik yang membagikan komponen tersebut melalui link berikut. Berikut gambaran rangkaian yang akan aku buat pada project kedua ku ini.
Setelah kita mendapatkan gambaran rangkaian yang akan kita buat, mari kita buat rangkaiannya melalui cara-cara berikut.
- Tentunya, siapkan semua alat dan bahan yang dibutuhkan pada project ini.
- Letakkan ESP32 pada breadboard. Saranku letakkan pada pinggir / ujung breadboard supaya kita masih memiliki space yang luas untuk mencoba-coba komponen.
- Selanjutnya kita akan merakit rangkaian kita pada breadboard mengikuti gambaran rangkaian di atas.
- Hubungkan dengan kabel jumper male to male pin VIN pada ESP32 ke bagian positif (warna merah) pada pinggir breadboard. Sedangkan pin Ground (GND) dihubungkan ke bagian negatif (warna biru) pada pinggir breadboard. Kita juga harus menyalurkan arus dengan cara kita letakkan kabel sejajar dengan kabel yang tadi telah kita setting di pinggir breadboard. Lalu hubungkan kabel positif sejajar kaki push-button dan kabel negatif sejajar dengan kaki LED yang negatif.
- Letakkan LED bebas, pada gambaran diatas aku memasang LED dekat dengan resistor, dimana kaki positif LED sejajar dengan resistor. Serta letakkan push button dan resistor 330 ohm sesuai gambar.
- Hubungkan (dengan kabel jumper male to male) pin 13 sejajar dengan kaki push-button. Serta pin 12 sejajar dengan kaki resistor.
- Yey, rangkaian kita selesai. Selanjutnya kita akan memrogram kodenya.
[KODE PROGRAM BLINK]
Pada project ini, kita dapat mengakses kode program di Arduino IDE dengan langkah-langkah berikut.
- File → Examples → 02.Digital → Button
Sehingga kita akan mendapatkan program seperti berikut.
// constants won’t change. They’re used here to set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin// variables will change:
int buttonState = 0; // variable for reading the pushbutton statusvoid setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
2. Selanjutnya kita harus mengubah sedikit kode awal tersebut pada bagian konstanta bertipe integer dengan nama buttonPin diubah menjadi 13 dan ledPin menjadi 12.
3. Setelah itu kita compile dan upload ke dalam ESP32 kita yang telah kita rakit dan terhubung dengan komputer/laptop kita menggunaka kabel MicroUSB.
[ANALISIS RANGKAIAN & KODE PROGRAM INPUT OUTPUT]
Analisis Rangkaian
Mari kita mulai dengan pertanyaan “Mengapa kita perlu untuk menghubungkan Ground (GND) ke sisi negatif dan pin VIN ke sisi positif breadboard? Hal tersebut dikarenakan voltase atau tegangan akan mengalir dari kutub positif menuju negatif sehingga kita perlu untuk menghubungkan Ground ke kutub negatif dan pin VIN ke kutub positif.
Selain itu, “Mengapa kita menggunakan pin 12 dan pin 13 untuk mengubungkan ESP32 ke komponen lainnya?”. Sebenarnya kita dapat menggunakan semua pin sebagai output kecuali pin 6–11, 34, 35, 36 dan 39 (karena pin-pin tersebut hanya untuk input saja). Sementara itu, resistor akan digunakan untuk mengatur arus dan tegangan dalam rangkaian.
Analisis Program
Pada project pertama dan kedua sebenarnya tidak terdapat perbedaan pada struktur program. Namun terdapat perbedaan pada inisiasi input dan outputnya dimana input dan outputnya merupakan komponen yang berbeda. Input pada project ini terdapat di push-button dan output pada project ini terdapat di LED.
[HASIL AKHIR PROJECT DIGITAL INPUT OUTPUT]
Percobaan 1 : Menggunakan resistor 330 ohm
Percobaan 2 : Menggunakan resistor 10k ohm (optional)
[PENUTUP]
Yey! Alhamdulillah akhirnya project kedua kita telah selesai. Nantikan project-project selanjutnya. See you gaiss di next project…