60 nap alatt Arduino #34 - I2C portbővítő

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00
Tartózkodási hely: Ausztria
Kapcsolat:

60 nap alatt Arduino #34 - I2C portbővítő

HozzászólásSzerző: etwg » 2019. november 8. péntek, 17:55

Akit érdekel vannak kész NYAKok a PCBWAY-nal ( én terveztem és gyártottam magamnak 20 darabot) ULN2803 IC-vel a PCF8574/75 kimenetei erösitésére.
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682

Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00
Tartózkodási hely: Ausztria
Kapcsolat:

PCF8574 - I2C portbővítő folytatás

HozzászólásSzerző: etwg » 2019. december 7. szombat, 19:19

Hosszabb távollét után ujra otthon és folytatom a projektet. A LED panel (126 LED pillanatnyilag) lesz meghajtva több PCF egységgel (16 és 8 bites verziok keverékével).
A feladat egy vonatos, az állomáson kiválasztott vágányutakat kell kijelezni.

A mellékelt ábrán láthatok az állomás bal oldali lehetöségei (LU1...5).
A vágányut kiválasztása 2 gombbal történik (A -- B azaz honnan hova kell felállitani a vágányutat). A két gomb jele egy diodamatrixon kapcsolja az utbaesö váltokat, és feláll a vágányut. Ezt kell kijelezni a LED panelen. Ez alapbol müködik, söt két állapota van az elsöben villogással jelzi a beállitott vágányutat, amint odaér egy vonat a LED-ek átmennek stabil fénybe. (foglalt a vágány).

Amihez még ötleteket keresek, hogy hogyan lehetne optimálisan megoldani a vágányut bontását. Valamennyi vágányut egy egy bit az adott porton (egy byteon belül).
Azaz, a kiválasztott vágányutat (LUx) elmentem egy belsö regiszterbe majd kiküldöm a LED panelre. A berendezésen nincs lehetöség a vágányut bontására (a nagyvasuton van) ezért csak át lehet irni az aktualisat. A gond az, hogy nem kell okvetlenül mindet mindig átirni, azaz vannak olyan vágányutak amik nem keresztezik egymást, és vannak olyanok amik egymást kizárják
LU.JPG
.
Azon gondolkodok, hogyan lehetne optimálisan kezelni a kérdést.
Azaz pl. ha LU1 van kiválasztva és ehhez hozzáadják az LU5-t nem kell megszüntetni az LU1-et.
De ha az LU2 van kiválasztva és az LU3 a következö, annak meg kell szüntetnie az LU2-t.

Bitekben igy néz ki:
.................Bit
LU1.............0
LU2.............1
LU3.............2
LU4.............3
LU5.............4
TBA.............5
TBA.............6
TBA.............7

A TBA bitek függetlenek a vágányutatktol.

Azaz
LU1. xxx0 0001
LU2. xxx0 0010
LU3. xxx0 0100
LU4. xxx0 1000
LU5. xxx1 0000

Azaz
LU1 (xxx0 0001) és az LU5 (xxx1 0000) = xxx1 0001 lehet, de
LU2 (xxx0 0010) után az LU3 (xxx0 0100) eredöje csak az LU3 lehet (xxx0 0100)

Hogyan lehet ezt egyszerüen kezelni? ( a nagyvasuton is voltak olyan rendszerek, ahol egyszerre csak egy vágányutat lehetett beállitani, de ez nekem nem nagyon jo).
Valami tömbön (arrayon gondolkozom).


Kösz az ötleteket!
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682


Vissza: “60 nap alatt Arduino - Házi feladatok”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég