Ada kalanya kita ingin reset ulang Arduino untuk sekedar memastikan semua fungsi berjalan dengan semestinya. Atau jika Arduino dalam keadaan nge-hang karena suatu hal, tentu kita harus meresetnya. Untuk mereset arduino secara manual tentunya tidak mungkin kita lakukan jika sistem kendali berbasis Arduino yang sudah kita bangun sudah terpasang di suatu tempat tentu. Satu-satunya cara adalah dengan membuat semacam sistem auto reset atau dengan pendeteksian jika Arduino dalam keadaan hang.
Untuk tutorial kali ini akan kita bahas tentang bagaimana me-reset Arduino dengan kode program atau secara software tidak dengan menekan tombol reset hardware. Reset Arduino secara berkala sangat penting untuk Anda lakukan terutama pada Arduino yang bekerja mandiri sebagai sebuah sistem kendali yang bekerja 24 jam terus menerus. Hal ini untuk mencegah Arduino menjadi nge-hang dan senantiasa membuatnya ‘segar’ kembali.
Untuk me-reset Arduino dengan kode program, Anda dapat mendefinisikan sebuah function di alamat 0 program Arduino. Jadi ketika Anda memanggil function ini di sembarang tempat dalam program utama Anda, maka pada dasarnya Anda akan menuju alamat 0 di Arduino Anda. Ini akan menghasilkan efek yang sama seperti saat Anda menekan tombol reset  Arduino (reset hardware). Untuk lebih jelasnya berikut ini adalah contoh penggunaan function ‘ku_reset’ untuk mereset Arduino secara software
void(* ku_reset) (void) = 0; void setup() {Â Â Â Â Â Serial.begin(9600); Â Serial.println("ini di blok setup Arduino"); Â Serial.println("https://saptaji.com"); Â delay(1000); } void loop() { Â Serial.println("ini di blok loop Arduino"); Â delay(1000);Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Serial.println("siap-siap reset Arduino"); Â Serial.println(); Â delay(1000); Â ku_reset(); Â Serial.println("ga bakal sampai sini karena udah di-reset"); }
Perhatikan cara pendefinisian function ‘ku_reset’ agar berada di alamat 0 Arduino (baris [1]) dan cara pemanggilan function untuk reset tersebut (baris [18]). Untuk lebih jelasnya, silahkan buka jendela Serial Monitor melalui menu Tools-Serial Monitor. Perhatikan bahwa baris [19] di atas tidak akan pernah dieksekusi (tidak tertampil di jendela Serial Monitor) karena Arduino sudah di-reset terlebih dahulu (baris [18])
Anda dapat mengombinasikan function ku_reset() di atas dengan library Time/TimeAlarm untuk membuat sistem auto reset Arduino secara berkala dalam jangka waktu tertentu, misalnya seminggu sekali atau sebulan sekali untuk me-refresh sistem Arduino Anda .
Di awal tutorial ini, saya sempat menyinggung tentang sistem pendeteksian Arduino dalam keadaan nge-hang. Arduino harus bisa mendeteksi dirinya sendiri tidak berfungsi sebagaimana mestinya dan bagaimana cara menanganinya. Salah satu cara yang banyak dipakai adalah dengan memanfaatkan WDT (Watch Dog Timer), yakni semacam timer yang jika mengalami overflow akan men-trigger interrupt yang akan mereset suatu processor (dalam hal ini mikrokontroller AVR ATMega dalam board Arduino). Jadi teknik reset Arduino dengan WDT adalah berbeda dengan cara reset menggunakan function ku_reset di atas. Jika menggunakan WDT, sistem reset akan terpicu oleh overflow timer WDT, jika menggunakan function ku_reset, sistem reset akan terjadi karena kita yang memanggil function tersebut. Jadi WDT adalah sebuah mekanisme pe-reset-an Arduino jika sudah terjadi nge-hang (pasca kejadian), sedangkan function ku_reset adalah mekanisme pe-reset-an Arduino sebelum terjadi hang (preventif). Bagaimana cara penggunaan WDT dan kapan kita menggunakannya akan saya bahas lebih detail dalam tutorial berikutnya….
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
Mas mau nanya: klo arduino yg sdh di upload cnth aplikasi trs kita ingin mereset default lagi caranya gmn ya?klo tombol reset kan cm ngre start arduino ny saja ga ngilangin isi programnya..mhn bantuan jwbnya mas..nuuwun
diprogram ulang aja mas, sama kayak isi program yang pertama/sebelumnya
trimakasi mas,,, ini yang saya cari sejak kemarin
mas sy kan punya arduino esp8266mod wifi jammer, klo mau reset gmna yah mohon bantuannya, ini no hp saya mas WA = 085298281354
biasanya ada pin resetnya mas, coba dicek di datasheetnya
Mas. Saya ingin belajar arduino dimana ya ?
Terimakasih
beli aja buku saya mas 🙂 https://www.tokopedia.com/raftech/buku-mudah-belajar-mikrokontroller-dengan-arduino
Mas mau adu ilmu nihhhh
Apa perbedaan arduino dengan sismin atmega yang dibuat sendiri mas
Ayoooo !!!!!
Kalau memang situ suhu mikrokontroller……
Wkwkwkwkwkkwkwkw
yg pertama sy ngga minta dipanggil ‘suhu’ dan ngga merasa sbg ‘suhu’ mikrokontroller. Sy hanya ingin berbagi ilmu yg sy ketahui spy bermanfaat bagi orang lain. Kata nabi muhammad SAW dalam salah satu hadits-nya, “Sebaik-baiknya seorang muslim adalah yang bermanfaat untuk sesamanya” yg kedua, menjawab pertanyaan perbedaan dg arduino dg sismin atmega, memang ada perbedaan dan persamaannya. Sy jelaskan keduanya dari apa yg sy ketahui, mungkin kalo mau googling mungkin akan lebih lengkap lagi: – persamaan : board arduino dan sismin atmega secara hardware adalah sama, dalam arti membutuhkan ic mikrokontroller (misal atmega), rangkaian clock (XTAL), rangkaian reset untuk dapat… Read more »
Mantap mas Ilmunya ijin sedot ilmu nya ya hehe
mau nanya mas
kemarin aku unistal prorgam arduino
kembali aku instal lagi, tapi port nya dah berubah
tiba buat program dan di kompilasi ke skecth arduino jadi ngak bisa mas
petunjuk mas soalnya dah kewalahan. mau cari perogram dalam bord arduino juga ngak bisa. direset juga ngak bisa
tenang mas, kalo panik malah tambah bingung 🙂
yg pertama cek driver usb untuk board arduino udah terinstal belum
yg kedua, ngga bisanya itu karena apa, coba dilihat di jendela debug IDE arduino bagian bawah. Nah di situ ada petunjuknya , erronya di bagian apa
Mas mau nanya saya bikin module RTU dengan arduino, komunikasi pake RS485, kebetulan saya bikin dua slave, permasalahan nya kalau individual gak Ada masalah, tapi kalau saya konek dua module selalu komunikasi nya error, padahal sudah di bedain id nya, penyebab nya APA ya Mas???, kaya yang nge hang, kalau di reset Bagus lagi komunikasi nya, minta ajarin dong Mas untuk auto reset arduino setiap 3 menit sekali gitu Mas, ya fungsinya seperti tombol reset gitu Mas, Karena kalau pas komunikasi error saya tekan tombol reset Bagus lagi, aku tunggu ya Mas.
udah dicoba cara di atas ngga mas? atau bisa aja pake cara hard reset : hubungkan salah satu pin digital ke pin reset arduino, ntar kalo mau reset tinggal ubah logic pin digital tsb jadi logic LOW
mas kalau arduinonya diupload lebih dari satu program gimana ya? apakah bisa, apakah akan berjalan dengan normal?
bisa mas, berjalan normal. Yg akan dieksekusi adalah program yang terakhir di-upload (replace program sebelumnya)
Makasih mas..
mas saya mau nanya, ada dapat masalah masih belum teratasi. saya sekarang buat control lampu menggunakan bluetooth and arduino uno untuk belajar tapi saat saya control di hp android lampunya tidak menyala mas, padahal saya juga sudah upload programnnya ke arduinonya. ada solusi gak mas? Makasih mas sebelumnya.
kalo komunikasi dua device seperti itu memang harus dicek dua2-nya sih mas, bisa jadi sisi android-nya belum ngeluarin data, bisa jadi sisi arduinonya yang ngga bisa nerima data. Untuk troubleshoot saya sarankan coba dulu program yang udah jadi (banyak tersebar di internet) kemudian gabungkan dengan program mas bergantian. Contohnya gini: program android yang udah jadi vs program arduino punya mas. Kalo udah ok, coba gantian program android vs program arduino yg udah jadi. Yg terakhir, jika udah ok, program android mas vs program arduino mas harusnya udah bisa
Iya mas tak cobain dulu..
kalau kabel pawernya 250v terus lampunya sekitar 220-240v itu gak ada masalah ya mas?
Mas, mau tanya kalau boardnya sdh terlanjur freeze atasinya gmn ya? Kabel tidak terbaca.
Sebelumnya jalan normal, sepertinya saya ada salah colok jumper, boardnya langsung nyala semua lampunya, (led bawaan, tx/rx, indikator on) dan puanasss. Saya pake adaptor 12v.
coba di burn agi bootloader arduinonya http://saptaji.com/2014/02/16/mengisi-sendiri-bootloader-arduino-ke-ic-atmega-8168328/
mas,, saya mau tanya.. kalo saya ingin mereset salah satu void pake fungsi diatas bisa engga ya mas ?? terima kasih.
maksudnya mereset void itu gmn ya mas?
maksud saya hanya satu fungsi perintah saja yang saya mau reset mas..kira2 bisa engga ya mas ?? Kan kalo pake fungsi reset yg disini kan,, semua program ke reset ulang kan mas ??
pengertian ‘reset’ di sini gmn mas? kalo pengertian saya ‘reset’ itu ya kembali ke posisi awal.
Kalo yg mas maksud, status variabel kembali ke status awal ya tinggal diset aja variabel sesuai status awal
maksud saya di program saya seperti ini :
void setup(){
” ” }
void loop(){
” ” }
void suhu 1(){
” ” }
void suhu 2 (){
” “}
jadi yang saya tanyakan,, apakah dengan fungsi reset diatas bisa mereset salah satu fungsi void perintah nya mas ? misalkan yg saya mau reset itu hanya void suhu 2 saja.. terima kasih..
oh, ga bisa mas. Resetnya keseluruhan.
Itu knp mau direset sebagian?
Karena saya mau ngambil data secara prriodik mas
bisa aja mas, tinggal pake script aja, ga perlu di-reset
maap mas, sy juga nunggu jawaban yg ini, kira2 gmana caranya ya mas? mohon bantuannya 🙂
bikin variabel penanda (flag) bisa tipe boolean atau byte. Jika proses di void (function) X (misalnya) dimulai, variabel tsb isi dg ‘true’ atau ‘1’, kalo proses di void ‘X’ tsb selesai, isi variabel flag tsb dg ‘false’ atau ‘0’. Efeknya sama kayak di ‘reset’ tp di void itu aja
Kira2 seperti apa ya mas kalo pake script ??
gan mau nanya arduino saya tadi konek dan bisa upload kodingan tp udah beberapa kali upload sekarang gak bisa konek di pc yang berbeda pun sama ini harus gimana ya gan
1. Coba cek driver usb-nya, kalo pengin yakin di-uninstal trus instal lagi driver-nya
2. Coba cek port COM di Control Panel, pastikan port tersebut tidak ada yang pakai (contoh aplikasi yg biasa pakai com port: aplikasi modem,hyper terminal, putty, dll)
3. Setelah mendapatkan nomor port COM di control panel, buka IDE Arduino di menu Tools-Ports, pilih nomor port yang sama
4. Jangan lupa, tipe board harus sesuai dengan arduino yang sedang dipakai (menu Tools-Board)
Mas mau tanya, kalo ingin reset menggunakan keypad gimana ya mas? Jadi ketika misalnya saya mau pencet # di keypad bisa ke awal lagi mas?? Mohon bantuannya mas terimakasih
tinggal digabung sama ini mas http://saptaji.com/2016/12/27/cara-membaca-tombol-keypad-dengan-arduino/
selamat malam,maaf mengganggu, kalau mau ganti kode atau PIN dari keypad gimna caranya?
mas,kenapa nodemcu saya kerika saya mau upload ulang malah keluar reseeting via RES pin,mohon pencerahannya egera mas,nodemcu amica
coba dilakukan sesuai warning-nya, di reset aja manual lewat pin RESET
selamat malam mas. semisal reset arduino itu tiap minggu sekali bagaimana mas. menggunakan fungsi timer apa RTC
timer bisa, rtc juga bisa
Pny sy Arduino uno dan sy isi program utk joystick menggunakan xloader, dan sekarang sy mau kembalikan sprit semula tp tdk bs krn awal sy colokan arduinonya ke computer lngsng terdeteksi joystick. Sy buka program arduinonya itu portnya tdk terdeksi port arduinonya. Itu gmn ya cara mengatasinya ?
di-burn bootloader lagi mas Burning Bootloader IC Atmega328 Menggunakan Arduino Mega
mas mau tanya kalau arduino bisa di remote?
bisa aja asal diprogram dulu
if….. else if… else if (nilaiSensor < 301){ int h = dht.readHumidity(); int t = dht.readTemperature(); unsigned long currentMillis = millis(); if (currentMillis – previousMillis >= jeda) { previousMillis = currentMillis; } if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } int nilaiSensor = analogRead (sensor); int percentSensor = nilaiSensor/6; lcd.setCursor (0,0); lcd.print (“Processing…”); delay(200); lcd.clear(); for (i++; i < 101;){ lcd.setCursor (0,1); lcd.print (i); lcd.print (“%”); delay(50); break; } digitalWrite (lightPump, HIGH); digitalWrite (waterPump, HIGH); digitalWrite (indicatorLight, ledState); Bang, misal yg blok else if (nilaiSensor < 301) sudh dijalankan terus sensor mendeteksi… Read more »
coba pake cara reset hardware, bisa dibaca di artikel Reset Arduino
permisi mau tanya kalau mau reset tapi pakai photo resistor kira kira bisa ndak?
bisa aja mas, tinggal didesain aja rangkaiannya
Sangat berguna untuk reset millis()
izin tanya mas, program ini cuma kita ditambahkan di program kita saja atau ada penyesuaian lainnya ya? dan jika ditambahkan program ini ke program yang sudah kita buat apa nantinya setelah ter-reset akan kembali normal?
pada intinya kode reset di atas dipanggil saat dibutuhkan untuk reset arduino scr software. Jd silahkan digunakan sesuai kebutuhan. Setelah reset semua program akan kembali ke address 00H. Utk lihat normal atau tdk perlu dicek scriptnya scr keseluruhan