Soft Reset Arduino, Cara Reset Arduino Menggunakan Kode Program

Posted on

Soft Reset Arduino

Soft Reset Arduino Cara Reset Arduino Menggunakan Program – Dalam beberapa penggunaan peralatan elektronik, kita akan membutuhkan mode reset untuk memposisikan program pada 0x00000000, yang akan berdampak pembacaan program di mulai dari awal program.

Ada dua metode untuk melakukan reset pada Arduino dan juga dapat di aplikasikan pada mikrokontroller varian AVR lainnya, yaitu “Soft Reset” dan “Hard Reset”.

Soft Reset artinya me-Reset miktrokontroller melalui Kode-Kode Program (Software), sedangkan Hard Reset artinya kita me-Reset mikrokontroller langsung pada fisik mikrokontrollernya (hardware).

Berikut merupakan cara yang saya gunakan untuk reset program secara soft reset. Pertama, kita manfaatkan digital pin untuk memberikan logika low ke reset pin, sehingga reset akan terjadi. Kedua, kita menggunakan fungsi resetFunc().

 

A. Soft Reset Arduino (Paduan Software dan Hardware)

Cara melibatkan hardware dan software. Saya melampirkan rangkaian dibawah . Anda dapat mengikuti rangkaian dengan menghubungkan pin digital 2 ke pin reset.

Dalam percobaan saya menggunakan pin digital 2, anda dapat menggunakan pin digital lainnya, sesuai kebutuhan anda.

soft reset arduino

Upload program berikut  ke Arduino board anda, kemudian klik Serial Monitor. Anda dapat melihat apakah board Arduino anda berhasil melakukan reset atau tidak.

#define pinReset 2

void setup() {
  digitalWrite(pinReset, HIGH);
  Serial.begin(9600);
  Serial.println("Reset Sukses");
  pinMode(pinReset, OUTPUT);
  delay(3000);
}

void loop() {
  Serial.println("Bersiap untuk Reset!");

  for (int cnt = 0; cnt < 20; cnt++) {
    Serial.print(".");
    delay(50);
  }

  Serial.println("");
  delay(3000);
  digitalWrite(pinReset, LOW);

  Serial.println("Reset Gagal");
}
Prinsip kerja:

Kita defenisikan terlebih dahulu pinReset yang digunakan yaitu pin digital 2. Kemudian untuk fungsi setup(), pada awal program kita langsung menerapkan pin digital 2 untuk mengeluarkan logika High (1).

Ini mengakibatkan mikrokontroller tidak akan pernah “reset”, karena mikrokontroller akan reset ketika diberikan logika Low (0).

Kita sialisasi serial untuk dapat menampilkan data-data ke Serial Monito dengan perintah Serial.begin(9600).

Kemudian pada bagian fungsi setup() kita berikan perintah ke Serial Monitor bahwa Reset sukses. Mengapa? Karena Ketika reset terjadi pasti akan membaca fungsi setup() terlebih dahulu dan akan memberitahu kepada kita melalui serial monitor bahwa mikrokontroller telah reset.

Pada fungsi loop(), perintah utama yang melakukan reset adalah digitalWrite(pinReset, LOW);
Ketika pin reset menerima logika Low(0) dari pin digital 2, maka mikrokontroller akan reset dengan cepat, dan akan membaca kembali program setup() kemudian loop();
Namun ketika reset tidak terjadi, maka serial monitor akan memberikan infomasi Reset gagal, karena telah kita buat perintah Serial.println(“Reset Gagal”);

B. Soft Reset Arduino (Hanya Software)

Pada program kedua merupakan cara yang lebih simple untuk me-Reset arduino anda. Silahan upload program berikut ke Arduino anda, kemudian buka Serial Monitor.

void (* resetFunc) (void) = 0;

void setup() {
  Serial.begin(9600);
  Serial.println("Reset Sukses");
  delay(5000);
}

void loop() {
  Serial.println("Bersiap untuk Reset!");
  for (int cnt = 0; cnt < 20; cnt++) {
    Serial.print(".");
    delay(50);
  }

  Serial.println("");
  delay(3000);
  resetFunc();

  Serial.println("Reset Gagal");
}

Demikian merupakan cara Reset Arduino yang telah saya coba. Semoga bermanfaat.

Semoga bermanfaat.