Fórum témák

» Több friss téma
Fórum » GPS óra LED kijelzőkkel
Lapozás: OK   1 / 4
(#) kocsgab002 hozzászólása Okt 31, 2008 /
 
Sziasztok!

Azért nyitottam egy ilyen témát, mert nem találtam hasonlót.
Egy olyan projektben kérném a segítségeteket, mely egy órát valósít meg GPS szinkronizációval (vezetékes modul, soros port, NMEA protokoll)
A kijelzés LED kijelzőkön valósulna meg, És csak az időt írná ki másodperc pontosan.

Ha esetleg kész áramköre van valakinek, szívesen venném azt is. Pic mikrovezérlővel szeretném megvalósítani az áramkört, gondolom valami RS232 illesztő is kellene hozzá.

előre is Köszönök minden segítséget.

Kocsgab002
(#) pako válasza kocsgab002 hozzászólására (») Okt 31, 2008 /
 
Üdv!
A modulnak a típusát megadhatnád. Amivel eddig találkoztam, az 3.3V-ról működött, az is soros portos volt, de nem RS232-es volt. Szerintem a tiéd sem az, a jelszint 0 és 3.3V a soros lábakon. Ezt kell illesztened 5V-ra. Nem tudom, milyen PIC-et akarsz használni, én 18F452-t ajánlanák. Azt direktben járathatod 3.3V-ról, így nincs szükség szintillesztésre, és bőven marad elég lába 6 kijelző multiplexelésére.
(#) Gafly válasza kocsgab002 hozzászólására (») Okt 31, 2008 /
 
Amit en hasznaltam az 5V-os modul volt es egy 16F84-es PIC
dolgozta fel az adatokat. Tehat eloszor azt dontsd el hogy
hany voltos a modulod...

Szerintem tokeletesen eleg ha csak a modul soros portjat
figyeled, adas ag nem is kell. Legalabbis az a modul amit
en hasznaltam "alapbol" adta folyamatosan az idot.
(#) sirály12 válasza kocsgab002 hozzászólására (») Okt 31, 2008 /
 
Ami nekem van, az 5V-os, és ad TTL és RS232-es jelet is. Az időt folyamatosan adja, ahhoz nem kell adni, csak venni. Asszem minden NMEA-0183-as ilyen.
(#) proba válasza Gafly hozzászólására (») Okt 31, 2008 /
 
A br305 ről tudtok valamit? Illetve erre a feladatra tudtok valami olcsóbb/jobb vevőt?
(#) kocsgab002 válasza pako hozzászólására (») Nov 1, 2008 /
 
Szia!

Én ezt a modult választanám:
hestore.hu
Tud TTL és RS232 jelszintet is, így átgondolva nem kellene illeszteni PIC-hez.
Egyébként 16f84-szeretnék használni.

üdv.
Kocsgab
(#) kocsgab002 válasza Gafly hozzászólására (») Nov 1, 2008 /
 
Szia.

Tudnál egy kicsit bővebben írni a te munkádról? Hogy oldottad meg a feladatot?
Azt hiszem az a modul amit előbb belinkeltem olyan amilyet te írtál, alapból nyomja az adatokat.
Első nekifutásra Topi óráját (óriáskijelzős) szeretném felhasználni.

köszi és üdv.
(#) sirály12 válasza kocsgab002 hozzászólására (») Nov 8, 2008 /
 
Én is ilyet vettem innen. :yes:

Jó kis kütyü, egy ablakba kitéve is stabil jelet talál, úgy hogy a tető is belóg neki. Nekem nagyon bevált.
(#) kocsgab002 válasza sirály12 hozzászólására (») Nov 9, 2008 /
 
Szia!

és mire használod? építettél belőle valamit?
(#) Pet91 hozzászólása Nov 9, 2008 /
 
Hello!
Ez a téma hatalmas (csak drága)!
Ha megvan várhatunk belőle cikket? Szerintem jó lenne.
(#) 256kb hozzászólása Nov 9, 2008 /
 
a frekik

jel.pdf
    
(#) suttyo100 hozzászólása Szept 29, 2014 /
 
PIC16F877A GPS LED órát szeretnék építeni a következő komplettnek látszó projekt alapján.
A leírást a következő oldalon találtam:
Bővebben: Link
Protelben teszteltem a hex filét , de nem fut rendesen.
Átnézné valaki? Előre is nagyon köszönöm.Ja és a lényeg,hogy egy iskola
homlokzatára lenne felszerelve teljesen ingyen.
A hozzászólás módosítva: Szept 29, 2014
(#) suttyo100 hozzászólása Szept 29, 2014 /
 
Ja a pdf fájlok és forráskódok innen származnak:
Bővebben: Link
Bővebben: Link
Bővebben: Link
Bővebben: Link
Bővebben: Link
(#) proba válasza suttyo100 hozzászólására (») Szept 29, 2014 /
 
Lehet protelben nem tudod szimulálni a GPS jelet. Anélkül lehet nem is indul el.
(#) suttyo100 válasza proba hozzászólására (») Szept 29, 2014 /
 
Protelben van DCCLOK amin lehet állítani a hz-t,de nem tudom a gps milyen hz-n dolgozik és hova kellene felakasztani.Az ata_clock pdf-et ha nézed szerinted hova kellene a dcclock?
(#) suttyo100 hozzászólása Szept 29, 2014 /
 
A proteles file.
(#) suttyo100 hozzászólása Szept 29, 2014 /
 
Most találtam egy leírást gps nélkül is mennie kéne.
(#) vandorbot hozzászólása Márc 1, 2016 /
 
Autóba szeretnék egy pontos jól látható időórát. Volt egy gagyi gyári bigyóm, ami külső-belső hőmérsékletet is mért. Amíg meg nem fagyott a télen az LCD kijelzője. Nagy melegben meg teljesen feketére váltott. Vagyis led kijelzős kellene. Szempont még, hogy ha lekapcsolom a gyújtást, akkor se felejtse el az időt, macerás minden indításnál újra beállítani.
Arra is gondoltam, úgy lenne a legjobb, ha a szélvédő aljára vetítené a fényt. Ehhez a tükörképét kellene jeleznie. Ötletek ? Javaslatok ?
(#) gabilow hozzászólása Márc 2, 2016 /
 
Szia Bakman!
Tetszik az órád, főleg,hogy pontos nem kell mindig állítgatni.
Amit még tudhatna: hőmérséklet kijelzés (18B20) ,esetleg másodperc és választható dátum kijelzés.
Remélem, hogy megcsinálod és akkor megépítem szép nagy kijelzőkkel.
Előre is köszi, szép munka.
(#) Bakman válasza gabilow hozzászólására (») Márc 2, 2016 /
 
Szia!
Igen, lehet fokozni, ki meddig szeretné. Az elsődleges cél az volt, ami a cikkben szerepel: mutassa a pontos időt, ahogy nekem tetszik. Egy csomó dolgot el tudok képzelni még, de minden igényt kielégíteni elég nehézkes, nem is szívesen vállalom. A forráskód (ami nagyon egyszerű) szabadon hozzáférhető, így mindenki annyi extrát épít bele, amennyit akar.

Perpillanat nem tervezem a bővítését. Esetleg az automatikus téli-nyári átállást, de igazábol azért nem került bele, mert reménykedem, hogy egyszer megszűnik ez az ostobaság is.
(#) sooty válasza Bakman hozzászólására (») Márc 3, 2016 /
 
Szia, elvi síkon gondolkodva: a DST országonként változó szabályok szerint kerül bevezetésre (vagy nem :- ) ) és a programodban lévő időzóna állítás nem elég a DST hely meghatározásához. Ettől eltekintve itthon az automatikus nyári időszámítás átálláshoz kellene tudni, hogy mikor van március ill. október utolsó vasárnapja. Ehhez kell a dátum, amit most nem olvas ki a program. A GPS által adott UTC időnél sajnos abban se lehetünk biztosak, hogy még az a nap van, amit az NMEA mondatból kiolvastunk. Még szerencse, hogy hajnali 2-kor, amikor azórát előre kell tekerni az UTC szerinti már azonos dátumot mutat az itthoni dátummal. Akkor csak egy jó öreg öröknaptár algoritmus kell, hogy el lehessen dönteni, hogy vasárnap van-e és 3. hó 23 után vagyunk. Jól gondolom, vagy van egyszerűbb mód? ( Ha mondjuk szeretnénk időnként a dátumot is megjeleníteni pl. éjszaka is, akkor mindent át kell számolni 1 vagy 2 órát hozzáadva. Ilyenkor végig megy minden szökőévestül mindenestül. Van erre valami függvény a flowcode-ban, vagy ezt is meg kell írni ? )
A hozzászólás módosítva: Márc 3, 2016
(#) sooty válasza sooty hozzászólására (») Márc 3, 2016 /
 
Idézet:
„3. hó 23 után vagyuk-e”

Akarom mondani 24 után vagyunk-e.
(#) Hp41C válasza sooty hozzászólására (») Márc 3, 2016 /
 
A megoldás ott van a Mule-2 Nixie órában. Dátumból JDN számítása, (JDN mod 7) a hét napja...
(#) sooty válasza Hp41C hozzászólására (») Márc 3, 2016 /
 
Köszi! Akkor csak számolni kell: jd = ( 1461 * ( y + 4800 + ( m - 14 ) / 12 ) ) / 4 +( 367 * ( m - 2 - 12 * ( ( m - 14 ) / 12 ) ) ) / 12 -( 3 * ( ( y + 4900 + ( m - 14 ) / 12 ) / 100 ) ) / 4 + d - 32075
A hozzászólás módosítva: Márc 3, 2016
(#) Bakman válasza sooty hozzászólására (») Márc 3, 2016 /
 
A Matrix oldalán van kész algoritmus a DST számításához, ami megadja adott évben a két dátumot (DST kezdete ill. vége). A GPS-től meg lehet tudni a dátumot is, így már könnyen kiszámolható, mikor kell plusz egy órát hozzáadni a GPS időhöz.
(#) Hp41C válasza sooty hozzászólására (») Márc 3, 2016 /
 
Lehet így is:
  1. Scratch3 = (14 - Month) / 12;
  2.         Scratch4 = Century - (Century >> 2);
  3.         year16 = (int)(Century) * 100 + Year;
  4.         Year16_3 = year16 - Scratch3;
  5.         mlow = 12 * Scratch3;
  6.         mlow += Month - 3;
  7.         m = mlow * 153;
  8.         m = (m + 2) / 5;
  9.         m += Year16_3 >> 2;
  10.         m += Day - Scratch4;
  11.         jdn = 365 * (unsigned long)Year16_3;
  12.         jdn += m;
  13.         jdn += 0x1A431FL;
  14.         DayOfWeek = jdn % 7;
(#) sooty válasza Bakman hozzászólására (») Márc 5, 2016 /
 
Szia, nem találom azt az algoritmust
Azonban az ekövetkező 85 alkalomra (ha a DST szabályai nem változnak meg) az alábbiakkra jutottam:
1. A DST márciusban kezdődik és októberben ér véget 217 napig tart, tehát ha pl. 26.-án kezdődött, akkor 29-én van vége mindíg stb.
2. 7 eset lehetséges, attól függően, hogy mikor kezdődött a DST (az utolsó 7 napban mikorra esik vasárnap), tehát 0-6-ig elkódolható hogy egy évben mikor kezdődik a dst.
3. Ha a számsor megvan, az év ismeretében kiolvasható a kezdő és végdátum eset sorszáma a hét lehetséges fajta közül.
4. A számsort tárolhatjuk egy stringben. Ha nem akarjuk egy case-zel kezelni és úgy visszalakítani, akkor eltárolhatjuk úgy, hogy eleve tartalmazza a kezdő és végnap dátumát.
5. Mivel 7 alapú lehet a szám a hónap végétől számított eltérés (DSTk=31-k, DSTv=31-v) , akkor a tárolandó karakter kódja 7*DSTk+DSTv+45 (k=kezdet márciusban, v=vége októberben, 45 hogy könnyen olvasható karakter legyen). Akkor 2000-2099-ig rendre:
RZ19BJRZ9ABJZ19AJRZ1ABJR19ABRZ19BJRZ9ABJZ19AJRZ1ABJR19
ABRZ19BJRZ9ABJZ19AJRZ1ABJR19ABRZ19BJRZ9ABJZ19A
Ebből úgy kapjuk meg a kezdő és végdátumot, hogy vesszük az évnek megfelelő sorszámú karaktert (c) és k=31-((c-45)/7), v=31-((c-45) MOD 7)
Pl. 2016-ban: k=31-((74-45)/7) = 27, v= 31-((74-45) MOD 7) =30
A hozzászólás módosítva: Márc 5, 2016
(#) sooty válasza sooty hozzászólására (») Márc 5, 2016 /
 
Na jó ezt elbonyolítottam, a második számot nem érdemes tárolni és a sorrendet is fölösleges volt megfordítanom, elég lett volna csak 25-öt hozzáadni a tárolt számhoz. Így most 31-ből kell kivonni,
Tehát 2000-2099-ig :
(560134561234601245602345012356013456123460124560234
5012356013456123460124560234501235601345612346012)
0= március 31-tól október 27-ig
1= március 30-tól október 26-ig
2= március 29-tól október 25-ig
3= március 28-tól október 31-ig
4= március 27-tól október 30-ig
5= március 26-tól október 29-ig
6= március 25-tól október 28-ig
(#) Hp41C válasza sooty hozzászólására (») Márc 5, 2016 /
 
  1. if (( Month < 3) || (Month > 10))
  2. {
  3.         Flags2.SummerTime = 0;
  4. }
  5. else
  6. {
  7.         if (Month == 3)
  8.         {
  9.                 if (Day < 25)
  10.                 {
  11.                         Flags2.SummerTime = 0;
  12.                 }
  13.                 else
  14.                 {
  15.                         if (DayOfWeek == 6)
  16.                         {
  17.                                 if (Hour >= 2)
  18.                                 {
  19.                                         Flags2.SummerTime = 1;
  20.                                 }
  21.                                 else
  22.                                 {
  23.                                         Flags2.SummerTime = 0;
  24.                                 };
  25.                         }
  26.                         else
  27.                         {
  28.                                 if ((Day - (unsigned char)(DayOfWeek + 1)) >= 25)
  29.                                 {
  30.                                         Flags2.SummerTime = 1;
  31.                                 }
  32.                                 else
  33.                                 {
  34.                                         Flags2.SummerTime = 0;
  35.                                 };
  36.                         };
  37.                 };
  38.         }
  39.         else
  40.         {
  41.                 if (Month == 10)
  42.                 {
  43.                         if (Day < 25)
  44.                         {
  45.                                 Flags2.SummerTime = 1;
  46.                         }
  47.                         else
  48.                         {
  49.                                 if (DayOfWeek == 6)
  50.                                 {
  51.                                         if (Hour < 3)
  52.                                         {
  53.                                                 Flags2.SummerTime = 1;
  54.                                         }
  55.                                         else
  56.                                         {
  57.                                                 Flags2.SummerTime = 0;
  58.                                         };
  59.                                 }
  60.                                 else
  61.                                 {
  62.                                         if ((Day - (unsigned char)(DayOfWeek + 1) >= 25)
  63.                                         {
  64.                                                 Flags2.SummerTime = 0;
  65.                                         }
  66.                                         else
  67.                                         {
  68.                                                 Flags2.SummerTime = 1;
  69.                                         };
  70.                                 };
  71.                         };
  72.                 }
  73.                 else
  74.                 {
  75.                         Flags2.SummerTime = 1;
  76.                 };
  77.         };
  78. };
(#) Bakman válasza sooty hozzászólására (») Márc 5, 2016 /
 
Most már én sem.

Kicsit később feltöltöm a működőt. Meg kell adni az évet és a makró visszaadja a nyári időszámítás kezdeti és végi dátumát. Ha a kettő között van a GPS idő, akkor egy extra órát hozzá kell adni és készen is van.
Következő: »»   1 / 4
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