Kesalahan umum perancangan berbasis Arduino

Kendala perancangan arduino yang sering terjadi :

  1. Program berhenti ditengah jalan
  2. Contoh rangkaian dan sketch tidak jalan
  3. Tegangan referensi bersama
  4. Hasil pembacaan sensor analog tidak konsisten
  5. Jalannya program tersendat
  6. Pembacaan detik yang berulang pada RTC
  7. Modul serial tidak bisa berkomunikasi
  8. Data dari komunikasi melalui internet tidak lengkap
  9. Arduino kekurangan power
  10. Kesalaham umum sketch/program
  11. kondisi if..else tidak bekerja di dalam loop()
  12. Interupsi bertumpuk dan terabaikan
  13. Variabel tidak berubah didalam blok interupsi
  14. Arduino me-reset saat relay berubah keadaan
  15. Upload sketch gagal

Para perancang Arduino sering menghadapi masalah dalam mengembangkan sistem berbasis arduino, maka sebelum melakukan perakitan arduino pastikan hal sepele berikut :

  1. Pastikan kabel jumper tersambung antara ujung-ujungnya.
  2. Komponen tidak rusak/cacat secara fisik
  3. Power supply / baterai / adaptor tersambung dengan benar (sesuai polaritas dan tegangan)

Sebelum memulai merakit arduino Juga perlu diperhatikan jalur internal pin-pin di papan/board arduino yang terhubung secara fisik.

  1. Antara pin A0-A5 (A0 – A8 pada mega) dan pin 0  – 5 (0 – 8 pada mega) adalah berbeda.
  2. Pin TWI/I2C (SCL dan SDA) dan SPI (SCK, MOSI, MISO) terhubung seperti gambar berikut:

    Apabila salah satu pin telah digunakan, maka pasangannya tidak lagi bisa digunakan sebagai pin (kecuali keperluan sambungan tambahan).

berikut ini adalah beberapa permasalahan yang sering muncul dalam perancangan sistem otomatis berbasis arduino:

Program berhenti ditengah jalan

Perangkat berjalan normal tetapi terhenti setelah menyelesaikan tugasnya. dan tidak bisa menjalankan perintah lainnya. Hal ini terjadi karena didalam sketch terdapat baris berikut:

while(1);
atau
for(;;);

baris sketch ini akan menghentikan jalannya program (kecuali interrupt), biasanya disisipkan oleh perancang untuk melihat hasil dan membuat perangkat selesai melakukan tugasnya dan berhenti dititik itu.
dengan menghapus baris tersebut maka program akan kembali berjalan dan menjalankan baris perintah berikutnya.

Contoh rangkaian dan sketch tidak jalan

Rangkaian dan sketch dibuat serupa tanpa perubahan tetapi perangkat tidak berkerja.

Dalam merakit rangkaian, –utamakan– defenisi poisisi pin dari sketch yang akan di upload. contohnya kode berikut berarti pin sensor berada dan pin nomor 2:

#define sensor 2
int sensor = 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.

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 dipenuhi seperti dalam datasheetnya, beberapa penyebab yang sering terjadi adalah:

  1. Tegangan sumber (power supply) ke Arduino dan sensor tidak stabil.
  2. Resistansi yang besar, bisa diakibatkan
  • 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)

Jalannya program tersendat

penyebab umum jalannya program arduino lambat dan tersendat:

  1. Delay sering digunakan, namun sebenarnya pengunaan perintah delay yang berlebihan sangat merugikan karena
    • Menyita kinerja CPU
    • Melewatkan adanya permintaan dari modul/komponen luar yang ingin segera ditanggapi.
  2. Interupsi yang berlangsung tanpa disadari seperti penggunaan library yang sebenarnya mengandung interupsi.
  3. Perulangan seperti for, do, while yang berlangsung terus menerus, sebaiknya lebih diefesien lagi dan keluar dengan perintah ‘break’ jika persyaratannya telah terpenuhi.

Pembacaan detik yang berulang pada RTC

RTC digunakan 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.

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 :

  1. Spesifikasi modul yang akan berkomunikasi dengan Arduino. beberapa modul memiliki fitur ‘auto Baudrate’
  2. 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%
  3. 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

Data dari komunikasi melalui internet tidak lengkap

Akses Arduino bisa dilakukan menggunakan ethernet, Wifi, Modem. Kesalahan umumnya adalah data yang diterima tidak lengkap, terpotong, kacau. kemungkinan yang terjadi adalah :

  1. Koneksi terganggu, perbaiki pengkabelan dan periksa apakah koneksi ke internet berjalan dari perangkat lain.
  2. Upaya menampilkan hasil data yang diterima melalui komunikasi serial.
    • naikkan baudrate misal Serial.begin(115200) untuk mengurangi waktu bagi komunikasi serial
    • Simpan data yang diterima dalam variabel string, dan tampilkan melalui serial setelah komunikasi internet selesai.

Arduino kekurangan power

Arduino memiliki internal regulator tegangan 5V dan 3.3V, dengan kemampuan arus 0.8-1A. keluaran dari regulator ini digunakan oleh Arduino sendiri dan sisanya melalui pin power. Jika sumber tegangan ini juga digunakan oleh modul-modul diluar arduino, maka pastikan itu mencukupi (sesuai spesifikasi) untuk memperoleh kinerja maksimal.

Kesalaham umum sketch/program

Dalam membuat sketch/koding/program/listing program dengan IDE Arduino kita harus mengikuti gaya bahasa C++, dan aturan gaya bahasa serta logika program yang sering terlewatkan adalah :

  1. Tanda titik koma (semicolon) pada setiap akhir perintah.
  2. Tanda kurung (parentheses) dan kurung kurawal (curly bracket) haruslah berpasangan.
  3. Penamaan variabel pada C++ bersifat case-sensitive, yang berarti perbedaan kapitalisasi huruf berarti beda variabel.
  4. Variabel global dan variabel local dengan nama yang sama sebaiknya dihindari.
  5. Tipe data antara signed dan unsigned harus menjadi perhatian khusus, karena akan menghasilkan logika matematika berbeda pada operasi tertentu.
  6. Variabel dengan bilangan berkoma (floating point) akan tersimpan sebagai bilangan digital basis 2 yang kadang berbeda (dibulatkan).

kondisi if..else tidak bekerja di dalam loop()

void setup() {
  pinMode(12, INPUT_PULLUP);//Tombol
  pinMode(13, OUTPUT);//LED
}
void loop() {
  if(digitalRead(12))
  {
    digitalWrite(13, HIGH);
  }
  else
  {
    digitalWrite(13, HIGH);
    delay(1000);
    digitalWrite(13, LOW);
  }
}

dari sketch diatas kita mengharapkan ketika tombol di pin 12 ditekan maka LED akan hidup terus, dan ketika dilepas LED akan hidup selama 1 detik kemudian mati.

Namun setelah dirunning ternyata LED terus hidup dan tidak pernah mati. kondisi ini disebut dengan “false loop”, karena sebenarnya kondisi dalam blok else selalu dijalakan karena berada didalam operasi loop().

Interupsi bertumpuk

Interupsi akan memotong jalannya program biasa untuk mengeksekusi baris yang ada dalam blok interupsi dan tidak dapat diinterupsi lagi. Apabila terjadi interupsi lain yang berbeda sebelum sebuah interupsi selesai/keluar (reti) maka interupsi lain itu harus menunggu.

Apabila sebuah interupsi berjalan dan terjadi kejadian interupsi yang sama lagi maka interupsi kedua ini akan dibatalkan (selama flag interupsi masih aktif).

Untuk interupsi yang sering terjadi dan dalam jeda yang singkat, maka baris program yang ada di badan interupsi haruslah sesingkat mungkin, baris program dihitung dalam satuan baris assembler misalnya satu baris “Serial.println();” akan menghasilkan lebih dari satu baris assembler.

Jika badan interupsi harus memiliki baris program yang besar, maka sebaiknya badan interupsi hanya menghasilkan flag, dan flag ini akan dibaca oleh baris program reguler untuk dieksekusi lebih lanjut.

Variabel tidak berubah didalam blok interupsi

Apabila interupsi digunakan untuk merubah keadaan/nilai sebuah variabel, maka variabel tersebut harus dideklarasikan dengan properti volatile.

Proses compile sketch menjadi bahasa mikrokontroller juga menjalankan fungsi optimalisasi, artinya baris program yang menurut compiler tidak efektif/sia-sia akan diabaikan, kecuali variabel dengan properti volatile (tetap diperhitungkan).

Arduino me-reset saat relay berubah keadaan

Relay merupakan komponen elektro mekanik yang memiliki koil (lilitan) untuk menggerakkan tuas kontak. Dalam operasional relay menghasilkan spike (kejut listrik) yang dihasilkan oleh:

  1. Koil, memiliki induktansi yang berpengaruh terhadap laju arus/detik, saat koil diberi tegangan maka koil akan dialiri arus sesaat yang besar sedangkan ketika di nonaktifkan relay akan menghasilkan arus sesaat yang besar dalam arah berlawanan (minus).
    Arus sesaat yang besar ini bisa mengakibatkan terjadinya kejut listrik diseluruh rangkaian nya.
  2. Kontak listrik, berlaku seperti saklar (switch) dimana semakin besar arus beban yang diputus/disambungkan maka akan semakin besar pula kemungkinan terjadinya bunga api, yang juga berpotensi besar menghasilkan kejut listrik.

Upaya pemecahan permasahan kontak relay ini bisa dilakukan dengan cara:

  1. Gunakan kabel berkualitas
  2. batasi arus ke koil dengan penambahan hambatan (resistor) yang sesuai
  3. Gunakan power supply yang bagus (dayanya cukup saat beban max) dan dilengkapi EMI filter (perlindungan dari gangguan luar)
  4. Pemisahan power supply arduino dan relay serta beban-beban besar
  5. Relay dilengkapi flyback dioda (seperti 1N4048)
  6. Lindungi kabel power dari EMI (twist, shielding)
  7. Lengkapi decoupling kapasitor sedekat mungkin ke pin power.
  8. Lindungi kabel komponen sensitif dari EMI (twist yang rapi) kabel clock diutamakan.
  9. tambahkan decoupling/filter kapasitor (1-100nf) di clock komponen sensitif
  10. saat relay bekerja, komponen sensitif dalam keadaan read mode
  11. Pisahkan jalur kabel daya dan kontrol, beda ducting.
  12. kabel antara Arduino dan komponen sensitif sedekat mungkin.
  13. firmware trick.

Upload sketch gagal

Sebelum mengupload sketch ke arduino pastikan memlih board dan processor serta port (dalam menu Tools) yang sesuai dengan board Arduino yang terpasang. Pastikan juga kabel usb dalam keadaan baik.

Masalah yang kerap terjadi saat proses upload adalah:

  1. Bentrok dengan Serial, arduino melakukan proses upload memanggunakan pin Serial (pin 0 dan 1) apabila pin tersebut juga digunakan untuk keperluan lain dapat dipastikan akan terjadi interferensi data.
  2. Gangguan juga bisa ditimbulkan oleh komponen/modul lain yang bekerja/berubah keadaan dan menyebabkan tegangan tidak stabil.
  3. Port Serial di PC/laptop digunakan oleh program lain seperti processing, putty atau serial monitor dari arduino IDE yang tidak se-gruop.

153 thoughts on “Kesalahan umum perancangan berbasis Arduino

  1. Mas, serial komunikasi Arduino-VB saya gagal, asumsi saya karena interupsi yang saya pake mempause data dari VB… Mungkin mas pernah mengalami yang kaya gini ga mas, atau mas ada solusinya ngga?? Terima kasih sebelumnya Mas..

    1. banyak metode yang bisa dilakukan (tergantung format data yang diterima)
      yang umum dilakukan adalah kombinasi interupsi async dan timer,
      jadi setiap ada data masuk akan membangkitkan interupsi yang akan menyimpan data serial ke sebuah buffer, da dan timer berisi fungsi pengolahan data buffer

  2. Mas saya memakai pin di mega banyak dan tegangan hanya dari sumber 5v yg saya pake di mega, karena kebanyakan pin yg dipake jadi lambat prosesnya padahal pas program masih terpisah2 itu cepat, solusinya gimana ya mas?

    1. harus di cek kasus-per-kasus
      misalnya sensor jarak ultrasonic: ketika trigger diberikan maka semakin besar jarak terukur ‘waktu tunggu’nya semakin lama (bahkan lebih lama jika jarak diluar jangkauan sensor), untuk masalah ini bisa menggunakan interrupt agar arduino tidak perlu menunggu sinyal echo.

    2. harus di cek kasus-per-kasus
      misalnya sensor jarak ultrasonic: ketika trigger diberikan maka semakin besar jarak terukur ‘waktu tunggu’nya semakin lama (bahkan lebih lama jika jarak diluar jangkauan sensor), untuk masalah ini bisa menggunakan interrupt agar arduino tidak perlu menunggu sinyal echo.

      Mas bisa kasih contoh gak, bagaimana cara pakai interrrupt tersebut, saya kurang paham? Mohon bantuannya..

  3. Mas …saya menggunakan arduino atmega dan ethernet Shield diatasnya.. mengontrol relay …saat power supply nya kami buat dari USB laptop …lancar lancar saja…saat kami gantikan power supply nya dengan adaptor 9v 2a … arduinonya jalan…tetapi saat menyalakan 6 relay sekaligus…jadi error’…masalahnya dimana ya mas

  4. maaf mas, saya memakai ethernet shiel dan relay buat nyala lampu, tetapi kadang coneksi mati, atau terputus, dan di restart normal, nah, ada solusi kah mas, supaya stabil,,,?

  5. Mas, saya bingung.dengan project yg saya buat, karna setiap power dimatikan, kemudian dihidupkan lagi arduinon lansung bekerja seoerti sudah menerima printah. Gimana caranya jika pertama kali dihidupkan arduino dlm posisi stanby, tampa menjalankan proses running program. Setelah diperintah (contoh tekan tobol atau yg lain) barulah arduinonya jalan. mohon penjeladannya. terima kasih.

  6. Mas, kenapa ya. pas relay aktif tiba tiba tampilan di lcd acak. Padahal sebelumnya aman aman aja. Pas relay beralih ke kondisi mati juga tampilan di lcd juga acak lagi. Jadi saya harus mereset terus agar tampilan kembali ke semula. Solusi yg tepat gimana ya mah??? Saya pakai Arduino uno relay 5V, beban yg saya pakai lampu TL

    1. daftar cek
      1. aktifkan bluetooth di android
      2. scan perangkat bluetooth, konekkan dengan bluetooth tujuan sesuai alamat (pass biasanya 1234)
      3. dari aplikasi, pilih dan konek kan ke bluetooth tujuan
      4. jika terkoneksi bluetooth tujuan akan berkedip lambat
      5. pastikan pin tx bluetooth terhubung ke pin rx arduino (software serial tergantung setting pin rx-nya)
      5. pastikan pin rx bluetooth terhubung ke pin tx arduino (software serial tergantung setting pin rx-nya) melalui resistor pembagi tegangan

  7. Om, mau tanya saya menggunakan ds1703 sbg rtc. Bisa gak diprogram menyimpan date bukan timer? Kemudian ketika rtc nya sesuai dgn yg date tersimpan, menjalankan relay 5v?
    Terima kasih.?

  8. min numpang tanya dong, yg di perbolehkan/maksimal yg boleh di pake arduino berapa vol, soalnya saya pake battrey 9v gk gerak ban nya, untuk projek motor dc (smart car)

  9. Mas, saya pakai sensor dht11 dengan ethernet shield yang dihubungkan ke mqtt broker, permasalahanya adalah sering error reading data dari dht11..jika ethernet shieldnya dilepas dan dicompile pake coding sederhana lancar jaya…kira2 apa masalahnya yah..thanks

    1. sensor dht (sensor onewire) pembacaan datanya membutuhkan timing yang harus tepat sehingga rawan jika di interupsi.
      jadi untuk membaca data onewire sebaiknya berikan waktu yang cukup tanpa interupsi, dan ambil data dht jika hanya ‘status’nya ok

  10. Mas saya pake arduino nano sama rfid 522…skect udah diupload tapi arduino gak jalan, rfid gak bisa membaca kartu padahal modul rfid normal

  11. Assalamualaikum,mas. Saya mau nanya, sayakan lagi buat alat pakai sensor Ir dan dfplayer MP3. Ketika sensor Ir dan dfplayer MP3 saya coba satu persatu semuanya berjalan dengan baik dfplayer mengeluarkan suara pada speaker . Tapi, ketika coba saya satu keduanya sensor Ir dapat bekerja dan dfplayer MP3 juga menunjukan bahwa beroperasi tetapi suaranya tidak keluar pada speaker. Mohon bantuannya

    1. belum bisa dianalisa,
      asumsi Ketika ada halangan yang dideteksi sensor ir maka dfplayer mp3 mengeluarkan suara
      :prosedur mp3_play() terus2an dipanggil sehingga mp3 menganggap sebagai perintah memainkan file suara
      >beri delay yang cukup setelah mp3 dimainkan, atau putar mp3 hanya jika kondisi ir berubah.

  12. permisi mas mau tanya, saya ada projek menggunakan 2 servo dan 1 sensor warna memakai arduino, klo sy pke adaptor charger hp yang 5V 2A, itu bisa apa enggak?? sy juga mau bikin cabang jadi 1 adaptor buat arduino, 2 servo, sama satu sensor warna, semua komponen satu Power / 1 adaptor. itu bisa apa enggak om?

  13. Permisi mas mau nanya, saya mengirim data dari uno ke nodemcu menggunakan software serial, nilai data pada uno berasal dari 2 sensor analog. Masalahnya data yang diterima nodemcu kadang terbalik atau malah bertumpuk-tumpuk padahal pemanggilan pada nodemcu sesuai dengan yang di uno, kira-kira itu kenapa ya mas?

    1. kejadian seperti itu biasa terjadi pada sistem lebih dari 1 data/perangkat
      maka sebaiknya data dikirim dengan sebuah protokol
      yang harus ada pada mekanisme komunikasi adalah id (data) dan tanda akhir data
      misalnya A123\r, B456\r, C789\r

  14. Permisi mas mau tanya, kenapa data dari serial komunikasi dari arduino ke nodemcu menjadi kadang error setelah pada nodemcu ditambahkan program untuk mengirim dan menerima data dari server yang berbeda, itu kenapa ya mas? Terima kasih mas..

    1. serial arduino: data serial yang diterima akan ditampung (dalam buffer) yang ukurannya terbatas, misal 32 byte saja
      wifi esp: komunikasi dengan server kadang memakan waktu dan menghambat baris program lain

      sehingga komunikasi serial akan terganggu jika : buffer data serial penuh selama komunikasi server

  15. Ikut nimbrung master….
    Arduino uno punya saya tidak bisa
    hidup dengan kalau pakai power supply batrai dari jek konektor DC..
    Solusinya gimana master?

  16. pak maaf mau tanya saya pakai arduino dgn 3 stepper nema 17, kenapa steper berhenti ditengah2 sendiri tapi tetap bergeter, tru kalau udah mau habis langkahnya bisa jalan lagi sebentar saya pakai power 12v 10A, makasih

  17. Ma’af mas.. kalo boleh saya ingin nanya..

    Saya nguji sensor suhu TPA64, satu berhasil dan sesuai, satu sempat berhasil tapi sekarang tidak sesuai, range 0 – 100 tapi malah tampil -127, padahal rangkaian, hardware, dan software nggak berubah, kira-kira knp ya Mas..?

    Mohon ma’af..
    Terima kasih.. ?

    1. TPA64 / AMG8833 menggunakan komunikasi i2c pada alamat default 0x69
      jika tidak bisa berkomunikasi, kemungkinan alamat tidak valid,
      langkah:
      *cek fisik pcb pada bagian addr
      *di program coba ganti alamat menjadi 0x68

      amg.begin(0x68);
      

      *cek komunikasi i2c dengan program/skecth i2c_scanner

    1. pertanyaannya masih umum karena sensor / komunikasi juga banyak metodenya
      secara umum, jika dibutuhkan komunikasi jarak jauk gunakan protokol/modulasi yang mendukung contohnya modbus, current loop dan sebagainya.

  18. Saya rasa juga seperti itu, karena sepertinya sensor kekurangan daya.
    Jadi saya coba koneksikan DHT 22 ke arduino. namun dengan jarak sekitar 80 Meter. jika dengan jarang dibawah 5 meter arduino dapat membaca sensor .

    jadi intinya harus ada daya tambahan untuk sensor tersebut?

    1. dht xx tidak dirancang untuk komunikasi jarak jau (~30 meter max)
      untuk pemakaian industri seharusnya menggunakan metode khusus jarak jauh.
      tapi bisa saja di-akali / dengan trik seperti itu (power supply sendiri), penggunaan kabel yang lebih bagus/besar dst

    1. asumsi: sensor analog/digital 1 pin dilepas (tidak terhubung ke arduino)
      analisa: kemungkinan port sensor (seharusnya tepasang) dalam mode floating

      pinMode(pinSensor, INPUT);

      dalam mode ini (dan dan pin tidak terpasang) maka pembacaan arduino akan mengambang/tidak jelas/acak (floating),
      antisipasi nya berikan nilai tertentu misalkan mamasang resistor pull-up/pull-down atau mendefenisikan mode seperti

      pinMode(pinSensor, INPUT_PULLUP);

  19. assalamualaykum, mohon maaf mau tanya kak, jadi kami pake arduino uno untuk sensor Raindrop dan servo (atap jemuran otomatis). minggu lalu rangkaian alat ini berhasildan berfungsi dengan baik, kemudian seminggu setelahnya kami coba lagi akan tetapi sensor raindrops dan servonya tidak berfungsi lagi data yang masuk tidak sesuai, itu bagiamaan ya solusinya ? terimakasih

    1. cek rangakaian, termasuk settingan potensio (jika ada)
      catatan: sensor raindrop tergolong sensor resistif, yang dipengaruhi juga oleh suhu, conductivity air dst, pastikan semua faktor memenuhi syarat

    1. modul kontroler apa yang dipakai?
      langkah umum:
      1. baca manual, perhatikan indikator yang ada
      2. cek rangkaian termasuk power supply, terbalik pemasangan, panjang kabel
      3. pastikan pengaturan yang compatible seperti baudrate, frekuensi, level tegangan

  20. Mas kalau saya ingin bikin kondisi dimana ketika suhu diatas 30 relay menyala, tapi ketika relay dimatikan sensor tidak membaca suhu
    Terus misal suhu dibawah 30 relay mati, tapi ketika relay dinyalain sensor tidak membaca suhu
    Relaynya juga terhubung ke tombol mas

  21. mas mau nanya serial monitor saya munculnya ??????? terus itu kenapa ya, saya buat program timangan berat badan pakai loadcell yang dikoneksikan nodemcu

  22. Mau nanya mas, projek saya kemaren membuat bilik Antiseptik 15 unit. Menggunakan sensor ultrasonic unk mengontrol relay pompa-DC 12 volt. Power supply arduino dan pompa satu dari adaptor 12 volt 2 A. Awalnya normal tp setelah beberapa kali beroperasi arduino Uno nya rusak (lampu warna kuning menyala terus). Tdk bisa jalan ataupun di program ulang. Arduino nya yg rusak sekitar 5 bh, dan ada satu lagi IC nya terbakar. Apakah sy salah memberikan power supply, salah jumper atau bagaimana mas, mohon pencerahan dan solusinya Trimakasih !!!!

    1. ada kemungkinan tegangan balik dari motor masuk ke regulator arduino dst…
      jika asumsi ini betul, coba beri pengaman tambahan,
      sederhananya saja dengan parallel dioda 4148 untuk mengurangi efek arus balik (perhatikan arah arus) , lainnya seperti coil emi filter dll,

      selain itu sebaiknya dari 12volt turunkan dulu tegangannya ke 5v dengan regulator seperti lm2596 (masuk ke jalur 5v arduino), jadi tidak menggunakan regulator internal arduino

  23. f871 4020a248
    3fffffc0: feefeffe feefeffe 3ffe8670 40100739
    <<<stack<<>>stack>>>
    3ffffd10: 3fff14d1 4d0fdf03 3fff0fac 402070d8
    3ffffd20: 00000000 3fff13f4 0000006e 00860011
    3ffffd30: 3fff14d1 00000000 00000005 40207070
    3ffffd40: 00000069 00000000 3fff13f4 4021c3c3
    3ffffd50: ed3f4f88 00000000 00000000 00000034
    3ffffd60: 0064038a 4bc6a7f0 0064038a 00000000
    3ffffd70: 0064038a 00000000 4bc6a7f0 00000000

    mau tanya mas kalau diserial monitor munculnya begini bagaimana, ini saya pakai 2 sensor yang disambungkan ke firebase tapi munculnya diserial monitor kaya gini..bagaimana mas?

  24. maaf mau nanya.
    Waktu itu saya berhasil mencoba mengirim sms menggunakan modul sim 800l v2 dengan arduino uno
    Lalu tiba tiba saya tidak bisa mengirim sms.
    Padahal kartu sim sudah menerima sinyal dan program berhasil diupload.
    Saya sudah mengganti arduino dan modul sim yang baru tetap tidak bisa mengirim sms pdahal saya masih menggunakan program yang sama(pernah berhasil)
    Dan saya juga sudah mengganti kabel dan pin berkali kali. Mencoba dengan berbagai contoh program mengirim sms.
    Tetap modul simnya tidak terhubung dengan arduino padahal sudah mendapat sinyal.
    Kenapa ya itu kira kira? Terimakasih sebelumnya

    1. 1. jika memungkinkan masuk ke mode AT command, misal dengan sketch software serial

      ini hanya pengecekan tambahan yang belum dituliskan
      2. cek baudrate (ada kemungkinan tidak autobaud), indikasi nya ada respon
      3. cek power supply untuk sim800L, ~4v 2A
      4. cek kartu, masa aktif/pulsa
      5. cobalah mengirim sms melalui at command /manual satu persatu, sehingga akan di ketahui posisi kesalahannya

  25. Assalamualaikum master, mau tanya.
    Soal komunikasi wireless (bluetooth hc05) dengan android, jd saya buat project plontar bola pingpong, mengontrol motor servo 2 unit driver bts 7960 sama driver l298n.
    Ada kendala, perintah yang saya berikan dr android uno ke driver l298n tidak mengeluarkan output pwm. Padahal diserial monitor muncul. Dan lampu indikator di arduino berkedi. Tp l298n g kerja.
    Kira2 knp

  26. Mlm mas , saya mau tanya untuk solusi arduino yang selalu harus direset setelah bekerja 1 kali, dalam hal ini saya menggunakan 2 arduino (untuk rfid) dan 1 driver untuk menjalankan stepper motor. Adapun power supply untuk arduino juga menggunakan 1 PSU yg sama. mohon solusinya, Mksh

  27. Permisi kak mau tanya, sebelumnya sudah saya tes servo dan berhasil gerak, setelah saya program arduino, sensor ultrasonik dan servo, ternyata nggak bisa narik servonya pas tangan didekatkan di sensor ultrasonik, ini bagaimana ya kak? terimakasih..

  28. mas saya mau tanya, ada kendala dalam sensor dht11 untuk nampilin nilai kadang masih muncul nilai suhu diluar sistem (angka melampaui batas) seperti suhu : 2134567890 celcius itu kenapa ya, soalnya ngaruh sama kipas dan lampu??? solusinya dong mas kenapa ya supaya bisa nampilin suhu yang semestinya ga diluar batas seperti
    suhu : 30 celcius dan suhu : 28 celcius . mohon bantuan dan responnya mas. terimakasih 🙂

  29. Mas mau tanya…. kenapa time/ date di RTC sering berubah2 sendiri ya ketika program arduino sudah dijalankan dalam waktu lama… apalagi ketika arduino sudah menggunakan power terpisah bukan menggunaka USB..

    terimakasih

  30. mas saya kan rancang drum elektrik menggunakan arduino mega, terus saya cek pake kabel usb 1,5 meter udah oke, terus waktu saya cek pake kabel panjang 10 meter kok di laptop saya dia tulisannya not recognize ya? padahal kabel 10 meter itu udah saya cek di printer ga masalah… kira kira ada solusi mas?

  31. Mas saya mau tanya, saya menggunakan arduino uno dan sensor ultrasonic 2 , DS18B20, sensor ph dan esp8266, nah itu katanya pin yang digunakan terlalu banyak, saat saya mau menahbahkan motor servo katanya tidak ada lagi pin yang tersisa untuk motor servo. Yang saya mau tanyakan Apakah pin untuk sensor sensor itu khusus atau bagai mana??

    1. ultrasonic 2 = 2×2 = 4 pin digital apasaja
      DS18B20 = 1 pin digital apa saja
      Sensor PH = 1 pin analog (A0)
      esp8266 (ESP-01) = 2 pin Serial (atau 2 pin digital software serial)
      Servo = 1 pin digital apasaja

  32. mas, saya menggunakan servo dan gps pada project saya, untuk setupnya seperti ini tampilannya.

    void setup()
    {

    Serial.begin(115200); // baudrate for serial monitor
    arduino.begin(19200);
    serial_gps.begin(9600);
    SIM900.begin(19200); // baudrate for GSM shield
    motorServo.attach(7); // servo Pada Pin digital 9
    scale.begin(DOUT, CLK);
    scale.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch
    scale.tare(); //Assuming there is no weight on the scale at start up, reset the scale to 0

    // pinMode(relay_pin, OUTPUT); // Setting erlay pin as output pin
    // digitalWrite(relay_pin, LOW); // Making relay pin initailly low

    // set SMS mode to text mode
    SIM900.print(“AT+CMGF=1\r”);
    delay(100);

    // set gsm module to tp show the output on serial out
    SIM900.print(“AT+CNMI=2,2,0,0,0\r”);
    delay(100);
    }

    program diatas saat saya upload tidak menampilkan nilai latitude dan longitude, namun jika serial_gps.begin saya pindah dibawah SIM900.begin maka nilai latitude dan longitude tampil namun servo bergerak tidak beraturan. kira-kira apa penyebab servo bergerak tidak beraturan?

    1. gak begitu jelas dari block setup() ini,
      kemungkinan:
      1)

      serial_gps.begin(9600);
      SIM900.begin(19200);

      “”jika menggunakan SoftwareSerial maka RX ‘serial_gps’ tidak berfungsi
      2)

      serial_gps.begin(9600);
      SIM900.begin(19200);

      ::formula konversi koordinat gps ke sudut servo

  33. Mas mau tanya
    Awalnya arduino saya panas. Dan tampilan lcd hilang, lampu indikaror arduino menyala semua, dan tidak terdeteksi sama laptop

  34. Bang aku lagi buat smart saklar dan penerangan jalan dengan sensor pir , yg di kontrol oleh rtc , anehnya rtc arduino cman membaca program untuk smart saklar sedangkan program sensor pir di abaikan itu bgaimna yah solusinya , awalnya masih normal bang smua brjalan lncar , namun kmrin ko ngga jadi yah bang , padahal sudah ganti relay dan sensornya tapi kok sama aja yahh

  35. mas saya mencoba membuat projek 4 bh arduino , arduino A kirim data ke B menggerakan relay, arduino B kirim data ke C menggerakan relay dan arduino C kirim data ke arduino D menggerakan relay. komunikasi menggunakan serial (TX,RX, Grn) dan half duplex..pas ketika program awal dijalankan bisa berjalan sesuai harapan, tapi pas percobaan selanjutnya gak bs komunikasi. setelah direset baru bisa komunikasi lagi. kira-kira kenapa ya mas?

    1. masalah umum:
      1. data bertumpuk
      2. lost offset karena tidak sinkron
      ::cek data yang dikirim
      untuk dipertimbangkan:
      *berikan karakter tertentu sebagai awal dan akhir
      *di penerima, hapus buffer terima jika data berhasil di terima

  36. assalamualaikum,
    saya ingin bertanya, saya menggunakan sensor DHT22 (kelembaban) dan pembacaannya digital. apakah berpengaruh panjang kabel (10 meter) penghubung dht22 ke arduino terhadap nilai bacaan sensor?
    terimakasih

    1. kemungkinan berpengaruh
      1. sumber daya/power dc untuk dht22 berasal dari arduino, dengan panjang kabel 10m, kemungkinan ada drop tegangan di sisi dht 22 (bisa diatasi dengan memberikan power tersendiri di dekat dht22)
      2. sinyal 1-wire dari dht ke arduino yang berisi nilai suhu juga rentan terjadi kesalahan pembacaan arduino

  37. kenapa ya program berhenti di tengah jalan kalo cuma dikasih power 9V 1A dari adaptor tapi kalo ditambah power dari usb ke arduino lancar? saya disini pake power supply breadboard mb102 buat supply arduino nano, 2 micro servo sg90, sensor ultrasonik hc-sr04, lcd 16×2 i2c

    1. ‘berhenti di tengah jalan’ agak susah di analisis penyebab pastinya
      kemungkinan sumbernya :
      1) ultrasonic-sr04:: bisa terjadi delay jika sinyal echo tak kunjung di terima
      2) lcd 16×2 i2c:: komunikasi i2c akan terhenti jika jalur SDA data dalam status tidak diketahui (disamping lcd 1602 juga membutuhkan delay menunggu data read)
      kedua kondisi diatas bisa terjadi apabila powersupply drop, yang disebabkan oleh power supply itu sendiri atau pergerakan servo2

  38. kak mau nanya aku pakai node mcu, load cell sama ulrasonik wiringnya udah bener tapi kok diserial monitor cuma muncul “connect: 192.168.0.7 ” nilainya gak muncul, kurangnya dimana ?

  39. Mau tanya hu, saya pakai wemos d1 mini untuk nembak ke api. Nah ketika dia connect/ saat di debug dgn laptop respon berjalan dgn baik dan normal. Namun ketika daya dipindah ke baterai atau power supply gk bisa connect ke wifi, tapi kondisi sensor dan arduino nyala. Apakah ada masalah di dayanya atay yg lain ya?

  40. Bang mau tanya, saya menggunakan arduino untuk control bilik disinfektan, awalnya oke, tapi setelah beberapa bulan, arduinonya sering aktf sendiri (tanpa trigger), kira kira apanya ya.
    Terimakasih

  41. Bang programku kenapa berulang terus ya padahal harusnya setelah 1x loop dia akan berhenti dan bekerja lagi saat ada kondisi high dari rfid. Tp ini baru 1 x tap , programnya looping terus. Kira2 masalahnya apa ya?
    Saya menggunakan pro mini dan node mcu. Pro mini untuk inisiate input dan node mcu untuk eksekusi program.
    Makasih bang

  42. Assallamuallaikum, dan selamat malam semuanya. saya mau bertanya,
    Saya lagi membuat project saklar sms,sudah terupload program, dan sudah terpasang rapi. Muncul masalah, setiap pertama kali dihidupkan harus menekan tombol reset baru bisa menerima sms. Mohon bantuanya

  43. relay saya di kaskade dengan coil kontaktor, coil nya bekerja di 220 V AC, kalau kontak pas lagi ada bebannya nya suka bikin hang LCD, ada saran bg?

  44. Kak mau tanya. Saya mau menggunakan sensor ZMPT101B, untuk mengukur tegangan. Nah masalahnya ada di sinyal ADC sensor. Saat saya coba menggunakan kabel usb dalam keadaan laptop tidak dicas. Sinyal ADC stabil dan bisa berubah sesuai tegangan yang dibaca. Namun bila laptopnya dalam keadaan dicas, sinyal ADC malah tak berubah dan cenderung tinggi, sinyal ADC tetap sama walaupun mengukur tegangan 0V atau 220V.
    Itu msalahnya di mana ya kak? Kok sinyal ADC kacau saat laptop dalam keadaan dicas saja. Mohon bantuannya, terima kasih

    1. ketrangannya kurang lengkap,
      dalam kasus tertentu bisa menerapkan sistem ‘bongkar pasang’, jadi di bagian setup cukup di inisialisasi salah satunya
      dan dalam loop dengan menonaktifkan salah satu sebelum mengaktifkan yang lainnya

  45. Izin kak,
    kalo ada tulisan gini
    sketch uses 4286 bytes (13%) of program storage space. Maximum is 32256 bytes.
    Global variables use 241 bytes (11%) of dynamic memory, leaving 1807 bytes for local variables. Maximum is 2048 bytes.
    program masih bisa berjalan ga ya?

  46. Mau nanya mas, saya ada kendala nilai pada port analog tetap berjalan meskipun tidak terhubung dengan sensor. Itu kira-kira kenapa ya?
    Sudah tak coba di arduino Uno dan stm32, meskipun tidak konek dengan sensor, portnya tetep mengeluarkan nilai dan nilainya itu tidak stabil

  47. Mau nanya kak, pada port analog arduino saya mengeluarkan nilai yang tidak stabil meskipun tidak terhubung dengan sensor, itu cara menghilangkan nilainya gimana kak? Karena saat disambung dengan sensor, maka outputnya akan ditambah dengan nilai tadi yang mengakibatkan nilainya jadi double

    1. port analog (atau digital) pada mode input bersifat floating/mengambang (kecuali pada mode input pull up ==indikasinya pembacaan stabil di 1023/maksimal==)
      jadi ketika di pasangi sensor, maka yang terbaca adalah output sensor dari itu sendiri

  48. Kak mau tanya, saya membeli relay 2 channel untuk suatu projek. Relay itu masih berfungsi dengan baik sampai saya gunakan untuk tester kabel jumper apakah kabel masih berfungsi atau tidak. Jadi pas lagi ngetes kabel yang lain tiba-tiba relaynya ga bisa hidup sama sekali, padahal udh betul pin jumpernya. Itu masalahnya apa ya? Sama solusinya gimana? Mohon bantuannya kak

    1. *modul relay pada umumnya di lengkapi indikator led power supply, pastikan led power on itu menyala (cek kabel power +5v-gnd)
      *mekanik relay membutuhkan daya, pastikan power supplynya cukup daya / arusnya cukup (misal 5 volt – 2 ampere)

    1. indikator l terhubung ke pin 13, dan rx-tx sebagai indikasi komunikasi serial
      jika rx-tx nyala terus bisa jadi ada komunikasi serial yang terus-terusan, dan penyalaan pin 13
      cek lagi logika programnya, besar kemungkinan program hanya loop di pengiriman data serial

    1. umumnya di arduino ada 4 led yaitu on, led, rx dan tx,
      on sebagai indikator power supply
      l terhubung ke pin 13
      led rx-tx hanya menyala ketika ada transmisi data serial,
      jika maksudnya led rx-tx selalu menyala berarti ada transmisi komunikasi serial yang terus menerus (normal jika memang di programkan demikian)

  49. Saya menggunakan arduino uno dan load cell, tapi nilai load cell yang terbaca di serial monitor tidak stabil kira-kira itu karena apa ya? Dan ketika sudah stabil tetapi nilai yang terbaca tidak berbeda antara load cell dengan beban dan tanpa beban, masalahnya dimana ya padahal load cell yang saya gunakan baru.

  50. maaf kak, saya mau tanya, saya mau menjalankan bell sekolah dari mains 220v melalui single chanel 5v optocoupler relay, yang di kendalikan oleh pin ouput dan pin input interupt, arduino uno, yang terhubung ke pushbutton dengan pullup internal resistor, dan interupt aktif bila kondisi low… pada waktu test relay saya hubungkan dengan buzzer dan powersupplly 5v.. rangkaian berjalan dengan baik, bila yang di drive dengan relay alat yang jalan dengan baterai atau dc powered,

    namun pada tahap implementasi ketika kaki common pada relay baru saja terhubung dengan 220v belum di apa2in, kalau kaki common di sentuh dengan obeng, kadang interupt langsung jalan seperti push button tertekan

    dan di tengah2 running seperti ada random triger interupsinya, kira2 masalahnya di mana ya kak ? terima kasih sebelumnya

    1. kemungkinan penyebabnya adalah weak pullup,

      • Pastikan internal pullup tetap aktif, misalnya penulisan kode digitalWrite(2, LOW); akan mematikan internal pullup di pin 2
      • Jika diperlukan, tambahkan external pullup
      • Periksa sinyalnya dengan analogRead(pin);
  51. Kak mau tanya, saya secara ceroboh menggunakan pin 0 dan pin 1 sebagai input. Setelah saya gunakan tiba2 Arduino error kemudian Arduino tdk bisa di upload program lagi meskipun kabel jumper sudah di lepas dari pin 0 dan pin 1. Solusinya supaya bisa baik lagi Arduino saya gimana ya kak?

    1. Tidak akan ada masalah dengan pin 0, 1 sebagai GPIO biasa (seperti lainnya), karena antara serial (16u2, ch340/sejenisnya) di batasi oleh resistor 1k ohm.
      Jika terjadi masalah, hal yang mungkin bisa dilakukan:

      • Periksa secara visual komponen-komponen yang mungkin rusak
      • Gunakan external usb to serial ttl
      • Gunakan ISP programmer
  52. kak mau tanya, ini kan saya mau buat sensor ultrasonic buat menggerakkan servo nya. nah kalau pakai usb port laptop itu sesuai perintah. tetapi kalau saya hidupkan pakai baterai, servonya tidak bisa membaca perintah, yang bisa baca perintah cuman sensornya saya. itu bagaimana ya?

    1. Periksa spesifikasi tegangan kerja dan kebutuhan arus serta daya masing-masing komponen

      Pengunaan servo (atau mekanik menggunakan motor) membutuhkan tegangan, arus dan daya nominal yang harus di penuhi agar bekerja optimal,
      jika dalam hal ini menggunakan baterai misalnya 3v dan tegangan optimal servo 5v, maka respon servo tidak optimal, jadi sesuaikan tegangan ke servo misalnya dengan 2 baterai dan jika perlu tambahkan regulator

  53. Halo kak, saya ingin bertanya, saya khan membuat kipas otomatis yang berbasis arduino uno dan suhu dht 11, nah permasalahannya kenapa kipas tidak mau mati ketika suhu nya dibawah 28C ( Yang saya ingin kan ), itu kenapa ya kak ? Waktu saya cek progam nya benar

  54. kak saya ada arduino saya hubungkan sama relay, buzzer, pompa air, mq 2. wiringnya udah bener, codingnya bener, tpi pas di running ngga mau jalan sama sekali. sama lampu indikator di semua komponen jadi meredup, tpi pas pompa tak copot terang lagi tpi tetep sistem ngga jalan. kira kira kenapa ya

    1. kemungkinan besar masalah undervoltage/kekurangan tegangan yang bisa diakibatkan oleh
      1. polaritas modul yang terbalik ::: cek Vcc(+) dan Gnd(-) jangan sampai tertukar
      2. korslet/hubung pendek/short circuit ::: periksa kemungkinan kabel korslet, banyak ditemui korslet ini di terminal kabel karena kabel serabutnya yang tercerai berai
      3. kekurangan daya, jika modul yang dicurigai membutuhkan daya yang lebih besar maka ::: ganti atau tambah daya power supply

Leave a Reply to Ilham Cancel reply

Your email address will not be published. Required fields are marked *