Musik spelas väckarklocka (13 / 24 steg)

Steg 13: DS1307 Realtidsklocka IC



The DS1307 är en klassisk krampa av DIY klockor.

http://www.Maxim-IC.com/Datasheet/index.MVP/ID/2688
Läst databladet, innehåller den kommandona för chip och andra detaljer. Måste du veta det här när du tittar på min källa koden så att du vet vad som pågår.

Vad gör det? Det spår tid, så din microcontroller inte behöver. Det kommer även spåra tid med hjälp av ett mynt cellsbatteri medan dess huvudsakliga strömmen är avstängd, så du inte får det klassiskt 12:00 blinkar som händer med gamla väckarklockor när strömmen går. Oh och det spår datum också.

Observera att det finns mycket bättre alternativ till DS1307 idag med bättre funktioner, men jag hittade detta chip i min samling av udda delar, så jag kommer att använda den.

Detta chip kräver följande saker runt det: en klocka kristall, en batteribackup (3V coin cell från dollar store kommer senaste 9 åren), en strömförsörjning och en frikoppling kondensator.

Mikrokontroller kommer att meddela DS1307 via I2C bussen (mellan integrerad krets). I2C bussen är även känd som TWI (två tråd gränssnitt, använder det bara två kablar). Den är utformad för kommunikation mellan flera integrerade kretsar. Se bilaga D vill veta mer om I2C och TWI.

Vad vi behöver göra med DS1307 är enkel, vi behöver bara ställa in tid och läsa tiden.

DS1307 håller sina data i flera register. Se datablad, tabell 2, sidan 8. Det visar informationen i binary coded decimal-format, som vår källkod kommer att koda och avkoda. Vi kommer att skriva till dessa register när vi ställa in tiden och läsa från samma register att hämta tiden.

En bra beskrivning av I2C bussen ges på sidan 10 i databladet. Avsnittet AC elektriska egenskaper i databladet säger vår I2C buss måste köra på 100 KHz eller lägre (detta är konfigurerbar inuti vår källkod), ha detta i åtanke. DS1307 adress är 1101000, kom ihåg att också.

Exempelvis vill vi ställa sekunderna, så registret är 0x00. Vi först skicka över I2C
0b11010000
Detta korrigerar DS1307 och säger att vi vill skriva
Vi skickar sedan
0x00
att ange registret 0x00
Vi skickar sedan numret vi vill ställa, kodad i binary coded decimal-format

Sedan, om vi vill läsa tillbaka sekunderna, registret är igen, 0x00, skickar vi först
0b11010000
Observera att adressen till den, men vi fortfarande ange att vi vill skriva
Varför anger "skriva" när vi vill läsa? Eftersom vi inte har berättat DS1307 där vi vill läsa från (ange registret adress inuti DS1307). Så skickar vi
0x00
då avslutar vi överföringen av uppgifter
Nästa, skicka
0b11010001
nu är vi att ta itu med DS1307 och som anger vi vill läsa
sedan kör vi klockan att läsa tillbaka data, som DS1307 placerar på data linjen för oss. Vi kan sedan avkoda data från binary coded decimal format.

Det är viktigt att förstå att eftersom vi använder våra AVR: s inbyggda TWI modul för I2C kommunikation, det vet att automatiskt frigöra SDA raden när vi anger "läsa" i den första byten som vi skickar. Maskin- och programvara (vi använder "twi.c" från "Wire" bibliotek för Arduino). ALLT är automatiserat, även bekräftelser.

För våra ändamål, kommer vi läsa och skriva alla tidsinställningar på en gång, för effektivitet. Detaljerna för hur detta fungerar är i databladet. Du kan också se min källa koden senare. Idén är densamma för singelregister, men vi gång på gång läsa/skriva utan att avsluta överföringen. Du får se hur detta fungerar genom databladet, min källa koden och min logik analyzer vågformer.

Bifogat är en demonstration av ett enkelt program som ställer in tiden och visar sedan tiden på din LCD. Det kommer att Visa använder TWI bussen ska utföra en/flera byte Skrivskydd (Visa den vågformer jag har förutsatt).

Lägg till DS1307 i din krets enligt min diagram först. En bild med högre upplösning är inom den. ZIP-paketet. Viktigaste är att DS1307 behöver 5V, och vi har ändrat det Teensy ++ att köra på 3.3V, diagrammet visar dig var du kan få 5V från Teensy ++.

Du behöver LCD fortfarande är ansluten om du vill se den klocka arbetande. Serial-uttaget vilja stilla utställning du felsöka meddelanden.

Jag har bifogat den logik analyzer vågformer så kan man tydligt se hur I2C ser ut, databladet för DS1307 visar också liknande vågformer, studera vågformer tillsammans medan undersöker också den data som utbyts (t.ex. vad kommandot skickas, vad var svaret), prova matchande händelserna till punkterna i källkoden.

Se Steg
Relaterade Ämnen

Musik spelas med Summer används Webserver (med WIZwiki-W7500 styrelsen)

Jag kommer att presentera en spela piano Webserver.Du kan spela piano med webserver som har en denna WIZwiki-W7500 projekt av bara openning webbplatsen om du följer detta innehåll.Det är väldigt lätt och enkelt sätt.Låt oss börja!Steg 1: Förbered met...

Blinkande, musik spelas Death Star

Dödsstjärnan i Star Wars är en av de coolaste super vapen någonsin leka från mänsklig fantasi.Om du inte håller, titta bara på denna GIF tills du är helt omvandlas till Dödsstjärnan fläkt. Ta tid på dig. Låt det slinga tills du älskar:Det enda proble...

Mono Headset musik spela för iDevice

Steg 1: Brand upp Cydia Öppna cydia och gå till Sök flikenSteg 2: Sök för BT Mono wee för anmälan Efter att ha sökt installera detSteg 3: inställning Nu öppna inställningarSteg 4: Gå i anmälan och knacka på RedigeraSteg 5: Det sista steget drar BT fr...

Nybörjarguide till att spela Piano

STEG 1 Varför spela Piano?STEG 2 titta på PianoSTEG 3 hem nycklar och A-GSTEG 4 vad är skalor?STEG 5 behandlingen musik: IntroduktionSTEG 6 rader och utrymmenSTEG 7 skrivet Piano musik och rytmSTEG 8 nycklar och tonarterSTEG 9 få det tillsammans med...

Pregophones... Musik för det ofödda barnet.

jag väntar mitt första barn i ett par månader, och som många första gången föräldrar, jag har forskat allt som finns att veta om dessa små underverk. Min fru och jag har diskuterat musik för våra barn, men har inte kunnat hitta en lätt eller praktisk...

Kontrollera din musik trådlöst med en Logitech mus

har du någonsin behövt styr musiken trådlöst? Med en bit av programvara och en Logitech mus är detta lätt. Vi ska gå över hur du konfigurerar musen så att du kan pausa, hoppa över och spela tills du får slut på batterier.Här är vad du behöver:Windows...

Legenden om Zelda musikal bröstet

Som många av er vet Legend of Zelda är en av de mest populära spelserien någonsin har gjorts. Ocarina of Time är förmodligen det mest populära spelet i serien med totalt 7,6 miljoner exemplar sålda under sin livstid. En av de mest ikoniska funktioner...

Visuell musik (med lasrar!)

Har du någonsin undrat hur en döv person njuter musik? Tja, de kan inte, eftersom du måste höra musik och de flesta människor vet att döva inte kan höra. Hur som helst, har jag skapat ett sätt att "se" musik genom att studsa en laser av en spege...

Ljusshow på musik

Jag har alltid velat ha ett billigt sätt att göra en ljusshow som skulle arbeta med musik. I detta instructable jag kommer att visa dig hur man byggde min ljusshow. Jag hoppas du älskar musik och ljus och att detta instructable kommer att vara till h...

Falangafone - Använd gester som att styra din musik!

På HackPrinceton 2014, min lagkamrat och jag byggde en robust, hand rörelse-kontrollerad musiksystem. Vi brukade Hoppa rörelse och dess utvecklare API fånga hand och finger data, och vi utnyttjade Python-språket och Pyo bibliotek för Python att bearb...

Spela in pc ljud (endast programvara) till mp3 gratis

Laddade upp 16 Apr 2011I den här videon visar jag dig hur vi spela in något ljud från pcJag använder till exempel en tube sidaMen på samma sätt kan du spela in ljud från cd/dvd, musik, spel, windows ljud, utan mikrofon, kablar, kabel, jacκKanske du k...

Spela ljud med Intel Edison och Arduino använder en Bluetooth-högtalare

Detta är en kort introduktion om hur man spelar ljud genom Intel Edison styrelsen när du använder Arduino som en programmeringsmiljö.Sedan Arduino styrelsen för Intel Edison inte har någon ljud capbabilities, vi använder en billigt Bluetooth-högtalar...

Smart telefon passiva förstärkare

Min version av en billig och kul att bygga passiva förstärkare för din smartphone. Det finns massor av versioner ute, några vackert gjort i trä, andra gjort med papper och olika andra byggmaterial. Min version använder lätt tillgängliga objekt från e...

Handgjorda 1: a födelsedag Popup musikaliska kort

Även om jag köpte massa saker från butiker för min 1 år gamla baby. Jag vill göra nåt på min egen för mitt barn. Så jag bestämde mig att göra ett födelsedagskort. Mitt mål är att se söta leende på läpparna när ser mitt kort. Jag vann till sist.Det är...

Audio Laser

musik lagras på min mp3-spelare som magnetiska mönster som omvandlas till vibrationer av elektrisk ström. I mina hörlurar spolar skapar dessa vibrationer, i sin tur ett vibrerande magnetfält. Eftersom det finns en permanent magnet inuti spolen, orsak...

Hur kan man vara en god värd

Hosting är naturligt för vissa människor, medan resten av oss är scrounging och skriker order till våra barn sekunder innan våra gäster anländer. Men när dörren öppnas och din gäst(er) möts, stress är skriven över hela ansiktet, och mest troligt, man...

Aktivera mus och tangentbord funktionalitet på en iPod Touch eller en iPhone! [Linux]

Någonsin velat använda din iPod Touch eller iPhone som en "dator"? Nu kan du!Du behöver:-en dator med Linux Ubuntu 10,04 [äldre versioner kan sannolikt fungera, snälla berätta isåfall.]-en Jailbroken iPod Touch/iPhone med WiFi aktiverat-Veency f...

Flera terminal kul.

Med en windowed miljö har du i princip bara en skärm. att spela med. Med Linux har du flera dependiing på distributioner och systemet begränsningar. Vi kommer att spela med knapparna för att växla terminaler och även logga in som andra människor på s...

Lätt skrivbord för Windows

fick en tråkig letar Windows skrivbordsbakgrund? Vill ha något original och cool looking men har inga kunskaper? Här är ett enkelt sätt att göra mycket coola skrivbordsbakgrunder med fri programvara du kanske redan har på din Windows-maskin.Steg 1: t...