Jak resetovat Arduino Uno pomocí softwaru: Vysvětlené metody

  • Software se resetoval Arduino Uno To lze provést pomocí ukazatelů funkcí nebo pomocí digitálního pinu.
  • K automatickému resetu dochází při připojení desky přes USB kvůli řízení průtoku ATmega8U2.
  • Tento reset lze zakázat vyříznutím stopy na desce Arduino, aby se zabránilo nechtěným resetům.

Jak rozpoznat padělek Arduino-4

Mnohokrát při práci s talířem Arduino Uno, je nutné jej restartovat bez fyzického zásahu, ať už proto, že se zařízení nachází na těžko dostupném místě, nebo proto, že chceme proces v rámci kódu automatizovat. Naštěstí existuje několik metod, jak provést a resetovat z Arduino Uno softwarem, každý se svými specifickými výhodami a aplikacemi.

V tomto článku uvidíme různé způsoby, jak restartovat a Arduino Uno přes kód, od použití funkčních ukazatelů až po použití digitálních pinů pro generování externího resetu. Prozkoumáme také fungování Automatický reset při připojení přes sériový port a jak se tomu vyhnout, pokud to způsobuje problémy v našich projektech.

Resetovat Arduino Uno pomocí ukazatelů funkcí

Jedna z nejpoužívanějších metod restartu a Arduino Uno z kódu je použití a ukazatel funkce. Cílem je přiřadit adresu paměti 0 ukazateli funkce a zavolat ji, aby procesor provedl reset systému. Více o souvisejících projektech se můžete dozvědět na průvodce Arduino Uno.

Základní kód této metody je následující:

String letra = "";  
int x = 2;  

void(* resetSoftware)(void) = 0;  

void setup(){  
  Serial.begin(9600);  
  Serial.println("Iniciando.");  
}  

void loop() {  
  if (Serial.available() > 0) {  
    letra = Serial.readString();  
    Serial.println(letra);  
    if(letra.indexOf("v") > -1){  
      x = x + 5;  
      Serial.println(x);  
      Serial.println("Reseteado.");  
      delay(500);  
      resetSoftware();  
    }  
  }  
}  

V tomto případě, když je do sériového monitoru odesláno písmeno "v", deska přidá k proměnné 5 x, vytiskne novou hodnotu a poté provede reset vyvoláním resetSoftware(). Tím se mikrokontrolér vrátí do výchozího stavu, jako by bylo stisknuto resetovací tlačítko. Pro další metody programování se můžete podívat na Průvodce používáním millis v Arduinu.

Resetovat Arduino Uno pomocí digitálního PIN

Dalším způsobem, jak provést měkký reset, je připojení digitálního pinu k resetovacímu pinu desky. Toho je dosaženo jednoduchým vodičem mezi výstupním kolíkem (například 10) a kolíkem RESET Arduina. Tato metoda je užitečná, pokud hledáte rychlé řešení bez úpravy bootloaderu.

Kód této metody je následující:

String letra = "";  
int x = 2;  

void setup(){  
  digitalWrite(10, HIGH);  
  Serial.begin(9600);  
  Serial.println("Iniciando.");  
  pinMode(10, OUTPUT);  
}  

void loop() {  
  if (Serial.available() > 0) {  
    letra = Serial.readString();  
    Serial.println(letra);  
    if(letra.indexOf("v") > -1){  
      x = x + 5;  
      Serial.println(x);  
      Serial.println("Reseteado.");  
      delay(500);  
      digitalWrite(10, LOW);  
    }  
  }  
}  

V tomto případě odeslání písmene "v" přes Serial Monitor sníží logický stav pinu 10, což způsobí reset na desce. Je to praktická alternativa, když potřebujete restartovat systém ze softwaru bez úpravy kódu bootloaderu. Pokud potřebujete více informací o připojení Arduino, doporučujeme přečíst si o ArduinoNano.

Automatický reset Arduina při připojení přes sériový port

Talíře Arduino Uno Mají automatický resetovací mechanismus, když je navázáno spojení přes sériový port. To se děje proto, že linka DTR čipu ATmega8U2 je propojena kondenzátorem 100 nF s linkou reset procesoru ATmega328. Po aktivaci DTR se na resetovací lince vygeneruje puls, který způsobí restart Arduina. To je užitečná funkce v mnoha projektech, jako jsou ty, které zahrnují OLED displeje, které můžete prozkoumat v Průvodce 0.96″ OLED displeji.

Tento mechanismus umožňuje zavaděč mají kratší dobu čekání a usnadňují načítání nových programů, aniž byste museli ručně mačkat resetovací tlačítko. V některých případech to však může být nevýhoda, pokud kód závisí na konstantním sériovém připojení.

Jak se vyhnout automatickému resetu při použití USB

Pokud automatický reset při připojení Arduina k počítači způsobuje problémy s chodem projektu, existuje jednoduché řešení, jak jej zakázat. Deska obsahuje a malá dráha, kterou lze řezat abyste se tomuto chování vyhnuli. Tuto úpravu lze snadno provést, pokud znáte základy elektroniky, jak je vysvětleno v Průvodce pro ovladače krokových motorů.

Chcete-li to provést, jednoduše vyhledejte stopu na spodní straně desky poblíž konektoru USB a odřízněte ji řezačkou nebo skalpelem. Pokud bude v budoucnu nutné obnovit funkci automatického restartu, lze ji znovu aktivovat připájením malého propojky mezi dva body na dráze.

Vědět, jak zakázat automatický reset, poskytuje větší kontrolu nad tím, jak se Arduino chová při příjmu dat z počítače. Osvojte si tyto metody pro reset a Arduino Uno Poskytuje větší flexibilitu při vývoji elektronických projektů, umožňuje automatizaci, ladění a zlepšování chování vestavěných systémů bez nutnosti ručního zásahu.

Hlídač Arduina
Související článek:
Arduino Watchdog: Jak to funguje

Buďte první komentář

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.