De tény, hogy én se az "alap" arduino-t raktam volna bele, hanem maximum az Arduino Mini-t vagy Pro-t. És persze rengeteg korlátja van az atmega 328-nak is, a szempont az olcsóság és elérhetőség is volt az alkatrészeknél.
De azért a stabilitása elég jó, ráadásul van pl. watchdog szolgáltatása is.
Az elv persze jó, de ettől az Arduino és klónjai (a Raspberry Pi-t, a Blackbone-t és a hasonló kütyüket is beleértve) belépőszintű, oktatási célú, kísérletezési platform marad. Egyszerűen műszaki kialakítása folytán alkalmatlan másra. Persze otthoni barkácsoláshoz mindennél jobb (kő egyszerű, rohadt olcsó és viszonylag üzembiztos), de kereskedelmi terméket azért elég meredek dolog építeni rá. Rohadt nagy (már a processzorhoz képest), rengeteg felesleges hóbelevanc van rajta, mindemellett nehéz illeszteni meglévő rendszerekhez (pl. 12V-ra autós felhasználáshoz). Mert azét valljuk be, elég hülyén néz ki egy próbatábla és egy halom kábel a kesztyűtartóban összeszigszalagozva.
De. Azt meg lehet csinálni, hogy kipróbálod, aztán tervezel hozzá egy nyákot (Fritzing), ráraksz mindent, ami kell, leveszel mindent, ami nem kell, és hopsz, van egy működő céleszközöd, ami pici, üzembiztos és jó esetben pontosan azt tudja, mint amire szükséged van (a programozhatóságot meg megoldod vagy egy soros programozóval vagy egy másik arduinoval ICSP porton.
Menj fel az AtMega honlapjára és nézd meg, mennyi féle mikrokontrollert kínálnak. Döbbenet. És ebből a 168/328, a 32u4 és a Mega2560 csak három (a Due-t hagyjuk most, az lényegében marginális, mert a 3,3 V miatt lényegében semmilyen meglévő cuccal nem kompatibilis, cserébe mondjuk rohadt gyors).
Ha a felhasználási módokat nézzük, adott mondjuk egy quadcopter, amire szeretnél egy PID-es stabilizátort rakni. Adott az Arduino és mondjuk egy MPU6050 modul. Van mondjuk 15 gramm alkatrészed, amiből használsz 4, maximum 5 grammot... A maradék meg holt felesleges.
Az az igazság, hogy én is ezt hittem (hogy nem végtermékhez van).
Amíg el nem olvastam egy cikket (nem találom), ahol a szerző azzal érvelt, hogy minden más technológia jön-megy (pl. PLC gyártó csődbe mehet, vagy kivezethet egy modellt a piacról), de az Arduino keretrendszernél garantálják, hogy menni fog (amíg él az arduino mozgalom), ha kiesik az egyik shield-gyártó, jön más, st.
Elfelejtettem említeni, EZTa tápot vettem hozzá. Sajnos amíg nem jön meg, nem tudok rámérni. Amit említesz programot letöltöttem, remélem én is sok hasznát veszem majd. :)
Átnéztem a könyvtárakat, eltüntettem minden LDC-s könyvtárat és csak ez a speci maradt.
Így már lefordult a program. Eredmény:
i2cLCDguesser v1.4.1 - Guess constructor for i2c LCD backpack ---------------------------------------------------------------- NOTE/WARNING: Guessing the i2c constructor is not really a good thing since it could damage the hardware. Use with caution! Do not leave things with an incorrect guess for too long. i.e. advance to the next guess as soon as possible when the guess in incorrect. If the guess is correct, the constructor will show up on the LCD. ----------------------------------------------------------------
<Press <ENTER> or click [Send] to Continue> Scanning i2c bus for devices.. i2c device found at address 0x27 Device found: PCF8574 <Press <ENTER> or click [Send] to start guessing> Trying: lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE) <Press <ENTER> or click [Send] to Continue> Trying: lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, NEGATIVE) <Press <ENTER> or click [Send] to Continue> Trying: lcd(0x27, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE) <Press <ENTER> or click [Send] to Continue> Trying: lcd(0x27, 6, 5, 4, 0, 1, 2, 3, 7, NEGATIVE) <Press <ENTER> or click [Send] to Continue> Trying: lcd(0x27, 6, 5, 4, 0, 1, 2, 3, 7, POSITIVE) <Press <ENTER> or click [Send] to Continue> Trying: lcd(0x27, 4, 5, 6, 0, 1, 2, 3, 7, POSITIVE) <Press <ENTER> or click [Send] to Continue> Scanning i2c bus for devices.. i2c device found at address 0x27 Device found: PCF8574 <Press <ENTER> or click [Send] to start guessing> Trying: lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE) <Press <ENTER> or click [Send] to Continue>
Ebből az első próbára volt a kijelzőn megjelenítés.
Tippem szerint rosszul van felrakva a könyvtár. Restart, illetve talán még a folderekkel lehet kicsit bíbelődni (átrakni, ahogy írtad, hogy fura helyen van).
[13:56:05] vfp: Elolvastam a hivatkozott helyet. A saját Library könyvtárból kivettel a LiquidCrystal és a LiquidCrystal_I2C könyvtárakat. Letöltöttel a LiquidCrystal_V1.2.1.zip-et, és a benne levő LiquidCrystal könyvtárat bemásoltam a sajás Library könyvtárba. (ugyan nem értem, ennél miért van a LiquidCristal könyvtáron belül a LiquidCristal_I2C, de ez most nem számít) Letöltöttem a testetlő programot (i2cLCDguesser.zip), kibontottam, átneveztem INO-ra, bemásoltam a SkechBook-ba. megnyitottam és az ellenőrzésnél az alábbi hibaüzenetet kaptam: csatólva a képernyő másolat.
No, most van időm (még bicajozás előtt) átnézni a fórumot. Sok eltérő hibajelenségről számoltak be, tipikusan az „összedugom, de nem megy” a legsűrűbben előforduló, de ezzel az az általános tapasztalatom, hogy rendszerint a kábelezést baszarintják el a képességeiben korlátozott kezdő arduinosok -- köztük pl. én is, mert sikerült két hőelemet megsütnöm egyszerű fordított bekötéssel.
Szóval, kezdetnek csinálj egy olyat, hogy a két i2c csatornát (SDA és SCL) felhúzod egy-egy 1,8 kOhm-os ellenállással úgy, hogy az ellenállásokat a +5 V és a láb közé kötöd. 1k8, 4k7 és 10k is megteszi, a legtöbb rajzon ezeket láttam.
Tégy így egy próbát, hátha.
Aztán találtam, egy működőképesnek látszó megoldást, ami egy try-and-error alapon működő sketch. Konkrétan az összes i2c címet és az összes lehetséges soros címzést végigpróbálja. Fontos, hogy ez a PCF8574 vezérlőre van kitalálva (most nem néztem vissza, hogy neked az van-e, de feltételeztem, hogy igen.)
1. Le kell szedni minden liquidCristal könyvtárat, és felrakni ezt: https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
2. be kell kötni a vezérlőt és az LCD panelt, de kizárólag azt. Kiemeli, hogy lényegesek a felhúzó ellenállások, lásd fent.
3. fel kell tölteni a fenti linken lévő sketch-et (ne zavarjon a .pda kiterjesztés, jó lesz, de át is nevezheted .ino-ra).
4. A soros monitoron (Serial Monitor) 9600-as beállítás mellett kell figyelni a dolgokat.
5. Reset az arduinon.
6. Meg kell nyomni vagy az Entert, vagy a "Send" gombot a soros monitor parancssorában a következő próbálkozáshoz.
Fontos! Elvileg ez a procedúra kinyírhatja a hardvert, úgyhogy ha egy teszt eredménytelen, akkor a lehető leggyorsabban a következő beállításra kell ugrani (Enter vagy Send).
A jó beállításnál kiír az LCD-re valamit, ahogy nézem, az LCD és az i2c beállításait).
Méretezéshez kellene a LED strip-ek műszaki paraméterei közül pár. Vf, Ifmax, If, szegmensenként, illetve azt kellene kitalálnod, hogy hány szegmenssel akarod megvilágítani az akváriumot. Mindezt külön-külön mindegyik szalagra. Illetve kellene még a tápellátás terheletlen feszültsége (lehetőleg tized pontosan), és a terhelhetősége is.
A rajz már félkész, csak az ellenállások, illetve a tranzisztorok méretezéséhez kellenek ezek az adatok.
Oké, próbálkozok! :) Majd a mosfet panel rajzát akkor megköszönném. :) Egyébként ez a program írás bajos lesz, mert a 0-ról kezdem, sose csináltam még... :)
No hát akkor most pár hét várakozás mire megjönnek a motyók :) Addig esetleg tud valaki segíteni program írásban? Mert abban nem igazán vagyok otthon. Ja, meg majd a mosfet panelt is el kell készíteni ;)
Sok nemzetközi fórumon látom, hogy az általános felfogás az, hogy az arduino az végtermék építésére jó, pedig ugye a legkevésbé sem az. Lehet belőle építeni, de szerintem tök felesleges (van elegánsabb, olcsóbb, és ami fő, üzembiztosabb megoldás is). Nekem össz-vissz három shield-em van, egy lcd és egy Ethernet. utóbbi jumperes, nem gond ráépíteni, előbbi csak LCD-tesztelésre jó, másra nem. Arra mondjuk nagyon.
Egyébként visszatérve az előzőkre. Mivel tegnap már megrendeltem a gombos lcd-t...arról le lehet műteni magát a kijelzőt és csak azt használni? Írtátok, hogy nem muszáj hozzá az a plusz modul ami kevesebb csatlakozót igényel. Ez valóban így van?