Serwisy partnerskie:
Close icon
Serwisy partnerskie

Programowe resetowanie Arduino

Kompletny samouczek wyjaśniający krok po kroku jak programowo zresetować Arduino.
Article Image

Witajcie przyjaciele. Dzisiejszy post dotyczy programowego resetowania Arduino. Brzmi trochę dziwnie, ale dosłownie w niektórych przypadkach ta technika jest jedynym wyborem jaki pozostaje. Zdarzyło mi się to ostatnio w jednym z moich projektów, dlatego wiem, jakie to ważne. Zanim przejdziemy do szczegółów, przyjrzyjmy się najpierw funkcji resetowania Arduino.

Jeśli pracowałeś na dowolnej płytce Arduino, to zapewne zauważyłeś pin RESET w Arduino i możesz się zastanawiać, do czego służy ten pin. Pewnie zauważyłeś również, że po przesłaniu kodu na płytkę Arduino, Arduino resetuje się. Innym sposobem resetowania Arduino jest otworzenie terminala szeregowego w oprogramowaniu Arduino podczas podłączania płytki Arduino do komputera. Po otwarciu terminala szeregowego Arduino zostanie automatycznie zresetowany. Trzecim sposobem resetowania Arduino jest naciśnięcie przycisku. Po naciśnięciu i zwolnieniu przycisku Arduino zostaje zresetowane. Powinieneś również zajrzeć do artykułu „Jak uzyskać plik hex z Arduino?”.

Wszystkie te powyższe metody resetowania są ręczne, tzn. trzeba ręcznie nacisnąć przycisk lub otworzyć terminal szeregowy lub wgrać kod. W niektórych projektach musimy zresetować Arduino programowo, tj. automatycznie. W jaki sposób to zrobić jest temat dzisiejszego tutoriala. Opiszę dwie metody, za pomocą których programowo zresetujemy Arduino.

Resetowanie Arduino za pomocą pinu RESET

W pierwszej metodzie zresetujemy Arduino programowo za pomocą pinu RESET dostępnego na płytce Arduino.

Wykaz elementów
Ilość
Symbol
Nazwa/opis/gdzie kupić

Przede wszystkim połącz pin resetowania Arduino z dowolnym pinem cyfrowym, tak jak połączyłem go z pinem nr 4 pokazanym na poniższym rysunku:

Teraz prześlij poniższy kod na swoją płytkę Arduino:

int Reset = 4;

void setup() {  
  digitalWrite(Reset, HIGH);
  delay(200); 
  pinMode(Reset, OUTPUT);     
  Serial.begin(9600);
  Serial.println("Programowe resetowanie Arduino");
  Serial.println("www.TheEngineeringProjects.com");
  delay(200);
}
void loop() 
{
  Serial.println("A");
  delay(1000);               
  Serial.println("B");
  delay(1000);               
  Serial.println("Teraz resetujemy Arduino");
  Serial.println();
  delay(1000);
  digitalWrite(Reset, LOW);
  Serial.println("Ten napis nie zostanie wyświetlony");
}

Po przesłaniu kodu i otwarciu monitora szeregowego Arduino otrzymasz rezultaty, jak pokazano na poniższym rysunku:

Jak widać na powyższym rysunku, nasze Arduino nie wyświetla linii „Ten napis nie zostanie wyświetlony”, bo zostało wcześniej zresetowane.

Resetowanie Arduino za pomocą funkcji reset

W tej metodzie nie będziemy używać żadnego pinu sprzętowego. Zamiast tego zrobimy wszystko 
w kodzie programu.
Jeśli nie wiesz zbyt wiele o programowaniu Arduino, powinieneś zapoznać się z wprowadzeniem do programowania Arduino.
Arduino ma wbudowaną funkcję o nazwie resetFunc(), którą musimy zadeklarować pod adresem 0, 
a po jej wykonaniu Arduino zostaje automatycznie zresetowane.
Nie musisz nic robić na sprzęcie. Po prostu wgraj poniższy kod na swoją płytkę Arduino.

void(* resetFunc) (void) = 0;
 
void setup() {
  Serial.begin(9600);
  Serial.println("Programowe resetowanie Arduino");
  Serial.println("www.TheEngineeringProjects.com");
  delay(200);
}

void loop() 
{
  Serial.println("A");
  delay(1000);               
  Serial.println("B");
  delay(1000);               
  Serial.println("Teraz resetujemy Arduino");
  Serial.println();
  delay(1000);
  resetFunc();
  Serial.println("Ten napis nie zostanie wyświetlony");
}

Po przesłaniu kodu i otwarciu monitora szeregowego Arduino otrzymasz rezultaty, jak pokazano na poniższym rysunku:

W kodzie, który widziałeś, zdefiniowaliśmy funkcję resetFunc(), a następnie tam, gdzie wywołujemy tę funkcję, nasze Arduino zostaje zresetowane w tym momencie.

To wszystko na dzisiaj. Myślę, że dzisiejszy tutorial nie był zbyt trudny. Jeśli jednak nadal masz problemy to pisz w komentarzach.

Artykuł How to Reset Arduino Programmatically ??? opracowano w wersji polskiej na podstawie współpracy z portalem www.theengineeringprojects.com.

Tematyka materiału: Kurs Arduino, pierwsze kroki z Arduino, Arduino UNO
AUTOR
Źródło
www.theengineeringprojects.com
Udostępnij
UK Logo