Numitron klok & thermometer (1 / 8 stap)

Stap 1: De DS1307 realtime klok


De tijdwaarneming zal worden gedaan door een DS1307 IC. Dit is een handige kleine IC, omdat het niet alleen houdt spoor van tijd maar ook van de datum en de dag van de week.

Voor dit kleine project zullen we alleen gebruiken om de tijd bij te houden. Het moet daarom een 32.768kHz kwartskristal verbonden tussen pin 1 en 2. We kunnen ook een batterij met + op pin 3 en pin 4 toevoegen. Hierdoor kunnen de IC blijven werken wanneer de mainpower is uitgeschakeld. Als u niet wilt dat deze functie wilt gebruiken, u kunt gewoon verbinden met pin 3 pin 4 en alles zal werken prima.

Pin 5 en pin 6 zal worden gebruikt om de gegevens overbrengen naar onze microprocessor. Zij moeten worden aangesloten op de SCL en SDA pinnen op uw microprocessor. Deze regels moeten door een weerstand van 4K 7 pullup hoge worden getrokken.

Bascom maakt het werken met I2C apparaten gemakkelijk. U hoeft alleen te weten 4 opdrachten:

  1. I2cstart: deze commant zal opstarten I2c communicatie
  2. I2cstop: met deze opdracht stopt I2c communicatie
  3. I2crbyte var: deze opdracht leest een byte van het apparaat en slaat ze in 'var'
  4. I2cwbyte var: deze opdracht schrijft u de variabele 'var' naar het apparaat

Met de opdracht schrijven of lezen is niet genoeg, we zullen ook moeten vertellen het apparaat of we willen naar het schrijven of lezen van het. Wij doen dit met behulp van het juiste adres. Deze adressen kunnen worden gevonden in het gegevensblad. Het schrijven-adres voor de DS1307 is D0H en het lezen-adres D1H (de H erachter vertellen ons dat dit zijn hexadecimale cijfers).

De DS1307 verzendt en ontvangt gegevens in de BCD-indeling wil. Dit is een variatie op binary voor diplays waarin elk cijfer wordt vertegenwoordigd door vier stukjes. Meer over dat hier. Gelukkig converteren van BCD naar decimaal en visa versa is zeer makkelijk in Bascom.

  • var Makebcd(var) = zal converteren naar decimaal, hexadecimaal en binair BCD
  • var Makedec(var) = hex, binary zal omzetten en BCD in decimaal

De gegevens worden opgeslagen op de IC in het register. U kunt hen voorstellen als die ouderwetse filingcabinets. Elke bak een nummer en bevat één of andere info:

00H Seconds
01H minuten
02H uur
Dag 03H
04 H datum The H vertellen ons dat dit zijn hexadecimale cijfers.
05H maand
06H jaar
07H controle
08H tot 3FH Ram

Als we willen lezen of opslaan van sommige gegevens moet we eerst vertellen het apparaat in welke lade die we willen zijn. Kunnen we dit door het schrijven van de hexadecimale code voor die bak aan het apparaat. Het apparaat zal dan verlenen ons toegang tot die lade. Nadat u schrijven of iets te lezen van of naar dit register die het apparaat zal automatisch naar de volgende dia springen. Dus is er geen noodzaak voor het verzenden van de locatie elke keer

Laat nu zet dit in code:

Deze code moet u dim uren als byte, als byte minuten en seconden als byte.

Eerst, zullen wij de klok instellen:

Seconden = Makebcd(Seconds) wij onze variabelen in de BCD-indeling converteren
Minuten = Makebcd(Minutes)
Uren = Makebcd(Hours)

Reset hours.6 We opnieuw instellen van bit 6 van de hoursbyte om ervoor te zorgen dat
onze klok in 24h-modus wordt uitgevoerd. Als bit 6 1 is dan is de
klok loopt op 12u modus en bit 5 zal dan
de AM/PM-gegevens bevatten.

I2cstart
I2cwbyte & HD0 We vertellen het apparaat dat we willen schrijven een byte
2cwbyte & H00 We beginnen bij het register voor seconden hex 00
I2cwbyte seconden toevoegen seconds
I2cwbyte minuten toevoegen notulen
I2cwbyte uur toevoegen uur
I2cstop

Onze klok is nu ingesteld! Laat nu van het lezen.

I2cstart
I2cwbyte & HD0 wij vertellen het apparaat dat we willen een byte schrijven.
I2cwbyte & H00 wij vragen het apparaat naar het register seconden.
I2cstop
I2cstart                                                                       
I2cwbyte & HD1 wij vertellen het apparaat dat we willen lezen bytes.
I2crbyte seconden, Ack We de gegevens lezen en erkennen dat we willen
om te lezen ook de volgende byte.

I2crbyte minuten, Ack
I2crbyte uur, Nack We niet ackowledge hier, zodat het apparaat weet
dat zijn we klaar lezing.

I2cstop

Uren = uren en & B00111111 We verwijderen bit 6 en 7 als ze andere bevatten
gegevens. Bent u in 12h modus, moet u
bit 5 te verwijderen

Uren = Makedec(Hours) We terug omzetten in decimale notatie.
Minuten = Makedec(minutes)
Seconden = Makedec(seconds)

Nu weten we hoe laat het is.

In de volgende stap zullen we een kijkje op de DS18B20.

Gerelateerde Artikelen

Cijfer numitron klok

Cijfer numitron klok

Numitrons zijn nette weergaveapparaten vergelijkbaar met nixie buizen maar worden ontworpen voor de veel lagere spanningen. Numitrons zijn in principe gloeilamp displays waarin door samensmelting van filamenten de segmenten maakt.Ze hebben een retro-
Bureau klok/Thermometer gemaakt van walnoot, schroot, cutoff stuk.

Bureau klok/Thermometer gemaakt van walnoot, schroot, cutoff stuk.

ik een oud stuk van de walnoot gebruik te maken van dit bureau klok/Thermometer. Een anders nutteloos stuk hout. Veel leuke en functionele.Kunt u zich abonneren op mijn kanaal!http://www.YouTube.com/Channel/UCoiFVDvzJX8tXXF5GsUPc_QFacebook: https://w
Met behulp van een enkele RGB LED (of een LED-strip) om informatie te tonen: klok, thermometer en een rare communicator

Met behulp van een enkele RGB LED (of een LED-strip) om informatie te tonen: klok, thermometer en een rare communicator

Een van de eerste projecten die ik deed met een Arduino was een Christmas lights garland. In feite, was gemaakt van een eenvoudige RGB LED-strip snijd doormidden, zoals Arduino slechts 6 hardware PWM outputs heeft. Ik wilde niet het aan vertoning tri
Een DVD speler Hack

Een DVD speler Hack

dit is een beschrijving van een open bron/open hardware project van een op afstand bestuurbaar Arduino (Freeduino) gebaseerd klok/thermometer voeding gebruik te maken en VFD paneel van een kapotte DVD-speler in een op maat gemaakte acryl behuizing. H
Asymmetrische condensator Thrusters: het Effect van Biefeld-Brown

Asymmetrische condensator Thrusters: het Effect van Biefeld-Brown

Terug in de jaren 1920, een jonge man genaamd Thomas Townsend Brown ontdekt dat als hij een condensator met hoogspanning gelijkstroom opgeladen, de condensator duw in de richting van vertonen zou de + positieve elektrode. En uitschakelen voor de rest
Robot de stem: How To Make Circuit spreken

Robot de stem: How To Make Circuit spreken

met de nieuwste tekst naar spraak IC, meeste circuits kunnen worden gemaakt om te spreken van de woorden van uw keuze. Dit kan handig zijn voor het maken van een pratende robot of andere pratende apparaten. Het kan helpen bij een microcontroller prog
VFD klok/Nixie binnen/buiten thermometer Retro Fit Linden mantel klok

VFD klok/Nixie binnen/buiten thermometer Retro Fit Linden mantel klok

Ik besloot te doen iets wat die ik nog niet had gezien en gecombineerde (2) afzonderlijke elektronica met behulp van (2) verschillende typen vacuümbuis displays te maken van deze unieke weergavenaam. Nixie-buizen voor de thermometer en VFD (vacuum fl
Bouw jezelf een klok en thermometer

Bouw jezelf een klok en thermometer

Hallo jongens,In deze stap-voor-stap instructies,Ik wil delen mijn experiment over het maken van een klok en thermometer metArduino Mega 2560, LCD 16 x 2, thermische weerstand sensor en DS1307 real timerklokMeer projecten: http://rickelectronicprojec
Maak jezelf een zelfgemaakte klok met thermometer met ATMEGA128

Maak jezelf een zelfgemaakte klok met thermometer met ATMEGA128

In dit stap voor stap ik wil delen mijn experiment met ATMEGA128 timer en onderbreken met behulp van DS1307 en NTC om zelfgemaakte klok en thermometer te geven.Het weergegeven uur, de minuut, de tweede, de dag van de week, dag van de maand, de maand,
LCD klok met Hebreeuwse kalenderdatum en een Thermometer

LCD klok met Hebreeuwse kalenderdatum en een Thermometer

Dit project is een klok die de tijd, datum en temperatuur kunt weergeven. De belangrijkste uniek kenmerk van deze klok is de mogelijkheid om de datum in Hebreeuws (joodse) agenda-indeling weergeven. Sommige andere speciale functies zijn:U kunt instel
Weekend project klok datum thermometer en vochtigheid met Arduino mega

Weekend project klok datum thermometer en vochtigheid met Arduino mega

Guys, mij zin voor tantième mijn weekend-project over het maken van een klok met vochtigheid en temperatuursensor,Het met behulp van DHT11 sensor, RTC DS1307, LCD 16 x 2 en Arduino Mega 2560,Houden van lezen en veel gelukStap 1: Voorbereiden alle ond
2cm hoogte 7 segmenten 6 cijfers AVR klok met 4 cijfers thermometer

2cm hoogte 7 segmenten 6 cijfers AVR klok met 4 cijfers thermometer

Dit project is uit te leggen hoe maak jezelf een 6 cijfers 7 segmenten klok met AVR microcontrollerStap 1: De onderdelen voor dit project voorbereiden We moeten een onderdelen voor dit project voorbereiden6 x 7 segmenten gemeenschappelijk Anode6 x PN
Klok met thermometer met behulp van Arduino, i2c 16 x 2 lcd, DS1307 RTC en DHT11 sensor.

Klok met thermometer met behulp van Arduino, i2c 16 x 2 lcd, DS1307 RTC en DHT11 sensor.

Hello! Het is al een tijdje ik heb niet geplaatst om het even wat op Instructables, maar nu maakte ik een eenvoudig project dat ik op internet in verschillende vormen gezien heb. Ik erin geslaagd om een code met behulp van andere codes die ik op inte
Zeven Segment Display Thermometer - Arduino gebaseerd

Zeven Segment Display Thermometer - Arduino gebaseerd

Vandaag zal ik u tonen hoe te maken van uw eigen 7 segment - 2 digit - thermometer met Arduino uno en DS18B20 temperatuursensor.Ik verkies om te bouwen van mijn eigen arduino gebaseerd circuit met behulp van de ATmega328p uno bezitter, maar dit is op