Arduino binära väckarklocka (4 / 16 steg)

Steg 4: Tidhållning

Att hålla reda på tiden jag använde bara arduino och standard arduino funktion millis(). Denna metod kommer inte att vara helt exakt, eftersom 16Mhz kristalloscillator, som avgör processorns klockfrekvens arduinos CPU, förmodligen inte är exakt 16 000 000 Hz. Den goda nyheten är att du kan mäta hur inexakt klockan är och kompensera för det i koden, eftersom förskjutningen bör vara konstant under en viss tid.

Mäta hur inexakt din arduino är:
Som tidigare sagt arduino kommer att ha en liten tid fel, felet beror på kristalloscillator och kommer att vara olika för varje arduino, att mäta hur mycket min arduino klocka skiljde sig från rätt tid, jag programmerat det att skriva ut tid (timme, minut och andra variabler) via följetong. Jag sedan låta det gå för lång tid (över natt och mer) och jämfört den arduino tid med en klocka som jag visste var exakta, i början och i slutet av min mätning period. Dividera skillnaden med den tid provet tog för att beräkna felet varje timme. Jag tyckte att min arduino är ca 0.4 sekunder snabbt varje timme. Jag brukade exacttimenow.com att få exakt tid, men om du har en klocka som du vet är mycket exakt, Känn dig fri att använda det istället.
Koden jag brukade hålla tiden är en anpassning av lite kod som jag hittade på arduino forum. Jag skrev om det med if-satser i stället för division och modulo, för att se om det skulle finnas någon hastighet skillnad och fann att den om-versionen är mer än 15 gånger snabbare (även om båda är fortfarande ganska snabbt, mer info om testet här).

Eftersom jag vill ha andra saker i min huvudloop (som kontroll touch sensor, kontroll av knapptryckningar, etc.) hända så ofta som möjligt, använde jag snabbare versionen.

Koden:

Varje gång klockfunktionen kallas det lägger tid i millisekunder sedan senast det kallades till en variabel m, när en sekund har passerat (m > 999) den andra variabeln ökas av en och m återställs. När variabeln sekunder når 60, minut variabeln kommer att öka med ett, och sekunder sätts till noll. Samma sak händer med variabeln minuter; När den når 60, lägga till 1 i timmar och återställa minuter. Variabeln timme kommer att återställas när den når 24.

För att kompensera att min arduino är 0.4 sekunder snabbare evey timme, minska jag sekunder med två sekunder varje femte timme.

____________________________________________________________________

The clock() function:

// CLOCK VARIABLES:
#define MAX_MILLIS_VALUE 34359738
unsigned long current_millis_value = 0;
unsigned long previous_millis_value = 0;
unsigned long m = 0;
int seconds = 0;
int minutes = 0;
int hours = 0;

void clock()
{
current_millis_value = millis();
if (current_millis_value < previous_millis_value) // if millis overflows
{
m += MAX_MILLIS_VALUE - previous_millis_value + current_millis_value;
}
else // if millis has not overflown
{
m += current_millis_value - previous_millis_value;
}
if (m>999)
{
seconds++;
m = m-1000;
}
if (seconds>59) // if seconds == 60
{
minutes++;
seconds = 0;
}
if (minutes>59) // if minutes == 60
{
hours++;
minutes = 0;
if(hours%5==0) // adjust the time with -2 seconds every 5th hour.
seconds = seconds - 2; // this will cause seconds to be -2,
// therefore seconds can't be unsigned.
}
if (hours>23) // if hours == 24
{
hours = 0;
}

previous_millis_value = current_millis_value;
}

______________________________________________________________________

Se Steg
Relaterade Ämnen

LilyPad Arduino binär klocka

LilyPad Arduino binär klocka instruktioner!Förteckning över material:LilyPad Arduino 328 moderkortet - $21,95https://www.Sparkfun.com/products/9266LilyPad FTDI grundläggande Breakout - $14.95https://www.Sparkfun.com/products/10275Mini USB-sladd - $3,...

Cwik klocka v1.0 - An Arduino binär klocka

ÖversiktDetta är en guide till att bygga en Arduino-driv klocka som använder lysdioder för att Visa 24-timmarsformat (timmar och minuter) som binära siffror, en analog mätare att Visa sekunderna, en switch för att växla mellan tidsvisning och tidsins...

Arduino binär klocka med LED-matris

Denna webbplats har många fina inlägg som beskriver byggandet av armbandsur. Jag är oerhört skakig, emellertid, och har svårt med någon lödning. Jag ville därför göra mig från en 8 x 8 MAX7219-kontrollerade ledde matrisen.Steg 1: Läsa BCD binär klock...

Arduino binär klocka

har en "arduino hjärnan" att visa oss vad är klockan i binär sätt. Den första raden av lysdioder är timmarna och det andra anger protokollet. Måste du lägga till upp till vara på tiden. Det kan fungera med ett 9v batteri eller med en nätadapter....

Min Arduino binär klocka

Hej från ItalienÄven om många klockor skapas binära, var mitt projekt inspirerad främst till detta:http:// mycket smart och rolig.Jag försökte att förbättra utformningen och för att lägga till något personligt.Jag tycker det är ett bra resultat i slu...

Arduino Real tid väckarklocka med temperatur och LED belysning. Fjärrstyrda

Arduino klocka, med batteribackup (realtidsklocka), tid, datum, Alarm, temperatur, LCD utgång, IR-fjärr ingång, viloläge, LED-belysning (10 X) röd och blå multi-mode.Steg 1: Steg 1: delar listaArduino klocka, med batteribackup (realtidsklocka), tid,...

Arduino Powered binär klocka

detta instructable kommer att hjälpa dig att bygga en Arduino binär klocka. Orignial idén för detta instructable är designad av Daniel Andrade. Min instructable använder ytmontering komponenter, men kan enkelt anpassas för att genomgående hål kompone...

Misslyckande & framgångssaga av Arduino klocka

Jag beslutade att bygga en Arduino binära armbandsur. Jag vet ett armbandsur bör vara små i storlek som det är en bärbar projekt. För att valt jag utanpåliggande montering enhet (SMD) som SMD LED, TQFP Atmega IC och SMD motstånd. Som controller vald...

OFFscope - offline oscilloskop (Arduino + SD kort snabb avverkning)

Detta är inte realtid oscilloskop!Först skaffa du signal genom att spara/logga det till SD-kort. Sedan granska du förvärvade signalen på din PC.Denna oFFline oscilloskop är avsedd för fordonsindustrin sensor diagnostik. 99% av automotive sensorer fun...

Quiz Game Controller med hjälp av "Ljus och ljud Buzzers" och Arduino

fara stil frågesport spel är favoriter för att skapa spänning och pedagogiska instruktioner samtidigt. Lärare, summer camp rådgivare och även industrin pedagoger hitta denna typ av spel för att skapa intresse och engagemang från deltagarna.Tanken bak...

Smart alarm: med Arduino och velostat

Syfte:Vakna upp är den svåraste delen av dagen, och för de flesta, det är att komma ur sängen del. Syftet med Smart Alarm projektet är att skapa en interaktiv väckarklocka som kräver att användaren att fysiskt göra en åtgärd/pose som stänger av larme...

Enkel elektronik organisation

som många andra elektroniska entusiaster som jag måste ha en konstant tillförsel av material för oss att hålla byggnad, hacking, eller bara leker med elektronik. Men som förmodligen någon av oss har kommit att inse behöver vi en hel del utrymme och l...

Driver Circuts

Låt oss göraUtforska publiceraDudela vad du makeFeatured:Intellekten IoTLaserskärningHacks LifeSmyckenMed Instructables kan du dela vad du gör med världen och utnyttja en växande gemenskap av kreativa experter. Fungerar det» nya Instructable»Prototyp...

HackerBoxes 0008: Clockwork

[cue temamusik]Urverk: Denna månad, utforskar HackerBox hackare tid, klockor och tidtagning. Det finns ingen tid som nuvarande. Detta Instructable innehåller information för att arbeta med HackerBoxes #0008.HackerBoxes är den månatliga box prenumerat...

Väckarklocka med ledningar (eller Arduino)

Detta är en väckarklocka byggd på ledningar microcontroller och anpassade för Colombia (den tar in i konto semester och visar alla texter på spanska). Väckarklockan visar timme, datum, månfas, anpassade meddelanden av dagen, samt ikoner att ange akti...

12 tim binär klocka, timmar och minuter bara, DS1307 RTC, i2C, Arduino-Nano

Ett tag nu har jag velat göra en binär klocka, men efter att ha tittat jag bestämde mig något bara lite annorlunda. Så jag beslöt att endast visar timmar och minuter och endast visa en 12 timmars klocka, innebär detta du bara behöver 3 kolumner och m...

Bygga IllyClock - baserade Arduino väckarklocka i en kaffe kan

uppdaterad augusti 4, 2011En strömlinjeformad version är nu beskrivs här.Syftet med detta projekt är att bygga en väckarklocka som liknar den som presenteras i videon nedan.Bredvid inhägnad, den ursprungliga inslaget i IllyClock visar tiden i färger:...

LED Dawn / Sunrise väckarklocka, nattlampa & säkerhet ljus - Arduino kompatibel

som nätterna förlängs successivt under hösten 2011, jag upptäckt glädjen med Arduino och trodde att det skulle vara ett bra sätt att genomföra något som jag har velat ha en lång stund - ett skonsamt sätt att vakna upp på en vintermorgon. Tyvärr, det...

Arduino-Powered binära termometer

jag nyligen förvärvat en Arduino Uno och letade efter en cool "komma igång" projekt. Jag beslöt att göra en termometer, som satsen har jag haft alla nödvändiga delar (termistor, sladdar, motstånd, lysdioder). Genom ett par iterationer, jag äntli...