Széteső és beszemetesedő szöveg az LCD-n...

Hogyha sikeresen O/PLED illetve hagyományos alfanumerikus - esetleg tán grafikus kijelzővel gyűlik meg a baja valakinek:)
Avatar
gabel
Újonc
Újonc
Hozzászólások: 7
Csatlakozott: 2007. július 25. szerda, 6:00

Széteső és beszemetesedő szöveg az LCD-n...

Hozzászólás Szerző: gabel »

Üdv Fórumtársak!

Olyan problémám lenne, hogy van egy 16x2 karakteres sima LCD-m, ami néha elkezdi magát teleszemetelni. Először csak 1-2 kóbor karakter, majd egyre több a szemét. Ez az Arduino-tól kb. 2m távolságra van. Árnyékolt 10x1-es vezetéken megyek rá, tehát keresztmetszet megvan, feszültségesés nem lehet jelentős. Működik is szépen, amíg csak ő dolgozik. Amint elindul egy háromfázisú villanymotor a gépben, elkezd szemetelni. Leginkább a motorok indulásánál. Az a baj, hogy ez egy gépnek a vezérlőpultjában van, az Arduino pedig a fal túloldalán. A falban lévő kábel átvezetésen jönnek át az erősáramú kábelek is, először arra gondoltam, hogy ezek zavarnak be. Ekkor cseréltem árnyékoltra a kábelt, de semmit nem segített. A végén már beraktam próbának a szekrénybe még egy Arduino-t, arra I2C-vel kötöttem az LCD-t, 20 cm vezetékkel. Nagy szomorúságomra ez is szemetel. Azt nem értem, hogy hogyan kerülne zavarból olyan digitális jel a buszra, ami kirakat bármilyen karaktert a kijelzőre. Esetleg ha valakinek van valami ötlete, ne tartsa magában! Előre is köszönöm!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Széteső és beszemetesedő szöveg az LCD-n...

Hozzászólás Szerző: Robert »

Mekkora távolság ?????
Ami kell:
- felhúzóellenállás az adatvonalra (pl. 680R...1k5)
- árnyékolt kábel: kábelkapacitás miatt a négyszögjel szinusszá válik
- erősáram és kisfesz. _TILOS_együtt vezetni
- HD44780 feszültsége nem esik le 4.5V alá?
Avatar
gabel
Újonc
Újonc
Hozzászólások: 7
Csatlakozott: 2007. július 25. szerda, 6:00

Re: Széteső és beszemetesedő szöveg az LCD-n...

Hozzászólás Szerző: gabel »

Nem is 2, inkább 4m a távolság. Ellenállásokkal próbálkoztam, semmi változás. A kábel kapacitása sem hiszem, hogy játszana, mert a hasznos adatok mindig átmennek rendesen, tehát ha valamit kiíratok, az hibátlan. Akkor van a gond, amikor már nincs kommunikáció az Arduino és az LCD között. Azt még megfigyeltem, hogy amikor kezdődik a szemetelés, az szinte mindig ugyanoda, és mindig ugyanazt a karaktert teszi. Az erősáram-kisfesz páros tiltását én is ismerem, csak az a baj, hogy ez egy meglévő berendezés modernizálása, és már eleve adottak voltak a faláttörések, kábelátvezetések. Azért ilyen nagy a távolság is az Arduino és az LCD között, mert megoldhattam volna soros vonalon is a dolgot, hogy teszek egy "vevő" Arduino Mini-t pl. az LCD-hez, de nem akarok a szükségesnél több elektronikát bevinni a kezelőpultba, mert nagyon agresszív savgőzös a légkör odabent. Ezért van minden elektronika kívül a folyosón... A HD44780 feszültsége szintén nem hiszem, hogy leesne, eleve az 1 mm2-es keresztmetszetnek köszönhetően, másrészt ugye a kiíratásaimat simán hibátlanul elvégzi.

Ezenkívül gyanús még nekem az is, hogy egy másik Arduino-ra kötött PCF8574-en keresztül meghajtott LCD kb. 20 cm vezetéken szintén szemetel (bár ez más karakterekkel és más helyekre adja elő...). Ja, és ez a páros nincs erősáramú kábelek mellett. A folyosón lévő vezérlés úgy van kialakítva, hogy van egy gyengeáramú szekrény 1db Arduino Mega 2560-nal, amin opto-s leválasztás van a bemeneten, relés a kimeneten, és egy másik Mega 2560-nal, amin leválasztások nélkül megy az LCD, és (tudom, ez brutális...)szintén leválasztás nélkül lóg a bemenetén 3 nyomógomb, ami megint csak párhuzamos az erősárammal kb 1.5 m-en keresztül. Ezen szekrény mellett van az erősáramú szekrény mágneskapcsolókkal, amiknek az LCD-s Arduino-hoz nincs közük, azok a leválasztott Megára mennek.

Ezek függvényében még mindig az I2C buszos LCD szétesése a legérthetetlenebb számomra, de a másikat sem vágom, hogy ha a "szándékos" kiíratás mindig tökéletes, akkor honnan szedi össze a kóbor karaktereket??? :-(
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Széteső és beszemetesedő szöveg az LCD-n...

Hozzászólás Szerző: Robert »

Így jár aki megszegi a legelemibb építési szabályokat.
1, LCD paralell busz 15-20cm felett nem lehet
2, Arduino nem alkalmas ipari berendezéshez
3, Hiányzik az összes védelem a túlfesz/indukció ellen (adatvonal és tápvonal is)
4, Az lcd.init() helyrerakja?
5, ilyen távra CAN vagy RS485 buszt lehet csak.

A tápellátás zajosságáról nem írsz semmit. Abban van szűrés? soros tekercs, paralell kondi?
Avatar
gabel
Újonc
Újonc
Hozzászólások: 7
Csatlakozott: 2007. július 25. szerda, 6:00

Re: Széteső és beszemetesedő szöveg az LCD-n...

Hozzászólás Szerző: gabel »

Értem én, hogy paralell elvileg max. 15-20 cm, de akkor miért működik a kiíratás tökéletesen? Tehát semmi jeltorzulás, meg ilyesmi... Nem próbáltam az lcd.init()-et, mert ha simán írok rá, az is rendbeszedi azokat a szemét-karaktereket, amikre éppen írok. Így biztos rendbe tenné az lcd.init() is. Tudom, hogy hivatalosan nem egy ipari cucc az Arduino, de gondoltam erre a feladatra talán jó lesz, mivel időben lassú lefolyású, csak digitális dolgokat kell vezérelni... (4 motor, 4 mágnesszelep, több tíz másodpercenkénti kapcsolása ki-be, egy csomó nyomógomb, és visszajelző lámpa kezelése. Ezek opto-s és relés leválasztásúak.) Az LCD kezelését és a menü-gombok lekérdezését eleve egy másik Arduino végzi. Nekem csak ezzel a példánnyal vannak gondjaim. Megpróbálom ezt is opto-s leválasztással a ki- és bemenetein. Esetleg az LCD felé menő vezetékeken 24 V-al megyek (a kisebb zavarérzékenység miatt), és ott helyben megint egy sor opto-val illesztem. Vagy esetleg valami más ötlet, ami komoly programváltoztatás nélkül megoldható? Az a baj, hogy nagyon szorít a határidő, néhány héten belül már dolgoznunk kell a gépen, és más égetőbb feladataim is vannak ez mellett... :(
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Széteső és beszemetesedő szöveg az LCD-n...

Hozzászólás Szerző: Robert »

Tudom, hogy hivatalosan nem egy ipari cucc az Arduino, de gondoltam erre a feladatra talán jó lesz, mivel időben lassú lefolyású, csak digitális dolgokat kell vezérelni...
Nem. Nem ettől ipari valami.
- bemenetvédelem
- tápvédelem
- WatchDog
- Debug, stb....

Hülye tipp - mérés:
- Az adatvonal zajosodik-e? - oszcilloszkóppal kimérni,
- felhúzóellenállást 2x 220 ohmra csökkenteni (a mindkét végen, mintegy lezáróellenállást),
- a LCD tápjára (1/2 láb) 100uF kondi és 100nF tápszűrő.
Avatar
gabel
Újonc
Újonc
Hozzászólások: 7
Csatlakozott: 2007. július 25. szerda, 6:00

Re: Széteső és beszemetesedő szöveg az LCD-n...

Hozzászólás Szerző: gabel »

Ok, ha holnap lesz időm, akkor ezeket feltétlenül megpróbálom! Addig is köszönöm a tippeket!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Széteső és beszemetesedő szöveg az LCD-n...

Hozzászólás Szerző: Robert »

Tegnap kaptam még ötletet egyik fórumtársunktól:
- ferritgyűrű a vezetékre
- 74xx245-ös buszmeghajtóIC az egyik oldalt, minden második vezeték a buszon GND (árnyék), az LCD előtt a buszmeghajtó leveszi a jelet és LCDre küldi. A buszmeghajtó kiszűri a zavarokat :)
Avatar
albatrosz100
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2010. november 18. csütörtök, 7:00

Re: Széteső és beszemetesedő szöveg az LCD-n...

Hozzászólás Szerző: albatrosz100 »

Sziasztok ! Tudom későn írok, de most tévedtem ide, hátha valakinek még hasznos lesz!
Nekem is voltak ilyen elszemetelődős gondjaim az LCD-vel. Végig jártam az utat a különböző szűrőkkel, árnyékolással, stb. Ezek nem hoztak érezhető változást.
Mikor 5K ellenállást kötöttem a RS és a E lábak bemenetére, akkor javult a helyzet, de még nem szűnt meg. Tovább kutattam a rendszert, és rájöttem, hogy a vezérelt relék okozzák a gondot. ~24V mennek, ide kötöttem a zajszűrő kondit, de az egyenáram védődiódával is megoldotta. Azóta nem volt ilyen jellegű problémám.
Válasz küldése