Fórum témák

» Több friss téma
Fórum » Bináris óra
Lapozás: OK   19 / 26
(#) placika hozzászólása Jan 21, 2011 /
 
Eredetileg 22pf-ot raktam a kvarc lábaira. Kicseréltem 33pf-ra, és ugyanúgy siet.
(#) hackerfish válasza placika hozzászólására (») Feb 2, 2011 /
 
Akkor állítsd be szoftveresen.
(#) sooty válasza placika hozzászólására (») Feb 2, 2011 /
 
Sajnos a 4 MHZ kvarc esetén mivel a megszakítás 256 utasításonként fut le nem lehet pontosan elosztani az 1000000-t ezért az egy másodperc időtartamot máshogy méri az óra:

1.- beállítunk egy 24-bites konstans értéket amely az oszcillátor frekvencia negyede (Value = Osc Freq / 4.)
2.- Minden timer0 túlcsordulás esetén (mivel az minden 256 ciklusban egyszer fut le) kivonunk 256-ot a 24-bites változóból és ;
3.- amikor a változó értéke 0 alá csökken lefuttatjuk az egy másodperc elteltét kezelő rutint és hozzáadunk 1,000,000 -t a változó értékéhez ha Xtal értéke = 4Mhz

Ha 10%-ot siet akkor ennyivel többet kéne számolnia az órának hogy pontos legyen tehát 1100000 lesz az egy másodperc
  1. MOVLW 0x0F              ; get msb value
  2.                 MOVWF bres_hi           ; load in msb
  3.                 MOVLW 0x42              ; get mid value
  4.                 MOVWF bres_mid          ; load in mid
  5.                 MOVLW 0x40              ; lsb value to add
  6.                 ADDWF bres_lo,f         ; add it to the remainder already in lsb

itt vannak a kezdő értékek beállítva ezt kellene módosítani... (2x van benne a kódban egyszer +1-el meg van növelve a középső érték)
hex 0F4240 = dec 1,000,000 tehát
hex 10C8E0 = dec 1,100,000 lenne a 10%-kal növelt érték. Kíváncsi leszek, tudsz-e így pontosítani az órán.
A nagyobb kondikkal stabilabbá tettük az órajelet, de eszerint nem az okozta a hibát. Véleményem szerint a kvarc lesz egy hibás példány 10% sietés nagyon sok, a program pedig másoknál jól működik.Bővebben az eljárásról
(#) placika válasza sooty hozzászólására (») Feb 2, 2011 /
 
OK! Működik, pontosan jár.
Köszönöm a segítséget
(#) sooty válasza placika hozzászólására (») Feb 2, 2011 /
 
Örülök, hogy tudtam segíteni. Ha a sietés konstans érték és nem mászkál majd el, ezzel lehet hogy megoldódott a kérdés.
(#) Einstein hozzászólása Ápr 26, 2011 /
 
Üdv Mindenkinek!

Csodálatos ez a PIC-el felépített bináris óra, és van egy 5letem vele kapcsolatban.
3-as számrendszerű óra, dual LED-ekkel megépítve.
Működése: Ugyan az mint a bináris óránál, csak egy LED nek nem 2 hanem 3 állapotot kell felvennie (0,1,2),
0-nem világít, 1-egyik szín, 2-másik szín. A 4s-nál átugrik a második ledre, és így tovább. A kijelző kapcsolása és a PIC programozása a gond, hiszen hogy meg tudjam tervezni az előlap kapcsolását, ahhoz ismernem kéne a programozandó uC-t+ programozni kéne megtanulnom. Ha valaki lát benne fantáziát és érdekli az írjon! (Pl.Ide a topic-ba)
(#) hackerfish válasza Einstein hozzászólására (») Ápr 27, 2011 /
 
Szia!
Nekem tetszik!
Perpillanat én nem vágnék bele, nincs rá időm, meg épp egy rádióadóval vacakolok.
Szerintem építsd meg, ha elakadsz, itt a fórumon úgyis kapsz segítséget, és így megtanulhatsz PIC-et programozni.
(#) Hp41C válasza Einstein hozzászólására (») Ápr 27, 2011 /
 
Szia!

Egy programozás nélküli ötlet. A 3 lábú, kétszínű led 4 állapotot is ki tud jelezni: Nem világít, 1. szín, 2. szín, mindkettő. Pl. piros - zöld lednél: sötét, piros, zöld, narancs. Egy 4 -es számrendszerű óra programja ugyan az, mint a binárisé, csak két - két bit vezérel egy - egy kétszínű led-et.
(#) hackerfish válasza Einstein hozzászólására (») Ápr 27, 2011 /
 
Rajzoltam beültetési rajzot a mátrixhoz. A piros meg a kék a forrasztás, a szürke az átkötés.
Hármas számrendszerben a 2 egyjegyű, az 5 kétjegyű: 12, a 9 három jegyű: 100. (ha jól számoltam) Tehát összesen 14 db ledre lesz szükséged, ha a másodpercet is ki akarod iratni. Ehhez 6+6 portra lesz szükséged.

matrix.jpg
    
(#) hackerfish hozzászólása Ápr 27, 2011 /
 
Itt a teljes rajz.

matrix.png
    
(#) Einstein válasza Hp41C hozzászólására (») Ápr 27, 2011 /
 
Üdv!

Akkor RGB LED-el felépítve akár az 5-ös számrendszerűt is, vagy ha jól gondolom a 7-es számrendszerű a max amit meg lehetne építeni. (inaktív, R, G, B, RG ,RB, GB)
(#) Einstein válasza hackerfish hozzászólására (») Ápr 27, 2011 /
 
Üdv!

Ez nagyon jól néz ki, és hasonló, min a vicsys általi Front panel. Hasonlóan a PIC portjainak gyenge jelét fel tudnánk erősíteni (kapcsolni) egy BC XXX jelű tranzisztorral, csak ki kéne választani a megfelelő uC-t. A program meg sztem alapjában véve hasonló lehet, csak egy kicsit kéne belenyúlni. jövő héten érettségizek, de utánna a PIC-ek világába jobban bele tudok majd mélyülni.
(#) hackerfish válasza Einstein hozzászólására (») Ápr 28, 2011 /
 
Szia! A szükséges portok számát azért is számoltam ki, hogy megkönnyítsem az uC választást. Sok sikert az érettségihez! (Mi ilyenkor még csak évfolyamvizsgázunk.) Ha nekiállsz, és nekem is lesz rá időm, átnézem azt az időzítős progit (pontosan egy másodpercenként vált) amit azóta sem csináltam meg az órámhoz. Az neked is jó lenne kiindulásnak. A megjelenítés lekódolása meg már nem nagy dolog, azt kitalálhatod a bináris alapján, gyakorlásnak jó.
(#) Hp41C válasza Einstein hozzászólására (») Ápr 28, 2011 /
 
Szia!

Három RGB led-del, PWM vezérléssel az egész idő kijelezhető - szintévesztők nehezen fogák leolvasni.
A 16F84(A) -et ki kellene váltani 16F628A -ra, van benne Timer 2, amivel különösebb programozás nélkül pontos 1s időzítést lehet csinálni, és ráadásul olcsóbb is.

Mivel a másodperc és a perc 0..59 közötti, az óra 0..23 közötti, balról kezdve a páratlan oszlopok elhagyhatók, ha az oszlopokat 4 led-ből készítjük (3^4=81). Összesen 1*3 + 2*4 db kell - az órának 3, a perceknek és a másodperceknek 4 - 4.

Ekkor a vezérléshez 3 + 8 = 11 kimeneti láb kell.
11 Kimenet + 2 táp + 2 oszcillátor + 2 nyomógomb = 17 láb. A 16F628A -nak marad még egy lába...
(#) Einstein válasza hackerfish hozzászólására (») Ápr 28, 2011 /
 
Helló!

Ez jól hangzik!

A uC tényleg lehet majd 16F628A, mint ahogy Hp14C javasolta. Ha jól emlékszem az eredeti bináris óra is ezzel van felépítve.
Igaz hogy csak 4Mhz-es oscillátort tud max kezelni, ha jól tudom, de az is bőven elég hogy pontosan működjön. Én még logikai kapukban gondolkoztam, valamilyen számlálóval, csak az órajellel lenne ott probléma, mert ahogy én tudom az 555 IC elég pontatlan jelet állít elő, qvarc oszcillátort meg nemtudom hogy hogyan lehetne illeszteni hozzá.
(#) Hp41C válasza Einstein hozzászólására (») Ápr 28, 2011 /
 
Szia!

Akár 20MHz -vel is járathatod a 16F628A -t...
(#) hackerfish válasza Einstein hozzászólására (») Ápr 29, 2011 /
 
Szia!
Itt találsz rajzokat meg leírást, oszcillátor, led, nyomógomb, stb. bekötéséhez.
Bővebben: Link
Én ezzel kezdtem a PIC-elést:
Bővebben: Link
Mondták, hogy ez kicsit elavult, de az alapokat meg lehet tanulni.
A kapcsolasok.hu-n is van egy PIC-es cikksorozat. A ledvillogtatástól a hétszegmenses kijelzőig.
(Meg persze itt a H.E.-n.)
Ezek alapján próbáld megérteni az órás progikat, amik ebben a topicban vannak feltöltve, hogy melyik sor mit csinál. Ha már kezded érteni, kicsit változtathatsz rajta, és előbb-utóbb eljutsz a hármas számrendszeres órádhoz.
(#) Einstein válasza hackerfish hozzászólására (») Máj 2, 2011 /
 
Szia!

Köszi a linkeket!
Ha túl vagyok ezen a héten, utánna nekilátok a PIC-ezésnek, mert nagyon érdekel.
(#) jpocok hozzászólása Máj 12, 2011 /
 
Sziasztok!
Tudna nekem segíteni valaki? Nézegettem Vicsys bináris óráját és megtetszett a program. De nekem 7 szegmenses kellene. Ezért kicsit átalakítottam a programot. Beletettem a HEX2SEGMENTS táblázatot és felcseréltem az A-B portot, mert az A porton nincs elég kivezetés a 7 szegmenshez.
A közös katódos változat hibátlanul működik (a -cc jelzésű). De a közös anódos (-ca) nem jó. Egyszerre váltja az összes digitet és szinte állandóan világít az összes szegmens, csak egyesek erősebben, mások halványabban. Néha elalszik a g szegmens.
Csak annyit változtattam a közös katódoshoz képest, hogy a SHOWNUMBERS rutinban megfordítottam a logikát. Tehát a PORTA 000h helyett 0FFh értéket kapott és BSF helyett BCF az aktuális kimenet beállítása. A PORTB értékeit pedig a másik táblázattal kezelem, ami pontosan inverze a közös katódosnak.
Szerintem ennek jónak kellene lenni, de mégse működik. Mit néztem el?
A hardver garantáltan jó, többször ellenőriztem (PIC nélkül egyesével kapcsolgattam a szegmenseket), a PIC pedig ugyanaz, szóval ez programhiba.
(#) jpocok válasza jpocok hozzászólására (») Máj 15, 2011 /
 
Esetleg valamilyen ötlet?
(#) (Felhasználó 20218) válasza jpocok hozzászólására (») Máj 15, 2011 /
 
Ha jól értem akkor viszonylag egyszerű, hogy hol a hiba. A shownumbers ugye végtelen ciklus, egyedül az megszakítások szólnak bele. Amikor letelt az 1mp akkor sece változót megnöveli 1-el, ha túlcsordult akkor nullázza és sect-t emeli és így tovább. Te a HEX2SEGMENTS procedúrával átírod a sece változót és emiatt a megszakításkor nem az történik aminek kellene. Javasolt megoldás, hogy a HEX2SEGMENTS elején mentsd el a sece tartalmát valamibe, majd miután PORTB-be beírtad akkor töltsd bele vissza az eredeti tartalmat. És a többi változónál ugyanez...
(#) jpocok válasza (Felhasználó 20218) hozzászólására (») Máj 15, 2011 /
 
Köszönöm válaszodat, de attól tartok, nem ez a megoldás . A HEX2SEGMENTS hívása a W regiszterrel történik, csak azt változtatja meg. Egyébként ugyanez a program a közös katódossal hibátlanul fut, csak a közös anódos kijelzőn bolondul meg.
(#) jpocok válasza jpocok hozzászólására (») Máj 15, 2011 /
 
Működik!
Az adatlap ajánlásának megfelelően kikapcsoltam a komparátort (MOVLW 0x07 és MOVWF CMCON). Ettől megjavult. Mondjuk erre magamtól is gondolhattam volna. Csak azt nem értem, hogy a közös katódos miért működik enélkül is. Miért csak a közös anódos okoskodott?
(#) (Felhasználó 20218) válasza jpocok hozzászólására (») Máj 15, 2011 /
 
Gratulálok! Nem tudom miért nem jutott eszembe, pedig ebbe a komparátorba már egyszer én is belefutottam. Nem is értem, hogy miért a bekapcsolt állapota a default.
(#) jpocok válasza (Felhasználó 20218) hozzászólására (») Máj 17, 2011 /
 
Én pedig azt nem értem, hogyan működhet az eredeti enélkül. Illetve nekem is működött a közös katódos kijelzőn .
(#) jpocok hozzászólása Máj 22, 2011 /
 
Szia Martinov!
Láttam a Ki mit épített? topikban hozzászólásodat a bináris óráról.
Szerintem még ne marasd azt a panelt. Én is gondolkodom rajta, hogy meg kellene építeni. De elég nehéz leolvasni (hacsak nem vagy penge a bináris számrendszerben ). Olyan sűrűn pedig, ahogy Te tervezted, még nehezebb!
Szerintem kicsit levegősebben kellene, ahogy a mellékelt képen láthatod. Úgy gondoltam, hogy ezeket a feliratokat bele kellene maratni egy plexibe (kb. fele vastagságig), majd a plexit a pereme felől ledekkel megvilágítani. Így csak a feliratok világítanának rajta. Ezzel lehetne javítani az olvashatóságon. De nekem sajnos nincs lehetőségem CNC marásra .
Másik ötletem, hogy egy panelen csak a ledek legyenek, minden mást egy másikra terveznék és szendvicsbe szerelném a két panelt.
(#) hackerfish válasza jpocok hozzászólására (») Máj 23, 2011 /
 
Szia!
Szerintem a bináris órában pont az a lényeg, hogy bináris, és csak az tudja leolvasni, aki veszi a fáradságot, és megtanulja, gyakorolja.

Ennyierővel sima szegmenses kijelzős órát is építhetnél, azt könnyű leolvasni.
(#) jpocok válasza hackerfish hozzászólására (») Máj 23, 2011 /
 
Természetesen ismerni kell a bináris számrendszert a leolvasáshoz. Nekem történetesen diplomám van róla, hogy megtanultam. Csak annyit javasoltam, hogy legyen szellősebb az elrendezés és legyen mellette referencia (a világító plexi). Mert például hogy olvasod le akkor, ha az éjszaka sötétjében mindössze 1-2 LED világít és nincs mihez viszonyítani?
Jobban örültem volna, ha a fölösleges megjegyzés helyett inkább a CNC marásra vonatkozóan adnál tippet, mert tényleg akarok készíttetni egy olyan plexit, amit leírtam (de azért nincs harag ).
(#) Hp41C válasza jpocok hozzászólására (») Máj 23, 2011 /
 
Sziasztok!

Egy érdekes, sötétben is leolvasható változat. A foltokat az alakjukból lehet felismerni...
(#) (Felhasználó 20218) válasza jpocok hozzászólására (») Máj 23, 2011 /
 
De amit én raktam fel az decimálisan mutatja az időt, plusz elé akarok rakni számokat inverzbe nyomtatva írásvevítőfóliára. Lehet, hogy közel vannak a ledek, de már legyártottam, beforrasztottam, nem zavaró. Különben van benne egy ordító nagy hiba! A PIC tükörszimetrikusan van beletervezve véletlenül, így vagy SMD szerűen kell beforrasztani, vagy áttervezni...
A plexis ötlet jó, egy módon még a CNC is elkerülhető. Arra gondoltam, hogy szerezni kell egy régi karos írógépet, szétszedni és a karokat lángban felmelegítve belenyomni vele a mintát a pelxibe.
Következő: »»   19 / 26
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem