Dua Cara untuk Mengatur Ulang Arduino dalam Perangkat Lunak

Jika Anda ingin RESET Arduino dari awal tanpa secara manual menekan tombol RESET, ada beberapa cara. Berikut adalah dua cara, menggunakan kabel / sirkuit minimal.

Langkah 1: Menggunakan 1 Kawat yang Terhubung ke Pin RESET

1. secara elektronik, hanya menggunakan 1 kawat yang menghubungkan pin OUTPUT (12 dalam contoh ini) ke pin RESET. (lihat sirkuit)

Dalam contoh ini, pin 13, terhubung ke pin LED 13 internal berkedip. Pin 12 terhubung ke pin RESET dengan satu kabel.
-Benar-benar, ini akan menjadi masalah karena ketika aplikasi dijalankan, semua pin ditarik RENDAH. Karena itu ini akan menonaktifkan Arduino dari setiap berjalan. NAMUN, triknya adalah: dalam fungsi setup (), hal PERTAMA yang terjadi adalah kita menulis TINGGI ke pin 12, yang disebut pin reset kami (digitalWrite (resetPin, HIGH), dengan demikian menarik pin RESET Arduino TINGGI.
 int led = 13; // pin 13 sebagai OUTPUT LED pin int resetPin = 12; // rutinitas setup berjalan sekali ketika Anda menekan reset: void setup () {digitalWrite (resetPin, HIGH); keterlambatan (200); // inisialisasi pin digital sebagai output. pinMode (led, OUTPUT); pinMode (resetPin, OUTPUT); Serial.begin (9600); // menginisialisasi Port Serial Serial.println ("reset"); // print reset untuk mengetahui program telah di-reset dan // fungsi pengaturan terjadi penundaan (200); } // rutin loop berulang-ulang selamanya: void loop () {delay (10); digitalWrite (led, HIGH); // nyalakan LED (TINGGI adalah level tegangan) Serial.println ("on"); keterlambatan (1000); // tunggu digitalWrite kedua (dipimpin, RENDAH); // matikan LED dengan membuat tegangan RENDAH Serial.println ("off"); keterlambatan (1000); // tunggu Serial.println kedua ("reset"); keterlambatan (10); digitalWrite (resetPin, LOW); Serial.println ("ini tidak pernah terjadi"); // ini tidak pernah terjadi karena Arduino me-reset} 

Langkah 2: Menggunakan Perangkat Lunak Just

Dalam contoh ini, Anda tidak perlu kabel tambahan. Kami menginisialisasi fungsi reset, lalu panggil reset.

void (* resetFunc) (void) = 0; // mendeklarasikan fungsi reset di alamat 0
...
resetFunc (); // setel ulang panggilan
 int led = 13; // rutinitas setup berjalan sekali ketika Anda menekan reset: void setup () {// menginisialisasi pin digital sebagai output. pinMode (led, OUTPUT); Serial.begin (9600); // menginisialisasi port serial} void (* resetFunc) (void) = 0; // nyatakan fungsi reset @ address 0 // rutin loop berulang-ulang selamanya: void loop () {digitalWrite (led, HIGH); // nyalakan LED (TINGGI adalah level tegangan) Serial.println ("on"); keterlambatan (1000); // tunggu digitalWrite kedua (dipimpin, RENDAH); // matikan LED dengan membuat tegangan RENDAH Serial.println ("off"); keterlambatan (1000); // tunggu Serial.println kedua ("reset"); resetFunc (); // penundaan reset panggilan (100); Serial.println ("tidak pernah terjadi"); } 

Artikel Terkait