Két módja az arduino újratöltésére a szoftver szintjén
Annak érdekében, hogy visszaállítsa az Arduino-t a reset gomb megnyomása nélkül, két lehetőség közül választhat. Mindkettőt az alábbiakban tárgyaljuk. A kivitelezéshez legalább további elektromos pántok szükségesek.
A 12. kapcsolathoz csatlakoztatott vezetéket használjuk
Ebben az esetben az Arduino 13. tüskével ellátott LED (a beépített LED használatával) villog. 12 érintkező van csatlakoztatva a Reset érintkezőhez egy vezetővel.
A szoftver szintjén további csípések nélkül nem tehetünk, mert a vázlatunk munkájának kezdetén az Arduino összes csapszege a LOW értékét veszi fel. Ennek eredményeképpen leválasztjuk a vezérlőt. De! A trükk az, hogy az első dolog, ami belül történik funkció setup (): mi biztosítja a magas 12 csap ami pin a reset (digitalWrite (resetPin, HIGH), és így biztosítja a magas jel kapcsolati Arduino RESET.
int led = 13; // a 13-as tű a PIN-OUT kimenetként működik
int resetPin = 12;
// a beállítási funkció egyszer végrehajtásra kerül, miután megnyomta a reset:
// inicializálja a digitális érintkezőt kimenetként
Serial.begin (9600); // inicializálja a kapcsolatot a soros porton
Serial.println ("reset"); // megjeleníti a visszaállító karakterláncot annak tudatában, hogy újraindítás történt, és
// újra végrehajtja a beállítási funkciót
// loop hurok újra és újra működik:
digitalWrite (led, HIGH); // világítsuk meg a LED (HIGH a tápfeszültség)
késleltetés (1000); // várjon egy másodpercet
digitalWrite (led, LOW); // kapcsolja ki a LED-et a LOW parancs használatával
késleltetés (1000); // várjon egy másodpercet
Serial.println ("ez soha nem történik");
// ez soha nem fog megtörténni, mivel az Arduino újraindul
Csak szoftveres alaphelyzetbe állítást hajtunk végre
Az alábbi példában nincs szükség további kapcsolatra. Csak inicializáljuk a reset funkciót, majd hívjuk vissza.
resetFunc (); // hívás visszaállítása
Az egész program az Arduino újraindításához:
// a beállítási funkció egyszer működik a reset gomb megnyomása után:
// inicializálja a digitális érintkezőt kimenetként.
Serial.begin (9600); // inicializálja a soros portot
void (* resetFunc) (void) = 0; // deklarálja a reset funkciót
// ezt a ciklust újra és újra átdolgozzuk:
digitalWrite (led, HIGH); // kapcsolja be a LED-et
késleltetés (1000); // várj egy pillanatot
digitalWrite (led, LOW); // kapcsolja ki a LED-et, és adja meg a LOW parancsot
késleltetés (1000); // várjon egy másodpercet
resetFunc (); // hívás visszaállítása
Miért használhatom az Arduino szoftver visszaállítását?
Az Arduino újraindítása a szoftver szintjén használható az nRF24L01 + 2,4 Hz-es adóvevővel (az RF24 könyvtárkönyvtár használatával). Ez a vázlat nagyszerű, ha az adóvevő elveszti a kapcsolatot és abbahagyja a munkát. Nagyon nehéz biztosítani a 2,4 GHz-es rádiós modulok alaphelyzetbe állítását, de az Arduino Uno vagy az Arduino Pro Mini visszaállítása nem jelent problémát. A programnak az alábbiak szerint kell működnie: "Ha 100 ms alatt nem érkezett adatcsomag, az Arduino újra kell indítania." Ennek eredményeképpen a rádiós adó modulok automatikusan újra csatlakoznak, és a kommunikáció létrejön!
Az ARDUINO-DIY.COM egy információforrás, amely tartalmazza az Arduino vezérlők használatának legjobb útmutatásait és útmutatásait.
Mindig örülünk a konstruktív együttműködésnek. Minden kérdéssel, javaslattal és javaslattal kapcsolatban kérjük, forduljon [email protected] címhez.