Halo Sahabat Indobot, kemarin kita telah membahas apa saja jenis – jenis dari Microcontroller Arduino , masih ingat ?, Nah pada artikel kali ini kita akan membahas kesalahan yang sering terjadi dalam perancangan Arduino ini ya sahabat Indobot , kalian bisa mampir dulu ke artikel belajar ardunio untuk informasi lengkap tentang apa sebenarnya Ardunio itu sahabat Indobot !.
Kita Mulai ya , Artikel ini akan kita bagi dalam 2 Part agar Sahabat Indobot bisa memahami setiap detailnya secara jelas.
Umunya ya Sahabat Indobot Kendala perancangan arduino yang sering terjad terdiri dari hal ini i :
- Program berhenti di tengah jalan
- Contoh rangkaian dan sketch tidak jalan
- Tegangan referensi bersama
- Hasil pembacaan sensor analog tidak konsisten
- Jalannya program tersendat
- Pembacaan detik yang berulang pada RTC
- Modul serial tidak bisa berkomunikasi
- Data dari komunikasi melalui internet tidak lengkap
- Arduino kekurangan power
- Kesalaham umum sketch/program
- kondisi if..else tidak bekerja di dalam loop()
- Interupsi bertumpuk dan terabaikan
- Variabel tidak berubah di dalam blok interupsi
- Arduino me-reset saat relay berubah keadaan
- Upload sketch gagal
Kita akan bahas satu persatu ya untuk detailnya sahabat indobot 😀
Mungkin Sahabat Indobot sering menghadapi masalah dalam mengembangkan sistem berbasis arduino, maka sebelum melakukan perakitan arduino pastikan hal sepele berikut :
- Pastikan kabel jumper tersambung antara ujung-ujungnya.
- Komponen tidak rusak/cacat secara fisik
- Power supply / baterai / adaptor tersambung dengan benar (sesuai polaritas dan tegangan)
Sebelum memulai merakit arduino Juga perlu di perhatikan jalur internal pin-pin di papan/board arduino yang terhubung secara fisik.
Berikut ini adalah beberapa permasalahan yang sering muncul dalam perancangan sistem otomatis berbasis arduino:
1. Program berhenti tengah jalan
Jika Perangkat Sahabat Indobot berjalan normal tetapi terhenti setelah menyelesaikan tugasnya. dan tidak bisa menjalankan perintah lainnya. Hal ini terjadi karena di dalam sketch terdapat baris berikut:
baris sketch ini akan menghentikan jalannya program (kecuali interrupt), biasanya di sisipkan oleh perancang untuk melihat hasil dan membuat perangkat selesai melakukan tugasnya dan berhenti di titik itu. dengan menghapus baris tersebut maka program akan kembali berjalan dan menjalankan baris perintah berikutnya.
2. Tegangan referensi bersama
Groung/polaritas negatif yang tidak terhubung mengakibatkan intepretasi yang berbeda terhadap suatu nilai.
Membangun sebuah sistem digital atau sistem analog yang terhubung dengan beberapa perangkat lain harus memiliki tegangan referensi yang sama (biasanya ground/negatif) kecuali wireless.
3. Hasil pembacaan sensor analog tidak konsisten
Pembacaan sensor analog melalui pin A0-A5 (A0-A8 pada mega) menggunakan perintah analogRead(pin), hasil berubah-ubah padahal sensor mengukur sesuatu yang diam.
Pembacaan analog dengan Arduino menggunakan ADC. ADC pada Arduino sendiri memiliki spesifikasi yang harus di penuhi seperti dalam datasheetnya, beberapa penyebab yang sering terjadi adalah:
- Tegangan sumber (power supply) ke Arduino dan sensor tidak stabil.
- Resistansi yang besar, bisa di akibatkan
- Jarak sensor dan pin dengan kabel yang panjang.
- kabel memiliki resistansi besar.
- Koneksi konektor yang tidak bagus (tidak kontak sempurna) karena longgar atau karatan.
- interferensi sinyal lain (sinyal yang bersebelahan, jala listrik, sinyal handphone dll)
4. Jalannya program tersendat
penyebab umum jalannya program arduino lambat dan tersendat:
- Delay sering di gunakan, namun sebenarnya pengunaan perintah delay yang berlebihan sangat merugikan karena
- Menyita kinerja CPU
- Melewatkan adanya permintaan dari modul/komponen luar yang ingin segera di tanggapi.
- Interupsi yang berlangsung tanpa di sadari seperti penggunaan library yang sebenarnya mengandung interupsi.
- Perulangan seperti for, do, while yang berlangsung terus menerus, sebaiknya lebih di efesien lagi dan keluar dengan perintah ‘break’ jika persyaratannya telah terpenuhi.
5. Pembacaan detik yang berulang pada RTC
RTC di gunakan sebagai penedia data waktu real time, namun kesalahan yang sering terjadi adalah ketika menunggu adanya perubahan data dari RTC (detik), pembacaan dilakukan berulang-ulang ke RTC.
Jika dicermati RTC juga memiliki fitur interupsi yang memberii tahu CPU bahwa adanya perubahan data. Ketika CPU Arduino mendapat interupsi ini barulah dilakukan pembacaan data RTC.
6. Modul serial tidak bisa berkomunikasi
Beberapa baudrate yang direkomendasikan : 300, 1.200, 2.400, 4.800, 9.600, 19.200, 38.400, 57.600, 74.880, 115.200, 230.400, 250.000, 500.000, 1.000.000, 2.000.000. Pemilihan baudrate berdasarkan :
- Spesifikasi modul yang akan berkomunikasi dengan Arduino. beberapa modul memiliki fitur ‘auto Baudrate’
- Tingkat kesalahan data, hal ini berkaitan dengan frekuensi CPU arduino, batas yang dizinkan adalah 0.5%.
yang dihitung menggunakan rumus :
error(%) = ((baudrate sebenarnya/badudrate )- 1) * 100% - Baud rate yang rendah akan menyebabkan waktu tunda (delay) yang lebih banyak, seringkali hal ini tidak disadari dan menyebabkan baris perintah lain terlambat untuk dieksekusi.
untuk menghitung waktu yang dibutuhkan serial dalam mengirim data (1 start bit, 8 data, 1 parity, 1stop bit) digunakan formula:Waktu(detik) = (1/baudrate * 11) * jumlah datasebagai contoh untuk mengirim 100 karakter pada baud rate 9600 dalam mode asynchronous membutuhkan waktu ±1 detik
7. Data dari komunikasi melalui internet tidak lengkap
Akses Arduino bisa di lakukan menggunakan ethernet, Wifi, Modem. Kesalahan umumnya adalah data yang di terima tidak lengkap, terpotong, kacau. kemungkinan yang terjadi adalah :
- Koneksi terganggu, perbaiki pengkabelan dan periksa apakah koneksi ke internet berjalan dari perangkat lain.
- Upaya menampilkan hasil data yang di terima melalui komunikasi serial.
- naikkan baudrate misal Serial.begin(115200) untuk mengurangi waktu bagi komunikasi serial
- Simpan data yang di terima dalam variabel string, dan tampilkan melalui serial setelah komunikasi internet selesai.
Nah, itu dulu ya sahabat Indobot materi belajar ardunio untuk kali ini, eits tenang untuk pembahasan lengkapnya akan di bahas pada materi selanjutnya, makanya bookmark dulu website kita dan tunggu update an dari kita ya !