Bár én zöldfülű vagyok a témában, de a arduino tele van mindenféle biztosítékkal, nem hinném, hogy az ellenállások kihagyása okozza a problémát. Pont a minap olvasgattam egy másik problémámmal kapcsolatban a Watchdog-ról. Nem tudom, hogy azt külön kell bekapcsolni, vagy ez alapból működik, de lehet, hogy az blokkolja a kontrollert. Idézném Róbert tanfolyamából az ide vonatkozó részt:
Remélem ez megoldja a problémádat!Watchdog
A megszakítások különleges alfaja. Egy belső, önálló időzítővel és számlálóval bíró egység a Watchdog. Feladata a rendszer stabilitásának biztosítása olymódon, hogyha a program valami módon nem válaszol (végtelen ciklusba kerül, kiakad), akkor a chip újraindulását kezdeményezi. Gyakorlatilag egy hardware resetkérelmet generál.
A watchdog amilyen hasznos, Arduino alatt annyira túlbiztosított működésű. Ha a chip indulásakor érzékeli, hogy WatchDog volt az újraindulás oka, akkor amíg a szoftvert nem frissítjük az Arduino hardware-ben - megakadályozza a főprogram indulását!
A watchdog közvetlenül nem kezelhető standard Arduino utasításokkal.
Ha kipróbáltunk Watchdogot tartalmazó kódot és fejreálltunk, akkor a főprogram frissítés menete:
Reset gombot nyomva tartjuk,
Arduinot a PCre csatlakoztatjuk (resetgomb nyomva!),
Arduino keretrendszer indít és a Example - basic - digital - blink betölt,
File - Upload,
Ahogy a soros kommunikációt jelző LED felvillan, a reset-gombot elengedni!
Ha a feltöltés sikerült, a WatchDog jelzés törlésre kerül.
A WatchDog ilymódon a téves programindulásokat, áramköri lefagyásokat hivatott megakadályozni.
És miért tud jól működni?
- mert a belső, független oszcillátorról jár - nem egy bizonytalan felépítésű külső jelről,
- belső, önálló számlálója van, így 1 msec és 2 sec közt beállítható a billenési ideje,
- tetszőlegesen indítható-leállítható-nullázható.
- a watchdog hardware független a processzor kritikus részeitől.