Pada kali ini kita akan membaca input analog dengan ESP32 menggunakan Arduino IDE. Pembacaan analog berguna untuk membaca nilai dari resistor variabel seperti potensiometer, atau sensor analog.
Analog Inputs (ADC)
Membaca nilai analog dengan ESP32 berarti Anda dapat mengukur berbagai tingkat tegangan antara 0 V dan 3,3 V. Tegangan yang diukur kemudian ditetapkan ke nilai antara 0 dan 4095, di mana 0 V sama dengan 0, dan 3,3 V sama dengan 4095. Setiap tegangan antara 0 V dan 3,3 V akan diberi nilai yang sesuai di antaranya.
Fungsi analogRead()
Membaca input analog dengan ESP32 menggunakan Arduino IDE semudah menggunakan fungsi analogRead(). Ia menerima sebagai argumen, GPIO yang ingin terbaca :
analogRead(GPIO);
ESP32 mendukung pengukuran di 18 saluran berbeda. Hanya 15 yang tersedia di papan DEVKIT V1 DOIT (versi dengan 30 GPIO).
Diatas adalah pinout dari ESP32 Wroom devkit. Pin adc dapat di wiring pada pinout berwarna orange.
Fungsi Berguna Lainnya
1. analogReadResolution(resolusi): mengatur bit sampel dan resolusi. Ini bisa berupa nilai antara 9 (0 – 511) dan 12 bit (0 – 4095). Defaultnya adalah resolusi 12-bit.
2. analogSetWidth(width):
mengatur bit sampel dan resolusi. Ini bisa berupa nilai antara 9 (0 – 511) dan
12 bit (0 – 4095). Defaultnya adalah resolusi 12-bit.
3. analogSetCycles(cycles):
mengatur jumlah siklus per sampel. Standarnya adalah 8. Rentang: 1 hingga 255.
4.
analogSetSamples(samples): mengatur jumlah sampel dalam rentang tersebut.
Defaultnya adalah 1 sampel. Ini memiliki efek meningkatkan sensitivitas.
5.
analogSetClockDiv(attenuation): mengatur pembagi untuk jam ADC. Standarnya
adalah 1. Rentang: 1 hingga 255.
6.
analogSetAttenuation(attenuation): mengatur redaman input untuk semua pin ADC.
Standarnya adalah ADC_11db. Nilai yang diterima :
• ADC_0db: tidak menetapkan
redaman. ADC dapat mengukur hingga sekitar 800 mV (input 1V = pembacaan ADC
1088).
• ADC_2_5db: Tegangan input
ADC akan dilemahkan, memperluas rentang pengukuran hingga kira-kira. 1100 mV.
(Input 1V = pembacaan ADC 3722).
• ADC_6db: Tegangan input ADC akan dilemahkan, memperluas rentang pengukuran hingga kira-kira. 1350 mV. (Input 1V = pembacaan ADC 3033).
• ADC_11db: Tegangan input
ADC akan dilemahkan, memperluas rentang pengukuran hingga kira-kira. 2600 mV.
(Input 1V = pembacaan ADC 1575).
7.
analogSetPinAttenuation(pin, attenuation): mengatur redaman input untuk pin
yang ditentukan. Standarnya adalah ADC_11db. Nilai atenuasi sama dengan fungsi
sebelumnya.
8. adcAttachPin(pin): Pasang
pin ke ADC (juga menghapus mode analog lain yang mungkin aktif). Mengembalikan
hasil TRUE atau FALSE.
9. adcStart(pin), adcBusy(pin) dan resultadcEnd(pin): memulai konversi ADC pada bus pin yang terpasang. Periksa apakah konversi pada bus ADC pin sedang berjalan (mengembalikan TRUE atau FALSE). Dapatkan hasil konversi: mengembalikan bilangan bulat 16-bit.
Membaca Nilai Analog dari Potensiometer dengan ESP32
Untuk melihat bagaimana
semuanya saling terhubung, kita akan membuat contoh sederhana untuk membaca
nilai analog dari potensiometer. Berikut ini komponen yang diperlukan :
• Papan ESP32 DOIT DEVKIT V1
(baca papan pengembangan ESP32 Terbaik)
• Potensiometer
• Beardboard
• Kabel jumper
Schematic
Code
Kita akan memprogram ESP32 menggunakan Arduino IDE, jadi pastikan Anda telah menginstal add-on ESP32 sebelum melanjutkan :
Kode ini hanya membaca nilai dari potensiometer dan mencetak nilai tersebut di Serial Monitor. Upload kode yang diberikan ke ESP32 Anda. Pastikan untuk memilih board dan port COM yang tepat di menu Tools. Nilai maksimum yang akan Anda dapatkan adalah 4095 dan nilai minimumnya adalah 0.
Pada artikel ini Anda telah mempelajari cara membaca input analog menggunakan ESP32 dengan Arduino IDE.
Kesimpulan
• Papan DOIT ESP32 DEVKIT V1 (versi dengan 30 pin) memiliki 15 pin ADC yang dapat Anda gunakan untuk membaca input analog.
• Pin ini memiliki resolusi
12 bit, yang berarti Anda bisa mendapatkan nilai dari 0 hingga 4095.
• Untuk membaca suatu nilai
di Arduino IDE, Anda cukup menggunakan fungsi analogRead().
• Pin ESP32 ADC tidak memiliki perilaku linier. Anda mungkin tidak akan dapat membedakan antara 0 dan 0.1V, atau antara 3.2 dan 3.3V. Anda harus mengingat hal itu saat menggunakan pin ADC.
0 on: "Membaca Nilai Analog dengan ESP32 menggunakan aplikasi Arduino IDE "