Fórum témák
» Több friss téma |
Fórum » PIC-es led modulok összekapcsolása
Témaindító: Poostmaster, idő: Aug 28, 2010
Témakörök:
Szeretném megoldani, hogy több, PIC-el vezérelt led csoportot összekapcsoljak. Nem tudom elég világos-e?
A lényeg, hogy kell egy áramkör, ami kb 50 ledet vezérel a programja szerint. Ezt az áramkört megcsinálom több példányban, és összekapcsolom őket egymás után. Így, ha az egyiknek lefutott a programja, indítja a másikat. Ez lenne az egyik variáció. A másik szerint pedig egy külön vezérlő áramkör a saját programja szerint vezérelné, hogy mikor melyik LED-es egység kezdje meg a saját programját. Ha lehet, mindkettőre szeretnék áramkört. Esetleg kombinálni is lehetne a kettőt.
Ahha.
Tehát "kaszkádosítani" akarod a modulokat. Én nem értek a PIC-hez, de a programjába bele kéne piszkálni. Sükség lenne modulonként még 1 bemenetre, aminek azt a feltételt adnád, hogy induljon, amikor az a bemenet vezérlődik (az előző modul utolsó kimenete vezérelné). Csak akkor úgy kéne, hogy késleltetést kéne beletenni, mert mikor az előző modul utolsó ledje elkezd világítani, akkor a köv. modul már megkapná a parancsot, és akkor 2 világítana egyszerre. Avagy 1 -1 ledet kiszedsz minden modulból, és a akkor nem kell késleltetés, és akkor már csak +1 bemenet kell, ami figyeli mindig az előző modul utolsó kimenetét (ahol a led volt, amit kiszedtél) A programba így is, úgy is bele kell nyúlni, de mondom: én nem értek a mikrovezérlőkhöz, csak nekem így logikus.
Esetleg felfűzöd őket egy vezetékre és mindegyik azon kommunikál az összes többivel. Így mindegyik modul azonos és nem kell csak 1 db I/O mindegyiken. Persze ekkor a szoftver lesz 1 kicsit bonyolultabb.
Szia!
Vagy csinálsz egy olyan áramkört, ami egymás után kapcsolja a tápfeszültséget a pic-ek lábaira. Ezt is meg lehetne oldani egy kisebb PIC-kel. Szóval közösíted a gnd-ket, és írsz egy "futófény" szerű programot, annak megfelelően hány picet akarsz egymás után működtetni. Üdv.: mate_x
Ha PIC és még nincs konkrét típus, akkor az újabbak közül szinte bármelyik jó, ugyanis azok már EUSART-ot tartalmaznak, ami képes Synchronous Master Mode-ban és Synchronous Slave Mode-ban is kommunikálni. Egy közös soros buszra felfűzöd az összes PIC-et és egyet kijelölsz Masternek.
Hali
Szerintem is az a legegyszerűbb, hogy a PICeket például egy I2C porton összekötnéd és azon keresztül tudnának a PICek egymással kommunikálni
Sziasztok
Nem lenne egyszerübb, 1 PIC-re tenni port expandert, egyet vagy akár többet is ? 50 portot simán meg lehetne vele oldani, sőt akár többet is. Fery
Igazság szerint arra gondoltam, hogy több expandert is elvisel i2C-n a Pic. Nem tudom hirtelen, mekkora a legnagyobb port expander, de azt hiszem 32 bit-es létezik, ebből négy az 128 port, ami mátrixba programozva 64x64 azaz 4096 led vezérlése.
Igy 1 Pic-el meglehetne oldani. Nem kell sorba kötözgetni. Fery
Csupán csak egy lényeges kérdésről nem esett szó eddig. Milyen a LED csoportok térbeli elhelyezkedése. Ha egymáshoz közel vannak, akkor szóba jöhet a mikrovezérlők közötti I2C (max 20 cm) , esetleg SPI kapcsolat, de még akár a táp kapcsolgatása is (bár ezt nem javaslom, mert elég merev kialakítás). A Port expander is akkor lehet hatásos, ha a LED csoportok gyakorlatilag egy helyen vannak és a kérdező meg tudja írni a programot. Ha távol vannak egymástól, akkor a járulékos vezetékezés problémája, valamint anyagköltsége már nem kifizetődő. A hagyományos RS232 kapcsolat, annak pont-pont topográfiája miatt nem jöhet szóba. A legmegfelelőbb egy szabványos busz felület kialakítása, pl. RS-485, vagy RS-422. A feladat specifikációjához az RS-485 illik jobban, mert bőven elegendő a Half Duplex kapcsolat.
Való igaz, hogy kihagytam ezt a nem elhanyagolható részt, de most pótolom. Nem kis távolságról van szó, mert az elsőtől az utolsóig akár 5-6 méter is lehet e távolág. A ledek egy meglehetősen nagy területen lesznek szétszórva. A tervben az szerepel, hogy kb 2*2 m-es területek lesznek modulonként, és ebből 6 vagy 9 darab. Tulajdonképpen egy tüzijáték képe lenne ez. Ha ez segít.
Szia!
Ebben az esetben a EUART és az RS485 illesztés lesz a megoldás. Ha ilyen nagyok a távolságok, akkor más a föld potenciál sem lesz egyforma, így optikai leválasztást is meg kell valósítani. Egy pic-es modul az EUART egységgel képes táviratokat küldeni. A pic még csak CMOS szinteket állít elő, ezt nem lehet méterekre vinni. Így egy optikai leválasztás (2 db oprocsatoló) egy TTL - RS485 konverterrel (75176) lehet messzire vihető jelet előállítani. Minden vevő és adó fokozat felfűzendő két vezetékre (mindkét végén lezárással), a másik kettőn a leválasztott egységek tápja átvihető. A protokol a távirat elején elküldi a cél állomás címét. A megcímzett veszi a táviratot és válaszol rá. A többi figyeli a vonal foglaltságát. Egy adó csak akkor kezdhet adni, ha a vonal szabad. Ha mégis ütközés van tovább adjon, hogy a többi is észrevegye - CSMA/CD.
Üdv!
Tehát te nem feltétlenül szeretnéd összevissza cserélgetni a modulokat, midegyiknek megvan a fix helye, és a fix programja, csak azért van több modul, mert nem tudsz egy mikrovezérlővel annyi ledet villogtatni, amennyit szeretnél... Mivel ez egy mozgó kép, amin egymás utáni képeket szeretnél látni, és ha van még monjuk minegyik mikrovezérlőn két szabad lábad, akkor azt javasolnám, hogy nevezz ki egy mikrovezérlőt, ami egy kimenetén adná az ütemet, a többi pedig ezt számolná egy bemeneten, és a képkocka számának megfelelő képet rajzolná ki a ledekkel. A második szabad láb a resethez kéne, de ha jól megírod a programot, akkor erre nincsen szükség. Ezzel nem kell buszokkal szívnod, nincsen gond a vezetékezésben fellépő veszteségekkel, és zavarokkal, mert nem nagyfrekvenciás jel fut rajta.
Hp41C úgy tűnik, hogy egy TCP/IP protokollt vázolt fel nekem, de ez szerintem fölösleges. A modulok valószínüleg sorban fognak működésbe lépni, esetleg 2 egyszerre, ezért szükségtelen, hogy mind figyeljen. Tulajdonképpen egymásnak adják a vezérlést.
Last_Scout már jobban látja a kérdést. Csak még annyi jutott eszembe, hogy a távolságokat tekintve maradhatnánk a 2*2 m-nél, mert mindegyik ugyanaz az áramkör lenne, csak a ledek elhelyezése változtatná a képet, no meg a program, amelyik minden vezérlőnél más. Fölmerül még annak a kérdése, hogy a ledeket milyen távolságra vihetem el a paneltól egy mezei vezetékkel? A vezérlés átadását pedig a másik panelnak, ami feltételezhetően 2m távolságban van az előzőtől, vihetem-e koaxon, esetleg egy jelerősítő fokozat beépítésével? Ja, és még egyikőtök sem küldött nekem rajzot.
Sajnos arra nincsen időm, hogy rajzot készítsek neked....
A koax valószínűleg szükségtelen... nem tudom mit értesz mezei vezetéken, de szerintem pár méteren még elhanyagolható a vezeték ellenállása, ha mégsem lenne az, mert vékony a vezeték, és a ledek nagy teljesítményűek, akkor egyszerűen csökkenteni kell az előtét ellenállás értékét. Ha nagy teljesítményű ledekről van szó, akkor egyébként a mikrovezérlő kimenetével egy tranzisztoron keresztül kell majd meghajtani a ledeket. A szinkron jellel kapcsolatban, amit említettem, végképp nem kell aggódni, mert a mikrovezérlő bemeneti ellenállása elég nagy, és gyakorlatilag nem fog áram folyni rajta, theát nem igazán fontos, hogy milyen vastag a vezeték, szerintem azt a pár mértert, ami neked kell ki fogja bírni. (Mert mivel max 1-2 mA folyik majd rajta, nem fog nagy feszültség esni.) Csak arra figyelj, hogy amikor összedugod őket, már fel legyen konfigurálva, a be, és kimenetek, különben zárlat lesz. Ja és persze össze kell földelni az áramköröket, de ezt gondolom úgyis megteszed, amikor a tápot végigvezeted.
Hali
Lehet hogy nem ert at az en uzenetem. Most megegyszer kuldok egy linket :soros RGB. A kapcsolas tartalmaz egy vezerlo panelt, es x LED panelt. A soros adatatvitel egyiranyu, es 12 V jelszintekkel mukodik. Az adast egy 2N7000 tipusu FET valositja meg, mig a vetel ugyanezzel a tipusu FET-tel tortenik. Az oldalon talasz ASM kodot, mint az ado, mint a vevohoz. Egy kis atalakitassal szerintem jo lehet a Te altalad elkepzelt rendszerhez. Az uzeneteket nem fontos az eredetiekhez hasonlo modon hasznalni, egy kis lelemenyesseggel barmit meg lehet valositani. Udv Vili
"Ja, és még egyikőtök sem küldött nekem rajzot. "
Sőt, paneltervet sem, a PIC-et sem programoztuk be, ... stb. De jó pénzért Én legfelljebb segíteni tudok, de magadnak kell megcsinálnod. Ha annyi elegendő, hogy csak egy indító jelre van szükséged, tehát elegendő az 1 irányú kommunikáció, akkor vagy multiplexelt kimenetek, ami ugye csillagpontú összeköttetés, mindegyik PIC-hez 1-1 vezeték, de ha már kontroller, akkor mint korábban is írtam, a legegyszerűbb megoldás a PIC USART-ját használni. Már jó régen bevált amit már előttem is említettek, az RS485, a hozzá való IC pl. LTC485. A busz protokolljáról, programozásáról bőven találsz doksit a neten. Ha RS232-őt akarsz használni (ezt akár PC-ről is indíthatod) akkor arra egyik megoldás az, ha a master kimenetét összekötöd az összes PIC bemenetével és cím alapján választod ki őket. Ha megnövelt jelszintel, azaz nem 5V-al, hanem mondjuk 15V-al vezérled, akkor lényegesen nagyobb távolságok is zavarmentesen áthidalhatóak. Amennyiben zajos a környezet és nagyok a távolságok, akkor egyedi busz protokollt használj, szintén megnövelt jelszintel. Habár kétlem, hogy 1200 vagy 600 baud ne menne el bárhova bármilyen zaj mellett, de ha mégse, akkor itt egy nagyon egyszerű példa: Van 2 vezeték, az egyik az órajel, a másik az aktivizáló. Bekapcsolod az aktivizáló jelet, majd az órajel vezetéken elkezdesz annyi jelet adni, ami megfelel a kiválasztandó PIC számának. Az aktivizáló jel kikapcsolása jelzi, hogy vége a számlálásnak. A számlálás sebességét a zaj nagyságához és a távolsághoz be tudod állítani (minnél nagyobb a zaj és a távolság, annál lassabb lesz, több kilométeres távolságok is áthidalhatóak így). A buszon lévő összes PIC számolja ezt, de csak 1 lesz aktív. Ezzel a módszerrel akár csoportokba is rendezheted őket. Mivel a sebesség nem kritikus, így akár több száz egységet is kezelhetsz. És még egy megjegyzés egy kicsit jártasabbaknak: igen, ismerem a sodort érpár előnyeit, de ahogy észrevettem, minden, kicsit is bonyolultabb megoldás nem játszik a kérdés feltevőjénél
Idézet: „Ja, és még egyikőtök sem küldött nekem rajzot.” "Mert ha a trombita bizonytalan zengést tészen, kicsoda készül a harczra?" /1Kor 14,8/ Te sem vettél annyi fáradtságot, hogy a Microchip honlapján az alkalmazási mintapéldák között szétnézz! Vagy hogy a LIN, CAN, RS-485, DMX512, stb. buszok tulajdonságainak és megvalósíthatóságuknak utána nézz, s kiválaszd a neked tetsző megoldást. Vagy hogy pontosan specifikáld a megoldandó feladatot... Ezek híján minden rajzkészítés időfecsérlés volna...
Üdv !
Én romániába egy kaszinónak csináltam a homlokzatra PWM futófény effektet, 192 ledsávot hajt 3 csoportban. Egy egység 64 sávot hajt. Mind három egységben van egy pic 64 ch pwm fokozat és ez elsőben van egy központi egység ami a progit tartalmazza. Az egységek kb 10 méterre esnek egymástól, a tetőn vannak mindenféle erősáramú kábelek közelében, ezért az összekötetést egy utp kábel biztosítja RS485 felületen. Szerintem ez a legegyszerűbb megoldás.
Ez igen érdekesnek látszik. Tudsz róla bővebben informálni?
Neked annyit válaszolnék, hogy tudtommal ez egy olyan fórum, ahol segítséget lehet kérni egymástól. Nem ritkán rajzokkal kérik. Ezen kívül, nem mindenki beszél megfelelő szinvonalon "külföldiül".
Még valami. A segítő hozzászólás, és a kioktatás nem édestestvérek. Ha flame-elni akarsz, kerülj el. "Így van ez veletek is: ha a nyelv adományával megáldva nem hallattok érthető szavakat, hogyan értsék meg az emberek, amit mondtok? Csak a levegőbe beszéltek!" (1Kor 14,9)
Idézet: Szerintem is. S a hozzászólásommal is megpróbáltalak afelé orientálni, hogy a használható és bevált megoldások közül válassz egyet, melynek technikai részleteiben esetleg tudunk segíteni. Én az RS-485-öt javasolnám, de a döntés a tied. „tudtommal ez egy olyan fórum, ahol segítséget lehet kérni egymástól.”
Idézet: (1Kor 14,1-4)„Törekedjetek a szeretetre, de igyekezzetek a lelki adományokat is elnyerni, különösen azt, hogy prófétálhassatok. Aki ugyanis az elragadtatás nyelvén szól, nem emberekhez beszél, hanem az Istenhez. Senki sem érti, hiszen a Lélektől indíttatva titokzatos dolgokat mond. Aki viszont prófétál, az emberek épülésére, buzdítására és vigasztalására beszél. Aki az elragadtatás nyelvén szól, csak a maga lelki épülését szolgálja, aki azonban prófétál, az Egyházat építi vele.” Hagyjátok abba a veszekedést, vagy privátban folytassátok. Megértéseteket köszönöm!
Mire vagy kíváncsi ?
tulajdonképpen mindenre.
Így elég homályos nekem, de valószínű, hogy hasonló kellene, csak kisebb. egy video, esetleg rajz? |
Bejelentkezés
Hirdetés |