Barebone digitalklocka rev2



Hej stötarna...

Här är en uppföljning för digital klocka projektet jag har skrivit om ett år sedan. Jag har inte funderat på drivan av modulen RTC! Jag har hittat den tendens att vara plus 1 RTC minut för varje 21 dagar passerat, det är enorma. Detta är redan efter att omorientera xtal oscillatorn i modulen DS1307 bryta ut för att vara så nära det chip som möjligt, som föreslog tillsammans med andra överväganden, i maxim app Anmärkning.


Alternativ som övervägs:

1. optimera RTC: titt för bästa xtal, matchande kapacitanser, etc, etc <--omöjligt

2. Lägg till manuell dekrement knappen för minuter värdet <--detta innebär ändringar i maskinvara. Den lätt väg ute!

3. auto-kalibrering av värd mikrokontroller


Algoritm:

Vad jag behöver är en mjukvaran-baserat automatisk kalibrering rutin. Efter några försök (och faktiskt att hitta tid att göra det!), kom jag upp med detta... Spara den cal factor 21 (dagar per minut) och dag den sista cal gjordes i ett bekvämt läge i beständiga. Varje gång klockan drivs upp (i mitt fall det vill säga varje morgon 07:05., utom helger och helgdagar ;), mcu läser dessa värden och jämför med RTC startdatum om multiplar av 21 dagar har redan passerat. Om ja, dekrement minut värdet med antalet motsvarande sedan spara nuvarande dag tillbaka till den platsen "lastCalDay". Samma gör check på nästa makt...


Genomförandet:

För cal platsen har DS1307 en 'general-purpose batteriuppbackat ram med obegränsad skriver'. Vi behöver två 8-bitars byte vardera för de calFactor och lastCalDay. För att räkna dagar skillnad, kommer att vi konvertera RTC datum (månad och dag nummer) till en enda heltal från ett referensdatum. För detta använder vi första dagen i innevarande år som referens, dag nummer 1. Detta innebär att det maximala antalet dagar mellan cal inte bör överstiga 365. Med dag nummer är praktiskt för att få skillnaden och också för att spara datumet till ram. Lägg bara till avsättning för nya år när dagar räkna går tillbaka från 365 till 1. En gång bestäms dagar skillnaden vi kan sedan stegvis minskning motsvarande antal minuter. För kod enkelhet valde jag att hoppa över cal om den resulterande minuten skillnaden kommer att rulla tillbaka den timmar siffran. Se attachmed för komplett kod genomförande.


Resultaten:

Min validering visade fungerar som avsett. Naturligtvis, koden och faktiskt algoritmen kan fortfarande vara optimerad för noggrannhet och elegans men nu den här en arbeten för mitt syfte bara bra!

Låt mig veta om du behöver mer information om du vill göra detta projekt... Förslag är också välkomna.

Tack. Njut!



Relaterade Ämnen

Barebone digitalklocka

här är en snabb och enkel digital klocka som du kan fästa till din skåp vägg. Bra konversation lappar och talar om när det är dags att åka hem...För maskinvara: Jag använde en tiny2313 (du kan använda alla små med minst 14 IO), motstånd, 7segment (4d...

Stora 7-segment digitalklocka

använda endast 2 kondensatorer, 3 motstånd, 4 stora sju segment Display, 1 xtal, 2 växlar och 1 Microcontroller PIC, kan du bygga detta ledde digitalklocka huvudkretsen.Du kan använda gemensamma anoden eller gemensam katod display, bara Välj vilken d...

Wall-E digitalklocka

Hej till alla, denna jul har gett mig denna fina klocka i Wall-E, men tyvärr är det mycket bullriga och under natten det var outhärdlig, så jag har tänkt göra den till en digital klocka.Steg 1: Öppna digital klocka Inuti kub digital klockaSteg 2: Öpp...

Hemgjord TTL krets 24-timmars digitalklocka

efter att ha tagit en intro-nivå EE-klass på lokal community college beslutat att göra en digital klocka med grundläggande ICs och 7-segment visar. De tidigare bilderna visar processen för att göra det under loppet av ungefär en månad.Du kan enkelt r...

Barebones denhöjd ballong Cam

Hög höjd ballongflygning, eller HAB, innebär skicka en nyttolast på kameror, vetenskapliga instrument eller andra element på en resa i stratosfären, fastspänd på en väderballong. När Ballongen spricker, en fallskärm för nyttolasten försiktigt tillbak...

Romerska siffran digitalklocka

A Digital romerska siffran klockaSe den i aktion i quicktime-filmer kopplade!Det finns många sätt att visa tiden i både analogt och digitalt, men aldrig sett mest är en digital romerska siffran klocka. Jag har skapat ett med hjälp av följande delar:-...

Solid Wood digitalklocka

hur man bygger en trä digital klocka drivs av en atmega168 (arduino) med inbyggd väckningsfunktion och spel.Jag tänkte först att göra detta när jag såg en LED-klocka som omfattas av ett träfanér. Jag gillade den när jag såg det, tills jag såg priset....

Toy Mod: Konvertera en TR-550 Star trek Tricorder i en digitalklocka med fotoram

jag skulle använda min leksak TR 550 Star Trek TNG Tricorder som ett fall för min Mini Arduino miljö bildskärm, men det passade. Så jag hittade en Digital nyckel-kedjan bildram köpte jag på Radio Shack på clearance för 5 spänn, och gissa vad, det pas...

Stapeldiagram Visa digitalklocka

CD4017 är en mångsidig integrerad krets (och dess små broder CD4022) och har oändlig applikationer. Digital klocka projektet görs från 8CD4017´s plus en 7812 eller 78 L 12 för leverans. Tid hänvisning erhålls från AC line frekvens(50-60 Hz)och delas...

Arduino digitalklocka (med Charlieplexing LED, 7 segmenterar skärmar)

detta är min andra instructable. Jag hade bara en stämning av att göra en digital klocka. Men ville göra det en lärandeprocess. jag redan hade en sanguino jag kunde lätt ha använt det Atmega644 chip. Det skulle ha varit mer än tillräckligt. Men jag v...

Hur man gör en Arduino digitalklocka

Digitala klockorna är en av de stora uppfinningen inom vetenskap.Har du någonsin undrat "Hur att göra din egen digitala klockor, precis som i filmer!"???Tja jag har också tillbringat, min barndom i en dröm att byggt min egen digital klocka... så...

LED digitalklocka

detta instructable är att göra en DIY LED klocka.Steg 1: Designa formen Det första som jag gjorde var att göra en CAD-ritning i Autodesk. Ritningen visar uppsättningarna av helheter som ska borras. För min LED-matris gjorde jag ett rutnät med 8 x 5 d...

Stora 6 siffror sju Segment Digital klocka

detta är en min andra digitalklocka projekt. Som är att ha 5,5" höjd 6 siffror sju segment.Arbeta med PIC16F876A mikrokontrollerEffekt: 12V DC / Ampere: 1.2a MaxTidsvisning: timmar / minuter / sekunderLängd: 24 tumHöjd: 7 tumJag kommer till en fullt...

Komplett Digital klocka med närvaro Sensor (RTC - Alarm - PIR - temperatur - luftfuktighet - daggpunkt)

Hej duJag har redan gjort några digitala klockor projekt med Arduino inklusive LED och LCD-skärmar, men denna är mer speciell eftersom jag har infört en ny funktion med en rörelse-sensor (PIR).Se VIDEOHuvuddrag PIR (närvaro infraröd Sensor)RTC (realt...

2200 lumen luft kyls trä ficklampa

Hängivenhet."Ljus gryr och mörkret är sopat bort" - James BurkeJag ringer denna ficklampa Maxwell Mark jag uppkallad efter James Clark Maxwell, som gjorde betydande arbete med att förbättra idén först föreslagits av Michael Faraday att ljuset är...

Bygga en billig bärbar Wii Laptop

Min dagliga bussresa till skolan och tillbaka tar upp totalt en timme, och har tagit upp sammanlagt en timme för de senaste åren. Detta har aldrig varit mycket av en fråga för mig... men jag tror att det är de bästa DIY projekt som lösa icke-frågor....

Automatiserad Halloween godis Dispenser

Godis är laddad till en lång PVC rör hängande utanför balkongen. När en trick-or-treater närmar sig huset de se en halloween korg och lagt instinktivt sin hand ned. Ett ultraljud sensorn känner sina händer och skjuter ut en godis från röret.Steg 1: G...

Elektroniska LEGO DL-44 Blaster (ljus & ljud)

Uppdatering: detta projekt är nu tillgänglig på LEGO idéer --så säker att stödja det om du skulle vilja se det säljas i butiker en dag!Byggdes ursprungligen för Star Wars dag 2014, presentera jag ett projekt att jag har varit ständigt revidera och gö...

Säkerhetskopiera servern

lära sig hur till backningen din * nix rutan till en extern hårddisk (eller tapedrive utan större ansträngning). Jag täcka installationen av säkerhetskopiering mediet, med "dump", återställa, och även säkerhetskopiera filer från en fjärrserver t...