Az i2c alapból (már ha működik) jó cucc. De csak egy sima 1602 lcd kell rá és csókolom.
A shield meg az összes lábat lefoglalja, csak forrasztással tudod őket használni. Ugyanennek van egy olyan változata, ami átmenő jumperes, tehát a shield felső oldalán is megvan az összes láb kivezetve. Kicsit körülményesebb használni és baromi ronda, de legalább használható. Ez a fajta gyakorlatilag csak arra jó, hogy LCD-re programozz (pl. menüt négy gombbal). Slussz.
Oké, a sorszámomat a kezemben tartom :D Egyébként lesz még a rendszerbe beépítve egy hőmérő és egy 1602-es lcd panel plusz DS3231 óra modul. Remélem sikerülni fog összerakni. A programozásban lehet, hogy elkél majd a segítség. :)
Az optocsatoló optocsatoló... Ha galiba van a rendszerben, ne menjen vissza az arduinora. Praktikus, de 1500 forintos arduino esetén szerintem csak bonyolítja a helyzetet. Mondjuk egy 15 ezresnél már lehet, hogy praktikus.
Egyszínű szalagok, de 4 féle. Hidegfehér, melegfehér, kék, piros.
A hidegfehér az 5050-es típusú, a többi 3528-as.
12 V-ról menne a ledszalag, lehetőleg külön táplálva a mosfet panel. Az arduinot 5V-os tápról szeretném hajtani.
A terhelés-áram arányt sajnos nem tudom, de nem szeretném maxon hajtani a ledeket. Egyébként akvárium fölé megy a rendszer, de a vezérlés külön lesz dobozolva, távolabb a víztől. :)
Egy kis segítségre lenne szükségem. Arduinoval szeretnék ledszalagot vezérelni, csak fényerőt. És ehhez volna szükségem egy MOSFET panelre. Vagyis kapcsolási rajzra és/vagy nyáktervre az elkészítéséhez. Nézelődtem az aukciós oldalakon, van is 4 csatornás, de 4500 Forint... :)
A hibajelenség alapján nekem az a benyomásom, hogy a meghajtó ic kehesedett meg. Ezért javasoltam, hogy sketch szinten vissza kell menni a szükséges minimálra (háttérvilágítás ki/be, kijelző ki/be).
Az lcd.init(); után esetleg tégy be egy delay(100); sort, mert hátha. :-)
Leginkább szkóppal bele kellene mérni az i2c vonalba (mindkettőbe), hogy ott mi történik, mert ez az utolsó pont, ahol a szoftveres résznek jelentősége van. Innentől csak hardver lehet. Ha szoftveresen kimegy, aminek ki kell mennie, akkor hardver gond van (kehes), ha nem megy ki, akkor a könyvtárak között kell kicsit szórakozni.
Nekiállok mindjárt áttúrom a fórumokat, hátha (már ha te még nem nézted).
Én is szoftveres gondra gondoltam, mivel régebben ment.
Azóta szórakoztam DS1307-es RTC-vel és már ott csodálkoztam hogy a többféle demo program más-más időt és dátumot lát ugyanazon RTC-ből.
Azóta van egy SD shield is, amin van RTC és csak azt használom. Gyönyörűen tudom naplózni a mért hőmérsékletet az SD kártyára, és 4bites módban az LCD-re kiírni.
A vége az lesz, hogy fogok egy régi gépet XP-vel és ott is kipróbálom.
Az i2c címet mivel állítottad át? Vissza kellene vinni a gyári beállításra.
Meg ahogy nézem, a végén van egy jumper, felteszem, hogy a háttérvilágítás ki/bekapcsolására szolgál.
A gond szerintem szoftveres, és vagy valamelyik könyvtárral vagy az i2c címzésével (szürreális, esetleg időzítésével) lehet galiba.
Írj egy sketch-t, ami ki/be kapcsolgatja a háttérvilágítást.
Aztán ahogy a könyvtár belsejét elnéztem, van parancs a kijelző ki/be kapcsolgatására [ lcd.displayon() talán, de meg kell nézni], azzal is lehetne tenni egy próbát.
Az 5-ös lábon mértem a feszültséget. Bocs a kép minőségért.
- a ledPin-t átírtam
- Wire.h és LiquidCrystal_I2C.h újra telepítve
semmi változás
- Ha nem a 0x27 -es cím van beállítva, akkor a kijelző háttérvilágítása megy, más nem történik.
- átnéztem a wire.h és LiquidCrystal_I2C.h-t de nem találtam benne fix címzést
- a másik kontrollerrel és egy másik kijelzővel is ezt csinálja.
- A film arról van amit csinál a kijelző. Látni rajta, hogy a D13-as LED ki-be kapcsólgat 3 mp-ként, és villan a kijelző.
- ha kiveszem a wire.h-t, akkor hibaüzenet jön az ellenőrzés közben:
C:ArduinosajatlibrariesLiquidCrystal_I2CLiquidCrystal_I2C.cpp: In member function 'void LiquidCrystal_I2C::init_priv()': C:ArduinosajatlibrariesLiquidCrystal_I2CLiquidCrystal_I2C.cpp:42: error: 'Wire' was not declared in this scope C:ArduinosajatlibrariesLiquidCrystal_I2CLiquidCrystal_I2C.cpp: In member function 'void LiquidCrystal_I2C::expanderWrite(uint8_t)': C:ArduinosajatlibrariesLiquidCrystal_I2CLiquidCrystal_I2C.cpp:242: error: 'Wire' was not declared in this scope
Technikai értelemben ennek elvileg semmi köze a jelenséghez.
Javaslataim.
1. Szedd le és tedd fel újra a wire.h-t és a liquidcrystal_i2c.h-t.
2. Játszd végig az összes i2c címzést, amit a kontroller megenged.
3. Nézz bele a wire.h-ba és az liquidcrystal_i2c.h-ba, hogy ott nincs-e hívás az adott i2c címre (nem kell-e átírni abban). Elvileg ezt a liquidcrystal_i2c.h a sketch eleji meghívással elintézi, de láttam már karon varjút (teapot sketch mpu6050 teszteléshez) -- sajnos ennek a könyvtárnak is botrányos (pontosabban nincs) dokumentációja.
4. Ha megvan a másik kontroller, azzal is csinálj egy tesztet.
A filmen csak az látszik, hogy az 5-ös lábat ki/be kapcsolja, aminek -- legalábbis elvben -- semmi létjogosultsága nincs, tekintetbe véve, hogy csak egy lcd.clear(); van.
Öööööööö.... Csinálj egy olyat, hogy az include wire.h-t kiszeded //-rel, aztán csinálj egy próbafordítást (verify).
A kontraszt állítgatására elmászik a kijelző színe (átfordul negatívba is akár)?
Megnéztem, az egyszerűbb bekötésnél az 1--5 lábak között rövidzár van, az 5. láb az R/W, ami "high" állásban olvasást jelent, tehát ott a 4,77 V azt jelenti, hogy az LCD-t olvasod, nem írod. Ami ugye nem jó ("low" kellene lennie, valahol 0,5 V-ig maximum.
Nézd meg, hogy „élő” rendszernél mit művel ugyanez a láb. Ha átmegy 0,5 V alá, akkor korrekt.
Az már önmagában nekem kicsit fura.
A 15--16 4,78 V-ja korrekt, elvileg +5V-ig mehet, de ezt a kijelző specifikációja pontosan tartalmazza.
A potméterrrel tudom szabályozni a kontrasztot. Egy PCF8574 van a kártyán egy SMD tranzisztor, egy SMD LED és néhány olyan SMD amit nem ismerek fel (ellenállás és kondi). Ja és a 3 címzőpont és a potméter.
Nincs fordítva rakva, egy 400 pontos próbapanelba ültettem be.
A kontroller LCD nélkül és csak táppal:
1-2 = 4.78
1-5 = 4.77 !!!!!
15-16 = 4.78
Feszültség és vezeték mentesen az 1-5 láb egyik irányba 798 Ohm-ot mutat, a másik irányba 105K.
Ami érdekes, hogy az első kontrollert használtam novemberben, a másik a héten jött új.
Először is tekergesd körbe a potmétert mindkét végállásig úgy, hogy csak táppal van meghajtva az egész hóbelevanc.
A háttérvilágításnak (elvben) működnie kell, mindentől függetlenül (bár nem tudom, hogy maga a kontroller hogy van vezetékelve, az ebay linken erről semmi sincs).
Ellenőrizni kell, hogy nincs-e fordítva az LCD (valószerűtlen, mert eldurranna azonnal a háttérvilágítás LED-je).
Az LCD-n bekapcsoláskor láthatóan meg kell változnia a kontrasztnak (lcd előfeszítés), ezt látnod kell.
SDA--SDA, SCL--SCL bekötést én folyamatosan összekeverem (megfordítom), ezt is nézd meg esetleg.
Aztán érdemes végigmérni a kulcspontokat. Csak a kontrolleren (LCD nélkül) 1--5 láb (rövidzár), 1--2 láb (+5V), 15--16 láb (2,0--3,3 V, ez a háttérvilágítás LED-je).