Digital väckarklocka *Uppdaterad 25.01.2007*

Berätta om dina pågående projekt.
idiotdea
Inlägg: 471
Blev medlem: 26 juli 2006, 16:11:34
Ort: Vasa, Finland
Kontakt:

Digital väckarklocka *Uppdaterad 25.01.2007*

Inlägg av idiotdea »

Det här blir mitt första riktiga projekt inom elektronik. Jag tänkte göra en "helt vanlig" väckarklocka med 4 siffrors LCD-display. För inställning av tid och alarm används rotationssensorer.

Motivering
Med de flesta vanliga väckarklockorna ställer man in alarmtiden genom att "klicka sig fram" till rätt tid. Problemet med detta är att det tar väldigt länge att ställa in tiden. Sedan klickar man alltid nu som då en gång för mycket. Någon annan som känner igen sig när man skall ställa in klockan på t.ex. 8.00 och i misstag klickar en gång för mycket, och så tvingas man klicka 23 gånger till? Detta problem löser jag med hjälp av rotationssensorer vilka tillåter mycket snabbare "sökning" och även fungerar i båda riktningarna.

Hårdvara
Klockan är uppbyggd kring en PIC16F628 som använder sig av den interna oscillatorn för att hålla tiden. Displayenmodulen består av 4st 7-segment displayer som drivs av varsin 4511 (BCD to 7-segment driver). Displaydrivarna är multiplexade för att kunna uppdatera varje display skiljt för sig. För justering av tid och annat används som sagt rotationssensorer. Senare tillkommer fler knappar/brytare för diverse funktioner.

Mjukvara
Hjärtat i klockan - PIC:en - kommer jag att mata med ett program jag själv skriver i assembler. Rotationssensorerna kopplas in på PORTB<4:7> och genererar en interrupt när någon av ingångarna ändras. Timer interrupten kommer att användas för att hålla reda på tiden och vid behov uppdatera displayerna och ringa alarmet.

Tidtabell
Jag började på allvar fundera på att göra väckarklockan nångång i början av året, så allting går inte så snabbt. Om den är klar till julen är jag nöjd.

13.08.2006
Jag har införskaffat nästan alla komponenter jag behöver till klockan. En del testkopplingar har gjorts. Assemblerkoden för rotationssensorerna är till största delen skriven (jobbigt!). Komponentschema och kretskortslayout påbörjad för displaymodulen (det blir ett "styrkort" och ett displaykort).

21.08.2006
UV-boxen klar och displaymodulens kretskort tillverkat. Rutinen för att läsa av rotationssensorer är i princip klar.

Bilder
Bild
En tidig skiss av hur jag har tänkt mig att klockan skall se ut (matchar min förstärkare).


Ge gärna kommertarer, förslag till förbättringar osv.

*edit: uppdaterade tidtabellen
Senast redigerad av idiotdea 25 januari 2007, 21:26:19, redigerad totalt 3 gånger.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Ja, en kommentar - välj ett noggrannare klocka till systemet. En bra kristall rekomenderas. INTOSC är inte så noggrann att det blir någon vidare klocka av det... 0,1% är fortfarande MÅNGA miinuter per månad i fel..
Användarvisningsbild
flippy
Inlägg: 110
Blev medlem: 10 december 2005, 13:49:44

Inlägg av flippy »

Med en klockkristall med en tolerans på 20 ppm blir det ungefär en sekund per månad, med en tolerans på 0,1% blir det istället 259200 sekunder.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Ungefär 100 gånger fel dina beräkningar på 0,1% osc...

En cirka 40 minuter som maxfel per månad med 0,1% är lite mer rätt...
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

Jag hade nog satt dit en RTC direkt, eller gör iallafall layouten så att möjligheten finns.
Användarvisningsbild
Jine
Inlägg: 1795
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

DS1302 skulle göra jobbet bättre.. :)

Även så kan du göra lite ÖVERCORE projekt och interfaca den till datorn också? :) Trådlös 433mhz kommenication? :)

Ds1302.. Kalender och allt.. :)
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2685

Finns som samples också.. ps ;)
Användarvisningsbild
flippy
Inlägg: 110
Blev medlem: 10 december 2005, 13:49:44

Inlägg av flippy »

Så går det när man är trött :shock:
2592 jämfört med 51,84 sekunder blir det, en jäkla skillnad är det iaf
idiotdea
Inlägg: 471
Blev medlem: 26 juli 2006, 16:11:34
Ort: Vasa, Finland
Kontakt:

Inlägg av idiotdea »

Tack för alla kommentarer! Det verkar som att jag blir tvungen att använda en extrern kristall då. Åtminstone planera in en i schemat. Hoppas bara att jag har tillräckligt men in/out pinnar =).

Jag hade tänkt mig att man kunde korrigera felet på den interna oscillatorn i mjukvaran. Man låter klockan gå i t.ex. en veckas tid och mäter sedan hur mycket den går fel. När man vet den tiden kan man sedan räkna ut att man för varje x:e timer interrupt måste lägga till eller ta bort nån sekund från tiden. Är detta något ni tror att kan fungera? Detta förutsätter förstås att felet på oscillatorn är konstant, vilket det kanske inte är?

Jine: Ja, det verkar ju intressant, men jag tror nog att jag skippar det till en början åtminstone.

Som jag skrev så är det mitt första elektronikprojekt, förutom möjligen att få några led:ar att lysa, så det är inte bara att tuta och köra. Det känns som att det kanske är ett lite stort projekt att börja med, så jag försöker hålla det så simpelt som möjligt.
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Den enda fördelen att använda en RTC i ditt fall är om du vill ha batteri-bakup för att klockan inte ska tappa tiden om det blir strömlöst.
Annars tycker jag att du ska göra som du har tänkt men använd en kristall för att driva picen med istället.
Men det roligaste skulle nog vara att göra batteri-bakup utan att använda RTC.
(ja, jag är lite allergisk mot RTC)
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1353
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Inlägg av baron3d »

Måste naturligtvis förses med en DCF77 mottagare :D
Då blir den någorlunda exakt.
Användarvisningsbild
Icecap
Inlägg: 26629
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Ett alternativ är DS32KHZ från Dallas (eller besläktade i serien), då har man en noggranhet som ger +- 1 minut/år.

Ska man vara riktig petig vore en DCF77 definitivt grejen, kombinera det med en RTC med DS32KHZ och vi börjar prata atomklocka-liknande tillstånd.

RTC'n kan fint backas upp med en supercap, klockan ställer ju in sig själv när strömmen återkommer. Ska man vara petig kan det vara en idé att ha batteri-backup så att klockan fungerar även vid strömavbrott, man kan då stänga av displayen och spara ström då.
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Att låta klockan gå en vecka och kolla hur mycket fel den går och sen korrigera i mjukvaran är en bra ide' (dessutom väldigt roligt och spännande).
Men den interna oscillatorn har för dålig stabilitet så en kristall är ett måste.

I den här tråden har jag postat lite kod för att göra en klockbas med ett timer-interrupt där man lätt kan kallibrera tidbasen.
http://www.elektronikforumet.com/forum/ ... hp?t=12258
Källberg
Inlägg: 30
Blev medlem: 2 augusti 2006, 07:15:52
Ort: Göteborg

Inlägg av Källberg »

Ännu roligare vore det om du tåg in klocktiden från radiosändaren i tyskland...
Användarvisningsbild
flippy
Inlägg: 110
Blev medlem: 10 december 2005, 13:49:44

Inlägg av flippy »

Sändaren i Tyskland heter just DCF77
Källberg
Inlägg: 30
Blev medlem: 2 augusti 2006, 07:15:52
Ort: Göteborg

Inlägg av Källberg »

Det visste jag också... :roll:
Skriv svar