Nézzük sorban.
1. Hogy mivel programozod, rajtad áll. Ha regiszterek szintjén akarsz turkászni, akkor azt bármelyik IDE-vel megcsinálhatod. Viszont ha már nem Arduino, akkor az Atmega MCU-khoz van saját ingyenes fejlesztői környezet, abban kicsit egyszerűbb minden, a debug is.
2. Lábat lábra direktbe NEM kötünk, mert amíg éled az MCU, addig simán ki tudja nyírni magát azáltal, hogy a lebegésből átmegy aktív magasba amíg a másik láb csak úgy semmit nem csinál. Ezt javaslom konvertálni szakadássá (PD2/PB5).
3. Amit kiszúrtam: Az Arduino Nano kap tápot +5V-ról és 10V-ról is. Attól függően, hogy melyik éled előbb, úgy fog zárni valamelyik dióda, ennek megfelelően előfordulhat, hogy keresztben mennek dolgok. Ettől lehet a derengés simán.
4. Az eredeti (3474 számú) posztban írtad, hogy ha ISP-n programozod. Na NANO, akkor szerintem húzd ki, dugd rá USB-n a gépre, told fel rá a programot a szokásos megoldással, aztán húzd le a gépről és told vissza a helyére. Igen, macerás, de az kb. 100%-osan működni fog. Ha az ISP-n tolod, akkor a fenti ide-oda kapcsolgatás miatt lehetnek meglepetések. De a galiba nem ez, hanem az, hogy bár azt mondod, hogy az LCD egy "külső 5 V-os tápon van", valójában a rendszer 5 V-os táphálóján csücsül, amibe nagyon keményen beleszól a Nano saját tápja is. Ha a rajzba beteszed konkrétan a Nano tápellátásért felelős részeit (MCU nélkül), akkor azt fogod látni, hogy két stab IC-d lesz párhuzamosan, az U3 és a Nano-ban lévő másik. Ha a rendszernek a programozó (ISP) felől adsz +5V-ot, akkor minden részre adsz, így nyilván az LCD-nek is (akkor is, ha nem akarsz). Ha nem a felhúzós-lehúzós eljárást csinálod, akkor azt javaslom, hogy az R20-at (lásd alább) kiszeded, csinálsz belőle egy szakadást. A Nano-t pedig NEM a nyákon lévő (P6) porton keresztül, hanem a "fedélzeti" ISP tüskesoron keresztül programozod. Ha ugyanis a P6-ot használod, akkor is tápfeszt adsz a rendszer 5V-os hálójának, ha nem akarsz, és ezt a számítógép esetleg gyenguska USB-s tápja plusz a programozó eszköz szintén gyenguska belső stabja nem fogja szeretni (pláne, hogy ahogy elnézem, elég méretes LCD-t gondoltál a rendszerbe integrálni).
5. ISP-re praktikus kirakni az RST-t is, ez most a P6 csatlakozón nincs rajta. Ha ezen keresztül tolod, lehetnek gondok (és ez lehet oka a hibás programozásnak).
6. Mi a kóchengeres elektroncsőnek kell az R20 rövidzár +5V bemenetre?
7. Atmel/Microchip Atmega 328p datasheet, 258. oldal, 28.2 DC Characteristics. Input low: 0,3 Vcc maximum (5 V tápfesznél ez ugye 1,5 V). Input high: 0,6 Vcc minimum (ez 5 V tápfesz esetén 3 V). Ha az input pull-up 1,7 V-ra húzza (mérve!), akkor bemenet állapotának fixen alacsony jelszintet kellene adnia, ezt egy borzasztó egyszer kóddal (Arduino keretrendszerben Serial.println(digitalRead(d2)); delay(20);a loop-ba, Setup-ban kell a Serial.begin(9600); pinMode(D2,INPUT_PULLUP);) lehet ellenőrizni kb. 2 mp alatt. De itt is az van, hogy ha nálad a Port.D2 = PD2 láb, akkor tisztelettel emlékeztetnélek, hogy azt egy tekercsen (L(trig) keresztül földre húzod, és hiába van ott a 4,7 V-os Zener és az 1 k-s ellenállás, az a belső pull-up ellenállással szép feszültségosztót csinál, és mivel a belső pull-up valahol 20 és 50 kOhm körül van... Alapból valahol 0,1-0,25 V közötti feszültséget kapsz a bemenetre. Ez a forgatókönyv nem számol a Zenerrel és a tekerccsel (utóbbi rövidzárnak tekinthető). Ilyen esetekben én mindig függetlenítem magam a belső pull-up-októl, mert különösen határközeli helyzetekben több meglepetést tudnak okozni. Az L(trig) mögé én inkább betennék egy egyszerű és gyors komparátort, akkor megszűnnek a meglepetések, ráadásul azokból eleve digitális jel jönne ki, amivel nem kell kínlódni.
+1. Gyalázatos ez a kapcsolási rajz.