Klocka med 7-segment led, mega168 och dcf77 mottagare

Berätta om dina pågående projekt.
Explorer45
Inlägg: 29
Blev medlem: 26 mars 2009, 13:25:16

Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av Explorer45 »

Hej alla forumrävar!
Är ny här på forumet och hoppas jag har hamnat i rätt forumdel nu. Jag är en total nybörjare när det gäller microcontroller och har bara programmerat i java och vb (vilket jag inte är speciellt bra på), C är alltså nytt för mig. Jag kommer använda mig av en AVR mega168 som jag har hemma och 6st 7-segments led. Jag funderar även på att bygga in en mottagare för dcf77 som finns att köpa på conrad (art. 641138-62). Då jag är totalt novis vad det gäller detta så skulle jag behöva lite råd och tips inför bygget. Vad bör man tänka på? Blir det alldeles för svårt att implementera dcf77 mottagaren? Vad mer kan man tänkas behöva? etc.

Tack på förhand!

EDIT: Tror den här tråden just nu passar bättre i idé sektionen så om någon vänlig mod skulle kunna flytta den så vore jag väldigt tacksam. :)
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av Swech »

Börja med att styra dina 7 segment... ta dcf mottagaren lite senare...
det finns mycket för dig att pyssla med och pröva med endast 7 segmentarna :)
Hur hade du tänkt ? skall du etsa ett kort eller bygga på experimentplatta?

hursomhelst - lycka till och ge inte upp
Swech
Explorer45
Inlägg: 29
Blev medlem: 26 mars 2009, 13:25:16

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av Explorer45 »

Jo, tänkte det kunde vara en bra idé hehe. Grejjen var att det verkade som den enklaste och bästa lösningen att kontrollern styr klockan automatiskt via signalen från dcf77 mottagaren. På så sätt går klockan aldrig fel och man behöver inte programmera och löda knappar för att ställa tiden.

Jag skippar nog etsningen denna gången och kommer att köra med PDIP på en experimentplatta. Sen gör jag en låda till den med CNC:n.

Tack Swech :)
Användarvisningsbild
StaXico
EF Sponsor
Inlägg: 110
Blev medlem: 5 april 2006, 15:31:24
Ort: Göteborg

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av StaXico »

DCF77 kräver en hel del kod men det finns färdiga biliotek som du kan använda, exempelvis det här.

Observera att du måste få atmegan att hålla tiden hyfsat bra mellan uppdateringarna från dcf77, men det har du säkert redan tänkt på. En extern kristall att driva atmegan på är då att rekommendera.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av Swech »

Personligen tror jag dock att den interna RC oscillatorn räcker till
om man använder sig av kalibreringen av den.

DCF signalen uppdateras om jag förstår det rätt varje minut.
så säg att man missar 4-5 avläsningar så kan klockan knappast
gå så mycket fel under dessa 4-5 minuter.

Pratar vi timmar / dagar så är det bättre med kristall förståss

Men är man nybörjare så finns det tillräckligt med saker att lära sig,
kan man undvika kristall så här i början så är det ett bekymmer
mindre.

Swech
Explorer45
Inlägg: 29
Blev medlem: 26 mars 2009, 13:25:16

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av Explorer45 »

Tack för länken StaXico. :) Kan man implementera koden rakt av i atmega168:an?
Då jag enbart skall visa timmar, minuter och sekunder på klockan så kanske det räcker med den interna oscillatorn som Swech säger?
Jag har även tänkt om och det blir förmodligen att etsa då man slipper en hel del kablar och det blir snyggare så.
Användarvisningsbild
rickardg
Inlägg: 195
Blev medlem: 5 november 2008, 07:37:09
Ort: Rönninge
Kontakt:

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av rickardg »

Värt att notera är att conrads DCF77-mottagare inte har så bra förstärkning, när jag använde en sådan mottagare i en klocka jag gjorde för ett par år sen så hade jag svårt att få in signalen på vintern, uppdateringarna kommer kontinuerligt med en bit per sekund vilket blir en tidsangivelse i minuten men på vintern kunde det ofta dröja en dag mellan störningsfria klockangivelser, på sommarhalvåret är signalen starkare och då fungerade det nästan hela tiden. När jag gjorde klockan bodde jag i en lägenhet med betongväggar i Linköping, beroende på var och hur man bor blir signalen olika stark. Min klocka var baserad på en ATMEGA88 och DC77-koden är väl separaerad så den koden bör du kunna kopiera rakt av och köra i en ATMEGA168 om du vill.
Explorer45
Inlägg: 29
Blev medlem: 26 mars 2009, 13:25:16

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av Explorer45 »

Okej, jag bor i lägenhet i Göteborg även den med betongväggar. Jag får helt enkelt klara mig med den dåliga mottagningen på vintern. Det är ändå i grund och botten bara ett kul projekt att jobba med på fritiden.
Tack för koden! Kan nog hjälpa en hel del sen när det skall programmeras. Vad visade din klocka (tid, datum etc.)? Använde du dig av en separat kristall?
Användarvisningsbild
StaXico
EF Sponsor
Inlägg: 110
Blev medlem: 5 april 2006, 15:31:24
Ort: Göteborg

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av StaXico »

Ja Swech har rätt med att det inte krävs någon extern oscillator.
Visste inte att DCF signalen sändes ut så ofta.

Koden kan nästan användas direkt.
Om jag inte missar något så ska detta räcka:
I början av koden står det

Kod: Markera allt

#include <avr/iom16.h>

// crystal frequency in Hz
#define F_OSC 2457600
Där måste du ändra till

Kod: Markera allt

#include <avr/iom168.h>

// crystal frequency in Hz
#define F_OSC 1000000
#include <avr/iom168.h> innebär att du inkluderar definitionsfilen för atmega168 som översätter koden till processorns egna adresser, ex INT0 blir adressen till pinne 4.
#define F_OSC 1000000 innebär att du använder en klockfrekvens på 1MHz, vilket atmegan kommer förinställd som. (Du kan ställa om detta till 8MHz)

Sedan kopplar du in pulsen från DCF77 till INT0 på atmegan, vilket motsvarar pin 4 enligt:
Bild

Sedan behöver du även ändra i "make" filen som ligger på sidan, men jag rekommenderar att du skapar ett projekt i ex. AVRStudio och låter det fixa en automatiskt genererad "make-fil"
Användarvisningsbild
rickardg
Inlägg: 195
Blev medlem: 5 november 2008, 07:37:09
Ort: Rönninge
Kontakt:

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av rickardg »

Explorer45 skrev:Vad visade din klocka (tid, datum etc.)? Använde du dig av en separat kristall?
Du kan kolla på klockprojektet så ser du att min klocka bara visar tiden med två RGB-LED:ar, en för timmar och en för minuter, så den visar inte datum men DCF-koden läser in datum osv i en struct så det går lätt att få tag i den informationen. Jag använde den vanliga externa kristallen för att hålla reda på tiden men egentligen funkar den interna RC-oscillatorn antagligen tillräckligt bra när man har DCF-korrigeringar då och då.
Explorer45
Inlägg: 29
Blev medlem: 26 mars 2009, 13:25:16

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av Explorer45 »

Kanon, tack StaXico! Jo, har planerat att använda AVRStudio så det blir bra.
Sen hörde jag något lite oroande av en i skolan idag. Vi hade labb i digital- och datorteknik och medans man satt och småpratade lite med min labbpartner så kom vi osökt in på just mikrokontroller. Jag berättade om mitt projekt och enligt han så är tydligen den interna oscillatorn i atmega168 enormt instabil och om jag inte använder en extern kristall så kan klockan gå fel med flera minuter under en timma om det är så att dcf77 tappar signal (vilket tydligen är rätt vanligt häromkring). Stämmer detta?
Explorer45
Inlägg: 29
Blev medlem: 26 mars 2009, 13:25:16

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av Explorer45 »

rickardg skrev:
Explorer45 skrev:Vad visade din klocka (tid, datum etc.)? Använde du dig av en separat kristall?
Du kan kolla på klockprojektet så ser du att min klocka bara visar tiden med två RGB-LED:ar, en för timmar och en för minuter, så den visar inte datum men DCF-koden läser in datum osv i en struct så det går lätt att få tag i den informationen. Jag använde den vanliga externa kristallen för att hålla reda på tiden men egentligen funkar den interna RC-oscillatorn antagligen tillräckligt bra när man har DCF-korrigeringar då och då.
Tack för länken. Ska läsa igenom den och se om man kan lära sig ett och annat.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Klocka med 7-segment led, mega168 och dcf77 mottagare

Inlägg av Swech »

Den är säkerligen tillräckligt stabil. Tittar man i databladet så ändrar den sig med matningsspänningen så
har man inte stabil matning så kan det bli problem.
MEN det kommer att finnas många fler fallgropar eftersom du måste använda dig av någon av de inbyggda
timers/counters för att hålla reda på tiden mellan uppdateringar från DCF. Håller man inte tungan
rätt i mun så kan det lätt bli att man tappar precision,
t.ex. har man en "konstig" kristall / frekvens så kanske man frestas att ladda om räknaren vid overflow för
att få fram exakt 1 sekund. Gör man detta felaktigt kan det lätt bli att man tappar lite räknarpulser.

Jag tyckar att du har hittat ett perfekt delprojekt. Starta med RC oscillator, försök få processorn att räkna
med bra precision och byt därefter till kristall och jämför.

Swech
Skriv svar