Watt-your-konsumtion? -Trådlös energimätare (3 / 7 steg)
Steg 3: Den time keeper
Så flyttade jag till den realtidsklocka pusselbiten. På denna punkt det är värt att diskutera varför finns det en RTC i kretsen. En strategi för att lösa mitt problem är att helt enkelt skicka en rå räknare från Arduino och sedan göra alla tunga lyft på mottagarsidan. Men vid närmare eftertanke gillade jag idén som jag kunde använda batteriet backas RAM på DS1307 som en butik för min counter och att mitt "paket" med data skulle kunna sända den tid som räkningen var korrekt. Detta kan tyckas vara ett märkligt beslut men jag tror långsiktigt kommer att tjäna mig väl.
DS1307 är en i2c enhet och det finns ett antal artiklar på enheten på internet (samt gränssnitt till en Arduino), så jag kommer inte att koncentrera sig på konster och knep för enheten. Istället skall jag illustrera en fallgrop jag kom över och den slutliga designen jag gick för.
Min första idé var att ha DS1307 RAM vara butiken för disk och som under avbrottet hantering rutin jag skulle läsa och sedan uppdatera räknaren. Dock upptäckte jag att även tråd biblioteket i Arduino är verkligen användbart det brukar fungera i rutinen avbrott (som är rättvist nog).
Min andra strategi, som fungerade, var att upprätthålla en räknare i Arduino RAM och sedan, efter en konfigurerad fördröjning i huvudsakliga slingan, skriva värdet till DS1307 RAM.
Kopplingsschemat visar anslutningar för DS1307 och hur jag hakade upp till Arduino (Observera att Futurlec mini styrelsen jag använde redan har krävs pull-up motstånd och därför de inte visas i diagrammet).
Så nu hade jag den andra byggstenen på plats. Jag hade ett sätt att fånga ett datum och tid och ett räknarvärde uppdateras av rutinen avbrott.