60 nap alatt Arduino #28 - I2C busz általában

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
vargham
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2014. január 8. szerda, 8:32

Re: 60 nap alatt Arduino #28 - I2C busz általában

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

a 8 lábon megjelenik a magas állapot
Ez így van rendben, az adatlapja is írja, hogy így működik.
Ha neked ez nem jó, akkor:
Vagy keress olyan IC-t, aminek a működése megfelel neked. Vásárlás előtt olvasd el az adatlapját. ;-)
Vagy tegyél utána egy invertert. Például egy 74HC540 invertáló buszmeghajtót, OE1-t és OE2-t lehúzod földre, hogy mindig aktív legyen a kimenete.
De csinálhatod kapcsolhatóra is, akkor nem kell invertálni. Használj egy 74HC541 neminvertáló buszmeghajtót. OE1-t és OE2-t kösd össze, tegyél rá felhúzó ellenállást, és ezt egy lábon tudja kezelni a mikrokontroller. Az IC inaktív állapotában lebegnek a kimenetek, ezért mind a nyolcra tegyél egy enyhe lehúzót.
Az OE (Output Enable) az engedélyező láb, alacsony szinten aktív. Az 540/541 két ilyennel redelkezik, amik logikai és kapcsolatban vannak egymással.
Avatar
albatrosz100
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2010. november 18. csütörtök, 7:00

Re: 60 nap alatt Arduino #28 - I2C busz általában

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

Köszönöm a gyors válaszod!
Interválásra én is gondoltam, de nem ismertem még a 74HC540 - est.
Avatar
albatrosz100
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2010. november 18. csütörtök, 7:00

Re: 60 nap alatt Arduino #28 - I2C busz általában

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

Sziasztok ! Még egy kis segítséget kérnék a jobban hozzáértőktől.
A fentebb, tárgyalt projektet megépítettem és majdnem jól is működik.
Van egy olyan gondom vele hogy a PCF8574-es modul nem stabil.
Az I2C-én 2 eszköz van, LCD és a PCF8574-es modul kb 50 Cm-es árnyékolt vezetékkel. Mind a 8 lábat kimenetként használom. 74HC540 logikai invertálon keresztül, ami ULN2803 -ast hajt, amire 12V-os relék vannak kötve (reléken védő dióda+100nfkondi van). Táplábakon szűrőkondi, SCL/SDA lábakon 4K felhúzó van. Kb10 - 30 percnyi működés után belehibázik, mikor magas szintről állítom alacsonyra a PCF8574-es valamelyik lábát. Vagy nem vált alacsony szintre vagy csak fél másodpercre és csak úgy magától visszaáll magas szintre. Ha ilyenkor lekérdezem pcf20.read-al akkor rendesen visszaadja hogy HIGH állapotban van (tehát nem állította át a alábat). Próbáltam szoftveresen is megoldani, állandóan kiolvastattam az állapotát. Jobb is lett, de kb. 1-2 órányi működés után a Nano fagyott le.
Már egy rakás dolgot kipróbáltam: 100nf kondikat raktam minden felé ahova csak ajánlották.
Még egy észrevétel: 7812- fesz stabilizátorról kapja a Nano a tápot. Amikor a stab. icére menő lábaira 1500uf elkokondi-hoz hozzátettem még 6000uf-ot sokkal insabilabb lett a rendszer. Miért ? Ismereteim szerint inkább stabilabbnak kellene lennie.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: 60 nap alatt Arduino #28 - I2C busz általában

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

Messziről tippek:
- a programodban nincs memóriaelfogyás (FreeRAM() függvénnyel tudod nézni/sorosra kiírni.
- a nano-n mi van még rajta? A saját 7805-je esetén nem nagyon illik 12V esetén mást rakni - kicsi a hűtőfelülete (Ok, PCF van rajta, meg az ULN)
- ULN2003 esetén a V+ra mi megy? Igaz a relék tápága?
- 100nF a reléken hol van és minek?
- Kapcsolás vagy fotot lehetne?
- A relék modulok, vagy normál relék? Milyen dióda van rajta? nincs fordítva bekötve?

Tipp2:
- I2C vonal sebességet vedd vissza 100k helyett 10k-ra
- I2C felhúzók paralell vannak a sok PCF-en - mondjuk elmegy, de nem illik... (Mastertől legtávolabbin kéne csak zárni)
- árnyékolt kábellel csak gázos lesz: az i2C kapacitásérzékeny! De 50 cm még belefér...
- 74HC540 minek? Eléggé szívás lehet (gerjedékeny) - igaz 100nF rajta van?
http://www.tavir.hu - a gazda :)
Avatar
albatrosz100
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2010. november 18. csütörtök, 7:00

Re: 60 nap alatt Arduino #28 - I2C busz általában

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

Memóriaelfogyás szerintem nincsen de nem néztem, kb a memória kapacitás felét használom. globális változók 44%-át használom. 7812 látja el a reléket, és innen kapja a nano a 12voltot VIN/GND lábakra, amiből saját maga 7805 csinálja az 5V-ot. Bemenet előtt 100nF kondi van még pluszban VIN-GND lábak között. 7812-ön hűtőborda van, teszteltem is, mikor az összes relé behúzva volt, fél órát ment, a borda melegedett de kézzel még simán megfogható volt.
ULN2003 -re DC 12V megy.
Három fajta TRACON ELETRIC relé van rajta. Először sima dióda volt rajta, majd szupresszor, és a schottky -val is próbáltam. Ezután tettem rá a 100nF kondit párhuzamosan a relé tekercsével, gondolván hátha. A dióda nincsen fordítva sem, mert akkor rövidre zárná, és valami túlmelegedne.
I2C felhúzók nem a legtávolabbi ponton van inkább a nanohoz van közelebb, ezt még átrakom majd. A kommunikáció sebességét nem piszkáltam még, de ez új terület nekem. Van róla valami anyagod ?
A 74HC540 azért kellet mert amikor a PCF modul megkapja a tápfeszültséget, a lábai magas szinten vannak, és mire a nano leveszi alacsonyra arra, az 1-2 másodpercre beindítja a reléken keresztül a motorokat. Nem kívánt jelenség! Persze ezt lehetett volna máshogy is, de mikor terveztem így ajánlották, és így is láttam jónak.
Avatar
albatrosz100
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2010. november 18. csütörtök, 7:00

Re: 60 nap alatt Arduino #28 - I2C busz általában

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

Ja a rajz és fénykép, nehézkes lesz de ha kell megoldom.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: 60 nap alatt Arduino #28 - I2C busz általában

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

Tipp:
A tápfeszt tudod figyelni a 12V relék ágában?
(Pl. SoundCardOscilloscope).
és a 7805 kimenetén is...
Gerjedést, ingadozást tök jól lehet látni....


Hány reléd is van pontosan?
A 12V relé meghúzóárama hogy alakul? Mondjuk 70mA. Ez azért 8 relé esetén + sallangok elég nagy mennyiség:
- a 7812 max 1A-t ad le. A bemenete nem ismert (miről jár? Min 14V illik a bemeneten)
- az összes holmi áramfelvétele bejátszik, terhelés-melegedés-szellőzés érdekes lehet. Impuzusszerűen a relé visszarúghat (Nálam 1N4007 van rajtuk). A 4148 kifeszik, a ULN belső diódája kifekszik..
- Egyszerre NE húzz meg 2 relénél többet! Ha 8-at kell, akkor csúszasd el 100mseccel egymáshoz képest.
http://www.tavir.hu - a gazda :)
Avatar
albatrosz100
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2010. november 18. csütörtök, 7:00

Re: 60 nap alatt Arduino #28 - I2C busz általában

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

Azért csak most, mert nem minden nap tudok barkácsolni a gépen.
Oscilloscope az nincsen, de elgondolkodtam a beszerzésén!
230/12V 1A trafóról megy, sima hagyományos trafó, nem kapcsolóüzemű táp.
A reléket külön nem tudom lemérni, de a tekercsei ellenállásából számolva: 2X 12 mA; 5X 44 mA; 1X 75 mA. Általában 2 relé megy egyszerre, de maximum is csak 3 mehet egyidőben.
Az egymás utáni kapcsolgatásokat már én is eltoltam igaz csak 30 mseccel (ezen még nem változtattam)
Van egy olyan lakatfogós műszerem, ami kimutatja a mért max. és min. értékeket. Persze nem olyan mintavételezési sebességgel mint a szkóp, de csak ez van. Ezzel mértem a trafóból kilépő áramot 332 mA volt a max. üzem közben élesbe.
A feszültség 7812 előtt DC 17 V kb. 200 mA-es terhelés mellet. Ezt nem tudtam folyamatosan monitorozni.
Állítottam a kommunikáció sebességén először: TWBR = 12; - vel (400 KHz), majd 255-el (30 KHz), de semmi változás, ugyanúgy 10 - 20 percenként elejti a már bekapcsolt relét. Viszont 2 óra folyamatos gyötrés után elkezdet megjavulni, belejött mint kiskutya az ugatásba. Már -már alig hibázott. Valami esetleg bemelegedik rajta, lehetnek ilyen hatások ?
Válasz küldése