Numitron Klocka & termometer (1 / 8 steg)

Steg 1: DS1307 realtime klockan



Tidtagningen kommer att ske genom en DS1307 IC. Detta är en händig liten IC, eftersom det inte bara håller koll på tiden men också för datum och dag i veckan.

För denna lilla projekt använder vi endast det att hålla reda på tiden. Det måste därför en 32.768kHz kvartskristall ansluten mellan stift 1 och 2. Vi kan också lägga till ett batteri med + till stift 3 och -till pinne 4. Detta gör IC att fortsätta arbeta när mainpower är avstängd. Om du inte vill använda den här funktionen, du kan bara ansluta stift 3 till stift 4 och allt kommer att fungera bra.

Stift 5 och stift 6 kommer att användas för att överföra data till våra mikroprocessor. De bör vara ansluten till SCL och SDA stiften på mikroprocessorn. Dessa rader ska pull high en 4K 7 pullup motstånd.

BASCOM gör arbetet med I2C enheter lätt. Du behöver bara veta 4 kommandon:

  1. I2cstart: denna commant kommer start I2c kommunikation
  2. I2cstop: det här kommandot kommer att stoppa I2c kommunikation
  3. I2crbyte var: detta kommando läser en byte från enheten och lagrar den i 'var'
  4. I2cwbyte var: detta kommando skriver variabeln 'var' till enheten

Använda kommandot Skriv eller Läs räcker inte, vi måste också berätta för enheten om vi vill skriva till det eller läsa från den. Vi gör detta genom att använda rätt adress. Dessa adresser finns i databladet. Skriva-adressen för DS1307 är D0H och den Läs-adress D1H (H bakom det säga oss att det är hexadecimala siffror).

DS1307 skickar och vill ta emot data i BCD-format. Detta är en variant på binär för visar där varje siffra representeras av fyra bitar. Mer om det här. Lyckligtvis konvertering från BCD till decimal och visum versa är mycket lätt i Bascom.

  • var = Makebcd(var) kommer att konvertera decimala, hexadecimala och binära till BCD
  • var = Makedec(var) kommer att konvertera hex, binär och BCD till decimal

Data lagras på IC i register. Du kan tänka dig dem som gammaldags filingcabinets. Varje låda har sitt nummer och innehåller lite info:

00H sekunder
01H minuter
02H timmar
03H dag
04 H datum H: berätta att dessa är hexadecimala siffror.
05H månad
06H år
07H kontroll
08H till 3FH Ram

Om vi vill läsa eller lagra vissa uppgifter har vi först att berätta den enhet i vilken låda vi vill vara. Vi kan göra detta genom att skriva hex koden för att lådan till enheten. Enheten kommer att sedan ge oss tillgång till att lådan. När du skriver eller läsa något från eller till detta register enheten kommer automatiskt hoppa till nästa. Så finns det ingen anledning att skicka platsen varje gång

Nu kan sätta detta i koden:

För denna kod måste du dim timmar som byte, minuter som byte och sekunder som byte.

Det första kommer att vi ställa klockan:

Sekunder = Makebcd(Seconds) vi konvertera vår variabler i BCD-format
Minuter = Makebcd(Minutes)
Timmar = Makebcd(Hours)

återställa hours.6 vi återställa bit 6 av hoursbyte se till att
vår klocka körs i 24h modus. Om bit 6 är 1 då den
går klockan i 12h modus och bit 5 kommer då
innehåller data som AM/PM.

I2cstart
I2cwbyte & HD0 vi berätta för den enhet som vi vill skriva en byte
2cwbyte & H00 börjar vi i kassan för sekunder hex 00
I2cwbyte sekunder lägga sekunder
I2cwbyte minuter lägga till minuter
I2cwbyte timmar lägga timmar
I2cstop

Nu är vår klocka inställd! Kan läsa från det nu.

I2cstart
I2cwbyte & HD0 vi säga enheten att vi vill skriva ett byte.
I2cwbyte & H00 ber vi att enheten ska gå till sekunder registret.
I2cstop
I2cstart
I2cwbyte & HD1 vi säga enheten att vi vill läsa byte.
I2crbyte sekunder, Ack vi läsa data och erkänna att vi vill ha
att läsa den nästa byten också.

I2crbyte minuter, Ack
I2crbyte timmar, Nack vi inte ackowledge här så vet att enheten
som vi gjort läsning.

I2cstop

Timmar = timmar och & B00111111 vi bort bitar 6 och 7 eftersom de innehåller andra
data. Om du är i 12h modus, måste du
ta bort bit 5 för

Timmar = Makedec(Hours) vi konvertera tillbaka till decimalformat.
Minuter = Makedec(minutes)
Sekunder = Makedec(seconds)

Nu vet vi vilken tid det är.

I nästa steg tar vi en närmare titt på DS18B20.

Se Steg
Relaterade Ämnen

Skrivbord Klocka/termometer tillverkad i valnöt, skrot, cutoff bit.

jag använder en gammal bit valnöt göra detta skrivbord Klocka/termometer. En annars värdelös träbit. Massor av roliga och funktionella.Vänligen prenumerera på min kanal!http://www.youtube.com/Channel/UCoiFVDvzJX8tXXF5GsUPc_QFacebook: https://www.face...

Med en enda RGB LED (eller en LED strip) för att visa information: klocka, termometer och en konstig kommunikatör

En av de första projekten som jag gjorde med en Arduino var en jul ljus krans. I själva verket var det tillverkade av en enkel RGB LED strip skär i två, som Arduino har endast 6 hårdvara PWM utgångar. Jag ville inte det att Visa trivial regnbågar och...

En DVD spelaren hacka

detta är en beskrivning av öppen källkod/öppen hårdvara projekt av en fjärrkontrollerad Arduino (Freeduino) baserade Klocka/termometer utnyttja strömförsörjning och VFD panel från en trasig DVD-spelare i en skräddarsydd akryl hölje. Syftet med projek...

Asymmetrisk kondensator drivraketer: Biefeld-Brown effekten

Tillbaka på 1920-talet, en ung man vid namn Thomas Townsend brunt upptäckte att om han ut en kondensator med Kickspänning riktar strömmen, skulle kondensatorn uppvisar dragkraft i riktning mot den + positiv elektrod. Av och på för resten av sitt liv...

Robot röst: Hur man gör någon krets Talk

använder den senaste talsyntes IC, de flesta kretsar kan göras att tala ord av ditt val. Detta kan vara praktiskt för att göra en talande robot eller andra talande enheter. Det kan hjälpa programmering en mikrokontroller, eller helt enkelt så att du...

Bygga själv en klocka och termometer

Hej killar,I detta steg för steg instruktion,Jag vill dela mitt experiment på att skapa en klocka och termometer medArduino Mega 2560, LCD 16 x 2, termiska motstånd sensor och DS1307 RealtidsklockaFler projekt: http://rickelectronicproject.blogspot.c...

Gör dig själv en hemmagjord klocka med termometer med ATMEGA128

i detta steg för steg jag vill dela mitt experiment med ATMEGA128 timer och avbryta med DS1307 och NTC för att Visa hemmagjord klocka och termometer.Det visar timme, minut, sekund, veckodag, dag i månad och år, månad, och temperaturen i CelsiusNjut a...

2cm höjd 7 segment 6 siffror AVR klocka med 4 siffror termometer

Detta projekt är att förklara hur man skapar själv en 6 siffror 7 segment klocka med AVR microcontrollerSteg 1: Förbered delarna för detta projekt Vi måste förbereda en delar för detta projekt,6 x 7 segment gemensam anod6 x PNP transistorer för förar...

Helgen projektet klocka datum termometer och luftfuktighet med Arduino mega

killar, jag vill dela min helg projekt på att skapa en klocka med fukt och temperaturgivare,Det är med DHT11 sensor, RTC DS1307, LCD 16 x 2 och Arduino Mega 2560,Hålla läsning och lycka tillSteg 1: Förbered alla delar behövs... i detta experiment beh...

LCD klocka med hebreiska kalendern daterar, och en termometer

Detta projekt är en klocka som kan visa tid, datum och temperatur. Den huvudsakliga unika funktionen av denna klocka är möjligheten att visa datum på hebreiska (judiska) kalenderformat. Vissa andra särskilda funktioner är:Du kan ställa in tid och dat...

Klocka med termometer med Arduino, i2c 16 x 2 lcd, DS1307 RTC och DHT11 sensor.

Hello! Det var ett tag jag har inte postat något på Instructables, men nu gjorde jag ett enkelt projekt som jag sett på internet i olika former. Jag lyckades bygga en kod med hjälp av andra koder som jag har hittat på internet och jag måste säga det...

Bygga en globe klocka

Tja, jag tittade runt min skräp högen att se vad jag kunde kombinera för ett nytt projekt, och vad jag fann var en gammal globe och en vägg termometer som ständigt satt fast på 80 grader. Verkade som en bra kombination för ett projekt!Vad jag gjorde...

Digital klocka med 7 Segment Display kontrolleras med hjälp av fjärrkontrollen

det finns sorter av digital klocka finns i vårt dagliga liv. Grundläggande digital klocka kommer att oftast ha några inbyggda funktioner som väckarklocka, kalender och termometer förutom display klockan information. Några av de förskott digital klock...

Ensiffriga numitron klockan

Numitrons är snygg uppvisning anordningen lik nixie rör men designade för mycket lägre spänningar. Numitrons är i princip glödlampa visar i vilket filament skapa segment.De har en retro-look som jag gillade så mycket. Jag köpte 6 x IV-9 ryska numitro...

VFD klockan/Nixie inomhus/utomhus termometer Retro passar Linden mantel klockan

Jag beslöt att göra något jag inte hade sett ännu och kombinerade (2) separat elektronik med (2) olika typer vakuumrör visar för att göra denna unika display. Nixie rör för termometer och VFD (vacuum flouresent display) för klockan.Steg 1: leveranser...

Sju Segment Display termometer - Arduino baserat

Idag kommer jag visa dig hur man gör egna 7 segment - 2 siffrigt - termometer med Arduino uno och DS18B20 temperaturgivare.Jag föredrar att bygga mitt eget arduino baserade krets med ATmega328p uno innehavaren, men detta är frivilligt för dig. Du kan...

Hemgjord 6 siffror precision termometer med Farenheit, Reamur, Kelvin och Celcius

killar,I denna artikel vill jag dela mitt experiment på att bygga en hemmagjord digital termometer med 6 siffror precision,Jag använde en enkel NTC och ATMEGA128.Låt oss komma igång med förbereder delarna...Steg 1: De delar som behövs för detta exper...

Raspberry Pi Barometer väder klocka

I detta instructable jag ska visa dig hur man bygger en grundläggande termometer / Barometer klocka med en Raspberry Pi 2 med en BMP180 I2C sensor visar på en Adafruit 4 siffriga 7 segment I2C display. Pi använder också en DS3231 realtid I2C klocka m...

Billig och enkel Digital termometer

jag hade att övervaka mitt akvarium temperatur. För ändamålet kom idén till mig därför inte använda digitala Bordsklocka som också kan visa miljöns temperatur. De flesta av er kommer att ha sådana en klocka hemma jag är säker på.Steg 1: Vad du behöve...