Как да нулирате Arduino Uno чрез софтуер: обяснени методи

  • Софтуерът се нулира Arduino Uno Може да се направи с помощта на функционални указатели или с помощта на цифров щифт.
  • Автоматичното нулиране възниква при свързване на платката чрез USB поради контрола на потока на ATmega8U2.
  • Това нулиране може да бъде деактивирано чрез изрязване на следа на платката Arduino, за да се предотвратят нежелани нулирания.

Как да разпознаем фалшив Arduino-4

Много пъти, когато работите с плоча Arduino Uno, е необходимо да го рестартирате без физическа намеса, било защото устройството е на труднодостъпно място, или защото искаме да автоматизираме процеса в рамките на кода. За щастие има няколко метода за извършване на a нулиране Arduino Uno чрез софтуер, всеки със своите специфични предимства и приложения.

В тази статия ще видим различни начини за рестартиране на a Arduino Uno чрез код, от използването на функционални указатели до използването на цифрови щифтове за генериране на външно нулиране. Ще проучим и функционирането на Автоматично нулиране при свързване през сериен порт и как да го избегнем, ако причинява проблеми в нашите проекти.

Повторно изследване Arduino Uno използване на функционални указатели

Един от най-използваните методи за рестартиране на a Arduino Uno от кода е използването на a функционален указател. Идеята е да присвоите адрес на паметта 0 на указател на функция и да го извикате, така че процесорът да извърши нулиране на системата. Можете да научите повече за свързани проекти на ръководство на Arduino Uno.

Основният код за този метод е както следва:

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" се изпрати на серийния монитор, платката добавя 5 към променливата x, отпечатва новата стойност и след това изпълнява нулирането чрез извикване resetSoftware(). Това връща микроконтролера в първоначалното му състояние, сякаш бутонът за нулиране е бил натиснат. За други методи за програмиране можете да се обърнете към Ръководство за използване на millis в Arduino.

Нулиране на Arduino Uno с помощта на цифров ПИН

Друг начин за извършване на меко нулиране е свързване на цифров щифт към щифта за нулиране на чинията. Това се постига чрез проста жица между изходен щифт (като 10) и щифта RESET на Arduino. Този метод е полезен, ако търсите бързо решение, без да променяте буутлоудъра.

Кодът за този метод е както следва:

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" през серийния монитор понижава логическото състояние на пин 10, което причинява нулиране на платката. Това е практична алтернатива, когато трябва да рестартирате системата от софтуер, без да променяте кода на буутлоудъра. Ако имате нужда от повече информация за свързаността на Arduino, препоръчваме да прочетете за ArduinoNano.

Автоматично нулиране на Arduino при свързване през сериен порт

Плочи Arduino Uno Те имат автоматичен механизъм за нулиране, когато се установи връзка през серийния порт. Това се случва, защото линията DTR на чипа ATmega8U2 е свързана чрез кондензатор от 100 nF към линията за нулиране на процесора ATmega328. Когато DTR се активира, на линията за нулиране се генерира импулс, който кара Arduino да се рестартира. Това е полезна функция в много проекти, като например тези, включващи OLED дисплеи, които можете да разгледате в Ръководство за 0.96″ OLED дисплеи.

Този механизъм позволява на зареждащ механизъм имат по-кратко време за изчакване и улесняват зареждането на нови програми, без да се налага ръчно да натискате бутона за нулиране. В някои случаи обаче това може да е недостатък, ако кодът зависи от постоянна серийна връзка.

Как да избегнете автоматично нулиране при използване на USB

Ако автоматичното нулиране при свързване на Arduino към компютър причинява проблеми с работата на проекта, има просто решение да го деактивирате. Плочата включва a малка писта, която може да се реже за да избегнете това поведение. Тази модификация може лесно да се направи, ако познавате основите на електрониката, както е обяснено в Ръководство за драйвери на стъпкови двигатели.

За да направите това, просто намерете следата в долната част на платката близо до USB конектора и я изрежете с нож или скалпел. Ако функцията за автоматично рестартиране трябва да бъде възстановена в бъдеще, тя може да бъде активирана отново чрез запояване на малък джъмпер между двете точки на пистата.

Знанието как да деактивирате автоматичното нулиране осигурява по-голям контрол върху това как Arduino се държи при получаване на данни от компютъра. Овладейте тези методи за нулиране на a Arduino Uno Той осигурява по-голяма гъвкавост при разработването на електронни проекти, позволявайки автоматизация, отстраняване на грешки и подобряване на поведението на вградените системи без необходимост от ръчна намеса.

Arduino пазач
Свързана статия:
Arduino Watchdog: Как работи

Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.