Fórum témák
» Több friss téma |
Most rákerestem, az MPLAB-on belül van az összes *.inc fájl, de igaza van kaqkk kollégának. Ha jó állítod be PARSIC-on belül menni fog.
Beszéltünk róla itt?
Akkor csak a vezérlő ICről esett szó, nem? Ha a ledek + lábait direkt +5V-ra kapcsolod és a másik oldalára teszed az előtét ellenállást és az után a vezérlő ic-t, vagy a ledek test lábait kötöd össze testre, és a + lábaira az előtét ellenállást és a vezérlő IC-t. A második esetben ha több led világít akkor halványodik. Míg az első esetben nem lesz fényerő különbség bármennyi led világít. Még akkor sem a multiplexelve kötöd. Más: Nem tudom csinált-e már valaki Parsic alatt 74hc595 vezérlést, de múltkor gondolkoztam rajta, mikor multiplexelés volt a téma. Talán nem is lenne bonyolult. Idézet: „A második esetben ha több led világít akkor halványodik.” Nem egészen értem, szerintem az egész csak kapcsolástechnika kérdése, lerajzolnád mire gondolsz? A vezérlő IC egyszerű esetben, csak egy elektronikus kapcsoló. Ha ez egy tranzisztor, és az emitterében van a LED, akkor a biztos kinyitáshoz, lehet hogy kevés a PIC H szintje, mert a bázisra ekkor a tranyó nyitófeszültsége + a LED nyitófeszültségének az összege szükséges.
A 74hc595 kezelése ,talán ilyen módon lenne megoldható. Az 1s os időjelet csak a szimuláció kedvéért tettem bele , ez a valóságban akár 2ms is lehet.
A hozzászólás módosítva: Jan 4, 2013
Hello!
Ez így semmiképpen nem jó. Az 595 soros shift regiszter. Tehát nem annyi impulzust kell kivinned, mint az adat, hanem az adatnak bitminta képét kell beléptetni a regiszterbe. Ez után lehet bemásolni a kimeneti tárolóba és törölni a regisztert. Tehát ha a kivinni szándékozott adat 8 bites, akkor ez 8db. SH-CP impulzust jelent, aminek felfutó élére íródok be az adat, lefutó élére pedig a 8 bites adat bitmintáját 8-szor balra léptetve kell a DS bemenetre vinni. Ha kész ST-CP felfutó élével bemásolni a kimeneti tárolóba, majd MR lefutó élével törölni a shift regisztert (de ezt lehet adatkivitel előtt is.) Az OE bemenetnek közben alacsony szinten kell állni. üdv! proli007
Én ebből indulnék ki. Valójában ezt kellene vezérelni? valamivel...(?)
Értem már ! Köszönöm a felvilágosítást !
Talán valahogy így kéne működnie ?
Mire meg szerkesztem a sematikusát gépen, felkel a nap...
Nem kapcsoló IC. Shift regiszter. Röviden a lényeg. a pic által ebbe az icbe meg tudod adni melyik kimenete milyen szinten legyen. Magas 1 vagy alacsony 0. vagyis +Volt vagy Test(0) 8 kimenete van, és mindent ki kell küldeni. Aztán kijeleztetni. (ha sorba kötsz 10 darab IC-t akkor 80 kimeneted lesz sorba. így 80 ledet tudsz meghajtani. ha jó a frissítési idő akkor real time vibrálás mentesen. (nekem az óracsoportba 104 led van, de egy ismerősöm 400 ledet vezérel. 40 ledes mátrixban 10 karakterben feliratot ír ki. vibrálás mentesen igaz nem parsic-os program, de ha 2ms-os frissítést nézzük akkor is 2szer több ledet lehet meghajtani mint multiplexel.) Viszont erre az ICre a ledet 2 féle képen kötheted. Vagy a led negatív lábát vagy a pozitív lábát. Csak a vezérlést kell megfordítani. Ha a led pozitív lábát kötöd az ICre és a negatívat direkt testre(természetesen előtét ellenállással) akkor amelyik lábon magas jel van ott fog a led világítani. Ha 1 led világít akkor semmi gond, de ha kettő akkor esik a fényerő, ha 3 akkor megint egészen 8 led-ig. Ha sorba kötsz 2 ilyen IC-t és az egyik minden ledet kigyújt de a másik csak 1-et, akkor óriási fényerő különbség lesz a két ledsor(rész) közt. Ha a led negatív lábát kötöd az ICre és a másikat direkt pozitív feszre teszed(előtéttel) akkor ahol a IC alacsony jelet(0) ad ki ott fog világítani a led, ahol (magas) 1 -et ott nem. Viszont bármennyi led világít, akár 1, akár mind a 8, ugyan akkora a fényerő. Tudom lehet tranzisztorral is kapcsoltatni, csak akkor annyi tranzisztor is kell amennyi led. Viszont 100-200 lednél már nem olcsó, ugyan akkor egy IC csak 8 ledet vezérel ebben az esetben, mikor kijelzés van(pl 7szegmenses, vagy ledsor), amit simán le kezel áramerősségben így tök felesleges a tranzisztor, de figyelni kell a kapcsolásra. Karácsonyfa futófény esetén már kell a tranzisztor, mert ott 5 színnel számolva 5cm-enként egy hosszú fűzérhez már kell 10 led szinenként. Az 2.5méter.
Igen, így van. De az OE és az MR lehet állandó is. Illetve a program indításakor felhúzni.
Olyankor, mikor kimeneti tárolóba kerül egyből kiíródik. Így 3 lábbal lehet vezérelni az egészet, nem kell mind az 5 (igaz én flowcodeban írtam anno, de ott is csak 3 lábat használok végig, igaz a program indításkor MR és OE lábat vezérlem egyszer, hogy reseteljem, de ahhoz analóg is lehet kis áramkört tervezni.) Így programrészt spórol, ami parsicban elég hasznos. Más: Most fel rakom a parsic-ot is, hogy megnézzem ezeket a programokat, kíváncsi vagyok ebben hogyan van megoldva. Múltkor már rajzolgattam papíron, meg írogattam hogy lehet megoldani. De nem jutottam el a programig.
Néztem a programot.
Egész jó. Bár átírni nem tudnám, de mondom mi a hiba. A ledek sorba vannak vezérelve, vagyis az első led az 1es lábon van az IC-re kötve és az utolsó a 8as lábon van, ha például az utolsó ledet akarod kigyújtani akkor: (Folyamatot írom az fejembe van.) kimeneten mik legyenek sorba adat láb = 1 órajel láb =1 órajel láb =0 (így ment ki az első magas jel, !! ami az utolsó lesz majd.) adatláb =0 órajel láb =1 órajel láb =0 (második... és ezt 7szer megcsinálja, vagyis mind a 8 bit kimegy, így amit először írtál be magas értéket (1) az lesz az utolsó, mert sorba utána töltődik a többi nulla.) Ha az első ledet akarod akarod kigyújtani akkor pont a fordítottja vagyis kiküldöd 7szer a nullát és utána az 1-et. De minden esetbe annyiszor kell megismételni ahány kimenet van, vagyis ha 1db IC akkor 8szor, ha 2db IC van sorba kötve, akkor 16szor. Mindegy mennyi led van bekötve valójában, nem lehet levegőben, illetve vezéreletlenül a láb mert akkor az felvesz egy értéket(ha van bekötve led, de nincs megvezérelve, akkor vagy világít vagy nem) Majd miután az összes kimenet meg van határozva, akkor megy ki az ST-CP lábon, mint nálad is az "átírás" kimeneten a 1 és 0. Az jó. Egyébként a program jó alap. Jól küldi ki, csak annyit kell módosítani, hogy mindig 8szor(illetve 16,32, stb) küldjön ki órajelet. Vagyis azt kell figyelni, hogy ez be lépteti sorba a ledek értékét. Mivel az ICket sorba lehet kötni így lesz egy ledsorod. PL 16db led. Viszont először a legutolsó kimeneti láb (led )értékét kell meghatározni az IC szempontjából, aztán az az utolsó előtti, stb..és csak a legvégén kerül be az első led. Azért körülményes és írogatom, mert elektronikától is függ ennek a vezérlése. Mert te a nyáklapon bekötheted úgy, hogy az első led a nyákon lényegében az utolsó led a belépetés szempontjából. de a ledeket olyan sorrendbe helyezed el a kijelzőhelyen dobozba, stb. ahogy akarod, vagyis akár fordítva is.(ami szerint neked lehet hogy fordítva kell vezérleni.) Így fontos, tudni mindig először az IC szempontjából az utolsó adatot kell kiküldeni. Ha megértik akkor utána ugyan ezzel simán menni fog a 7szegmenses kijelzés. mert elég lesz tudni, melyik lábra, melyik szegmens ledje van kötve. Onnantól pl. ha adat lábon sorba: 0 0 0 0 1 1 0 0 van kiküldve 1et fog mutatni a kijelző. (és lejjebb ahogy Szammernek is írtam, lehet negatív lábbal vezérelni. Ha pedig érted a vezérlést és a program jó, csak ellentettjét kell kiküldeni, lásd előző példa 11110011 és így lesz 1es kijelzés) Bocs a hosszért.
Már nem tudtam módosítani:
Sima ledsor vezérlés esetén lehet használni 7 szegmensesre nem jó. Nekem ezen az elven működnek az órában a ledsorok. Ne csak 8al számoljon. Ha tudod, hogy 16 kimeneted(led) (vagy 32,64 stb) van akkor 16-ból vonja ki azon ledek számát amiknek 0 értéke van. Aztán léptesse be annyiszor a 0-t amennyi a maradéka a kivonásnak, majd annyiszor az 1-et ami az eredménye a kivonásnak. Példa: 16db led van, de 11et akarok kigyújtani, akkor legyen a bitminta kimeneten 0 (vagyis semmi) és 5ször ismételje meg a CLK billenést. Aztán legyen bitminta kimeneten 1(vagyis piros) és ismételje meg 11szer a CLK billenést. Ha kész mint most is akkor mehet az átírás billenés. Így egy ADC-t betéve és leosztva 16-ra(32...). PICbe égetve egy potmétert tekergetve lehet próbálni. Ahogy tekered a potit, úgy megy fel le a ledsor. A hozzászólás módosítva: Jan 5, 2013
Átírtam , benne van a 7szegmens "dekóder" Így már jó egy digitre ?
A hozzászólás módosítva: Jan 5, 2013
Egyébként most azon gondolkoztam hogy úgy működne e a dolog hogy nem sorba ,hanem párhuzamosan kötni az 595 öket tehát : minden ic nek kiadni egy lábon a bitmintát a clk meg az átírás meg közös lenne (nem kéne 32-64-xxig léptetni minden esetben elég a 8 clk)
Szerintem működhet, csak akkor pazarlunk pár lábat.
Amúgy jónak tűnik a program. De nem tudom megmondani, hogy 7 szegmenses kijelzőt hogy kell parsicban bekötni. Ha az szerint ossza ki a bitmintát akkor jó a program. Beszámolja az összes clk jelet és a végén zárja. Így 2ms os időzítéssel vibrálás mentes kijezést kapsz. Plusz addig világít amíg újból ki nem küldesz rá adatot. Vagyis PL óra esetén nem kell neki folyamatosan futni. Elég ha az óra jár magában, megy az időzítő, aztán mikor számváltás van vagyis letelik 1 perc, akkor egyszer kiküldi az új időt és megint fut magában az időzítés.
Megcsináltam a 6 digites verziót is . a multiplexer bemenetei számértékekkel vannak megírva. azok adatbemenetek .
Ha egyszer ráérez az ember utána jönnek ám az ötletek...
Nem volt nehéz ráérezni , régen csak parsiccal "dolgoztam"
Én anno megcsináltam a sebesség mérőt és a fordulatszám mérőt is 16F877es pic be. Működött is. Az LCD -n elég pontosan mért is, valós teszt is volt.
Aztán átkeveredtem flowra az akadályok miatt, pl ez a led vezérlés miatt, azóta parsiccal semmit nem csináltam, így kicsit bonyolult ez nekem. De így, hogy más megcsinálja és nekem csak meg kell nézni így könnyű.
Hello!
- Célszerű a clk jelet az ütemjel felfutó élére aktiválni, míg a ZV1 számlálót az ütemjel lefutó élére léptetni. Vagy is a ZV1 órajel bemenetét invertálóra átállítani. Így mindenképpen biztosítható hogy helyes sorrendben történjen az adatátvitel, vagy is hogy az órajel akkor írja be a 595-öt, mikor az adat stabilan kint van. De a program teljesen máshogy is működhet, ha megváltoztatjuk a végrehajtása sorrendjét. Vagy is nem mindegy esetleg, hogy milyen sorrendben teszed le a modulokat. Ezért kell az időzítések sorrendjével foglalkozni. - Láb ide-oda, én a MR törlőjelet szükségesnek tartom. Mert elég egy tranziens valahonnan, és akkor ettől kezdve minden adat rossz helyre megy. üdv! proli007 A hozzászólás módosítva: Jan 5, 2013
Sziasztok !
Jól haladok az LCD illesztésével , már kiírja amit akarok . Nézegettem visszaolvastam ( valamennyire) , és megnéztem néhány mintát az EEpromba való mentéshez . A mentést nagyjából értem , de a visszaolvasást nem . Nem látom , hogy honnan veszi az adatot .( Közvetlenül LCD re nem is lehet kiírni adatot a mem. ből?
Sziasztok !
Segítséget kérek . Az alábbi teszt programot írtam . Végül is működik.Az lenne a kérdésem , hogy ha beírom az ADC0 értékét az epromba , hogyan tudom azt visszaolvasni .Az lenne a cél ,hogy egy maximális értéket tudjak eltárolni. Másrészt jó-e az a megoldás az lcd törlésére amit csináltam , vagyis "semmit" írtam a kijelzőre. Harmadik kérdésem , hogyan lehet 3 lábú inkrementális potit illeszteni a pic hez . Valamilyen illesztő létezik pl. cmos kapukból , de nem találtam a google- val sem. Előre is köszi : mezga
Egy kicsit mellé nyúltál , a hex nem segít...
Jajaj , igazad van , kicsit kiestem a a gyakorlatból .
Íme. Több órája keresgélek a neten , de nem találok a digitális potméterhez kapcsolást . C nyelven már találtam , de nekem parsic -ban kellene. A Texas TTL receptekben talán lett volna , de nem találom a könyvet.
Hali. Mikor érdemes belső, és külső oszcillátort használni? Vagy mikor kell külsőt?
Belső osc.: kevésbé pontos, mint egy kvarc oszcillátor, de nem igényel külső lábakat, így azokat lehet használni más célra. Ma már a belső oszcillátorok is pontosak ( pl. használható RS232 időzítéshez is ) és még a hőmérsékletfüggésük is jónak mondható általános célokra ( LEd villogtatás, egyszerű, nem időkritikus logikák, sorrendi hálózatok ).
Külső oszc.: pontos ( pl. kvarckristály 10^-6 ), "tetszőleges" értékű lehet, de lefoglal 1-2 lábat. Steve
Multiplex, és sok jel mérése kis idő alatt, oda már kavics kell mi?
|
Bejelentkezés
Hirdetés |