Arduino Real timerklok (DS1307) (4 / 7 stap)

Stap 4: Controleren en instellen van de Module


Zodra u klaar bent voor het monteren van de module. Sluit de module aan de Arduino, zodat de pinnen in de Arduino correct worden ingevoegd. Het programma voor het testen van de module is hieronder gegeven. De code werkt voortdurend de tijd via de seriële poort.

Om de module draaien we moeten twee bibliotheken moeten we twee bibliotheken in de Arduino software. De volgende stappen worden de Arduino software met de bibliotheken nodig en de code instellen.

De bibliotheken importeren:

  • Download de bibliotheek "RealTimeClockDS1307" en sla het op het bureaublad.
  • Open de Arduino en ga naar de schets = > Bibliotheek importeren = > Add Library.
  • Selecteer de bibliotheek die is opgeslagen op het bureaublad en klik op toevoegen.
  • Nu plakt de voorbeeldcode hieronder en klik op compileren. Als met succes gecompileerd slaat u de resterende stappen.
  • Als het niet importeren de tweede bibliotheek "draad" en herhaal de procedure en compileren van de code en het zal werken.

Code werken:

De code is geschreven door "David H. Brown" Ik gebruik het alleen om u een inleiding tot de DS1307. Hoe dan ook de Arduino communiceert met de RTC-Module en updates van de tijd voor elke seconde via de Seriële Monitor. De schepper heeft ons een optie om de tijd wanneer wij de opdracht "?sturen" gegeven. Het volgende menu verschijnt.

Deze code zal u helpen om de tijd instellen, evenals het aankruisen van de module back-up batterij leveren werken goed. In de volgende tutorial zal ik u tonen hoe te installeren van een LCD-scherm en de tijd van de RTC-module te tonen. Hier is de code voor het testen van de module en een bijgevoegd bestand van hetzelfde.

#include < Wire.h > #include < RealTimeClockDS1307.h > //RealTimeClock RTC; //=new RealTimeClock(); #define Display_Clock_Every_N_Seconds 10 / / n.secs om te laten zien van datum/tijd #define Display_ShortHelp_Every_N_Seconds 60 / / n.secs om te laten zien van hint voor hulp //#define TEST_Squarewave //#define TEST_StopStart //#define TEST_1224Switch int count = 0; char opgemaakt [] = "00-00-00-00:00:00 x"; void setup {/ / Wire.begin(); Serial.begin(9600); pinMode (A3, uitvoer); pin 16 (analoge pin 2) als OUTPUT *** digitalWrite (A3, hoge); pin 16 (analoge pin 2) ingesteld op laag *** pinMode (A2, uitvoer); 17 (analoge pin 3) pin als OUTPUT *** digitalWrite (A2, laag); PIN 17 (analoge pin 3) ingesteld op hoog *** / / *** analoge Pin-instellingen aan macht RTC module ***} void loop {if(Serial.available()) {processCommand();} RTC.readClock(); Graaf ++; Als (graaf % Display_Clock_Every_N_Seconds == 0) {Serial.print(count); Serial.Print(":"); RTC.getFormatted(formatted); Serial.Print(formatted); Serial.println(); } Als (graaf % Display_ShortHelp_Every_N_Seconds == 0) {Serial.println ("verzenden? voor een lijst met opdrachten. ");} #ifdef TEST_Squarewave als (graaf % 10 == 0) {schakelaar (graaf/10% 6) {geval 0: Serial.print ("zaagtandgolf uitgeschakeld (lage impedantie):"); RTC.sqwDisable(0); Serial.println((int) RTC.readData(7)); breken; geval 1: Serial.print ("zaagtandgolf uitgeschakeld (hoge impedantie):"); RTC.sqwDisable(1); Serial.println((int) RTC.readData(7)); breken; geval 2: Serial.println ("zaagtandgolf ingeschakeld 1 Hz"); RTC.sqwEnable(RTC.SQW_1Hz); breken; Case 3: Serial.println ("zaagtandgolf ingeschakeld op 4.096 kHz"); RTC.sqwEnable(RTC.SQW_4kHz); breken; geval 4: Serial.println ("zaagtandgolf ingeschakeld op 8.192 kHz"); RTC.sqwEnable(RTC.SQW_8kHz); breken; geval 5: Serial.println ("zaagtandgolf ingeschakeld op 32.768 kHz"); RTC.sqwEnable(RTC.SQW_32kHz); breken; standaard: Serial.println ("zaagtandgolf-test niet gedefinieerd"); } //switch} #endif #ifdef TEST_StopStart als (graaf % 10 == 0) {als (! RTC.isStopped()) {if(RTC.getSeconds() < 45) {Serial.println ("stoppen klok gedurende 10 seconden"); RTC.stop(); } //if we genoeg tijd hebben} else {RTC.setSeconds(RTC.getSeconds()+11); RTC.start(); Serial.println ("11 seconden toe te voegen en opnieuw op te starten klok"); }} //if op een veelvoud van 10 telt #endif #ifdef TEST_1224Switch als (graaf % 10 == 0) {als (graaf % 20 == 0) {Serial.println ("overschakelen naar 12 uur tijd"); RTC.switchTo12h(); RTC.setClock(); } else {Serial.println ("overschakelen naar tijd in 24-uursnotatie"); RTC.switchTo24h(); RTC.setClock(); {}} #endif} ongeldig processCommand() {als ()
! Serial.available()) {terugkeer;} opdracht char = Serial.read(); int in, in2; switch(Command) {"H" kast: geval 'h': in=SerialReadPosInt(); RTC.setHours(in); RTC.setClock(); Serial.Print ("Setting uur to"); Serial.println(in); breken; Case "I": geval 'i': in=SerialReadPosInt(); RTC.setMinutes(in); RTC.setClock(); Serial.Print ("Setting minuten to"); Serial.println(in); breken; geval van ': geval van ': in=SerialReadPosInt(); RTC.setSeconds(in); RTC.setClock(); Serial.Print ("Setting seconds to"); Serial.println(in); breken; kast 'Y': geval 'y': in=SerialReadPosInt(); RTC.setYear(in); RTC.setClock(); Serial.Print ("instelling jaar"); Serial.println(in); breken; geval ben ': geval ben ': in=SerialReadPosInt(); RTC.setMonth(in); RTC.setClock(); Serial.Print ("instelling maand"); Serial.println(in); breken; geval zou ': geval zou ': in=SerialReadPosInt(); RTC.setDate(in); RTC.setClock(); Serial.Print ("instelling datum"); Serial.println(in); breken; geval 'W': Serial.print ("dag van de week is"); Serial.println((int) RTC.getDayOfWeek()); breken; geval 'w': in=SerialReadPosInt(); RTC.setDayOfWeek(in); RTC.setClock(); Serial.Print ("instelling day of week"); Serial.println(in); breken; 't geval ': 'T geval ': if(RTC.is12hour()) {RTC.switchTo24h(); Serial.println ("overschakelen naar 24-uurs klok."); } else {RTC.switchTo12h(); Serial.println ("overschakelen naar 12-uurs klok."); } RTC.setClock(); breken; Case "A": geval 'a': if(RTC.is12hour()) {RTC.setAM(); RTC.setClock(); Serial.println ("Stel AM."); } else {Serial.println ("(stel uren alleen in 24-uurs modus.)");} onderbreking; kast 'P': 'p' zaak: if(RTC.is12hour()) {RTC.setPM(); RTC.setClock(); Serial.println ("Set PM."); } else {Serial.println ("(stel uren alleen in 24-uurs modus.)");} onderbreking; geval 'q': RTC.sqwEnable(RTC.SQW_1Hz); Serial.println ("blokgolf-uitvoer ingesteld op 1Hz"); breken; kast 'Q': RTC.sqwDisable(0); Serial.println ("vierkant wave-uitvoer uitgeschakeld (laag)"); breken; geval 'z': RTC.start(); Serial.println ("klok oscillator begonnen."); breken; kast 'Z': RTC.stop(); Serial.println ("klok oscillator gestopt."); breken; geval ' >': in=SerialReadPosInt(); in2=SerialReadPosInt(); RTC.writeData (in, in2); Serial.Print ('schrijven om te registreren'); Serial.Print(in); Serial.Print ("de waarde"); Serial.println(in2); breken; geval ' <': in=SerialReadPosInt(); in2=RTC.readData(in); Serial.Print ("Lees uit register"); Serial.Print(in); Serial.Print ("de waarde"); Serial.println(in2); breken; standaard: Serial.println ("Unknown command. Probeer deze: "); Serial.println ("h ## - uren instellen [bereik 1..12 of 0..24]"); Serial.println ("i ## - minuten [variëren 0..59]"); Serial.println ("s ## - set seconden [variëren 0..59]"); Serial.println ("d ## - vastgestelde datum [bereik 1..31]"); Serial.println ("m ## - set maand [bereik 1..12]"); Serial.println ("y ## - set jaar [bereik 0..99]"); Serial.println ("w ## - stel willekeurige dag van de Week [bereik 1..7]"); Serial.println ("t - knevel 24-uurs modus"); Serial.println ("a - set AM p - set PM"); Serial.println(); Serial.println ("z - start klok Z - stop klok"); Serial.println ("q - SQW/OUT = 1Hz Q - stop SQW/OUT"); Serial.println(); Serial.println ("> ##, ###-schrijven te registreren ## de waarde ###"); Serial.println ("< ##-luiden naar de waarde in register ##"); } //switch op commando} //read in numerieke tekens tot iets anders //or is geen meer informatie beschikbaar over seriële. int SerialReadPosInt() {int ik = 0; boolean gedaan = false; while(Serial.available() & &! gedaan) {char c = Serial.read(); als (c > = '0' & & c < = '9') {ik = i * 10 + (c-"0");} anders {= true;}} terug i;}

Gerelateerde Artikelen

Arduino Real timerklok met Alarm en milieu-sensoren

Arduino Real timerklok met Alarm en milieu-sensoren

Arduino Klok, met batterij back-up (real-time clock), tijd, datum, Alarm, temperatuur, vochtigheid, druk, LCD uitvoer, invoer van het toetsenbord, slaapstand, LED LCD verlichting (4 X) wit met dimmer controleStap 1: OnderdelenlijstArduino Real timerk
Arduino DS3231 Real timerklok met kleur TFT

Arduino DS3231 Real timerklok met kleur TFT

Het bouwen van een real timerklok met een kleuren TFT display is uiterst eenvoudig met behulp van de Arduino. Het display toont de tijd, de datum, de huidige temperatuur langs de MAX en MIN temperatuur die het heeft gemeten. Laten we bouwen het!Stap
Een ATMEGA328P en een Real timerklok toe te voegen aan een bestaand Project

Een ATMEGA328P en een Real timerklok toe te voegen aan een bestaand Project

dit was een bestaand project dat ik enige tijd voor had gemaakt.Een 8 X 10 LED matrix.Het is dus niet een volledige bouwstijl, gewoon toevoegen waaropIk heb toegevoegd aan de 8 X 10 LED display een micro-processor, de ATMEGA328P draait op 8MHz intern
Een elegant, stapeling, Real timerklok voor Raspberry Pi

Een elegant, stapeling, Real timerklok voor Raspberry Pi

Als u wilt bouwen van een goede is Real timerklok voor uw Raspberry hier het leerprogramma dat u zocht!Dit is een herziene en vereenvoudigde versie voor Instructables gemaakt van dit artikel op mijn persoonlijke blog. Verschil zit hem voornamelijk in
Prototype en configureren van uw eigen Real timerklok-module voor de Raspberry Pi (Open Source Hardware en softwareconfiguratie))

Prototype en configureren van uw eigen Real timerklok-module voor de Raspberry Pi (Open Source Hardware en softwareconfiguratie))

Houden de prijs van de framboos is pi neer de ontwikkelaars links uit sommige van de essentie van die de real-time klok. Op het moment dat de raspberry pi het tijd over de Ethernet van het bijwerken van de tijd automatisch te spelen vanaf de globale
Real timerklok - DS1302

Real timerklok - DS1302

dit is een zeer eenvoudige tutorial over hoe de DS1302 Real timerklok met een Arduino, of Versilino, bord.  Ik zal u door de bedrading, code en voorbeeld lopen.  Die is te vinden op www.Virtuabotix.com. Dit is mijn ifrst proberen op het creëren van e
Berlijn klok, Arduino Nano, DS1307 Real timerklok. 74HC595N 8 Bit Shift Register.

Berlijn klok, Arduino Nano, DS1307 Real timerklok. 74HC595N 8 Bit Shift Register.

Ik heb geruime tijd wilde bouwen een klok van Berlijn. Ik weet echt niet waarom? Net als ik de "andere" benadering van vertellend de tijd.Dus hoe werkt het??Vanaf de bodem er 4 geel licht elke lichte vertegenwoordigt 1 minuut zijn, dus als er ge
Instellen van de DS1307 Real timerklok met behulp van de seriële Monitor

Instellen van de DS1307 Real timerklok met behulp van de seriële Monitor

de hardware is de standaard setup en is als volgt.SDA van de RTC aan 4 pin van de Arduino.SCL van de RTC aan 5 pin van de ArduinoDan natuurlijk pos en neg.Gewoon negeren de gizDuino info in de setup-afbeelding. linkerkant van de pagina.Volledige deta
Eenvoudige gids voor het instellen van de tijd op een DS3231/DS3107/DS1337 Real timerklok met Arduino UNO

Eenvoudige gids voor het instellen van de tijd op een DS3231/DS3107/DS1337 Real timerklok met Arduino UNO

De DS3231 is een zeer nauwkeurige, gebruikte Real Time Clock (RTC), evenals zijn iets minder nauwkeurig tegenhangers, DS3107 en DS1337. Voordat het nuttig zijn kan, moet het echter worden ingesteld op de juiste tijd. Dit Instructable is strikt genome
Arduino Real Time wekker met temperatuur en LED-verlichting. Afstandsbediening

Arduino Real Time wekker met temperatuur en LED-verlichting. Afstandsbediening

Arduino Klok, met batterij back-up (real-time clock), tijd, datum, Alarm, temperatuur, LCD output, IR externe input, slaapstand, LED-verlichting (10 X) rood en blauw multi-mode.Stap 1: Stap 1: onderdelenlijstArduino Klok, met batterij back-up (real-t
Arduino Real time klok met behulp van Ds1302

Arduino Real time klok met behulp van Ds1302

Deze week heb ik besloten dat ik wil bouwen een klok. Ik wil een klok diealtijd het juiste moment dus ik moet een onderdeel dat hiervoor die ik wat onderzoek en vond ik de ds1302.Stap 1: Bekijk de videoIk maakte een video op YouTube waar ik je laten
LED Arduino Clock

LED Arduino Clock

Na mijn laatste bouwproject, wilde ik iets met een Arduino bouwen. Instructables doorbladert voor maanden zag ik een LED Arduino Klok die ik wilde bouwen. Na sommige herontwerpt van mijn kant instellen ik op mijn verovering te bouwen deze klok.Eerst
PlotClock met Arduino

PlotClock met Arduino

Hallo, wij zijn een groep van studenten en dit is ons eerste project in instructables en we hope u like it!Dit project was voor 'Creatieve Electronics', een Beng elektronica Engineering 4e jaar module op de Universiteit van Málaga, School van telecom
Arduino meerdere timer. Dag gebaseerd en alarm op basis

Arduino meerdere timer. Dag gebaseerd en alarm op basis

Dus werd ik gevraagd door iemand als ik kan maken iets dat met een motor op een vast tijdstip beginnen zal. OK... gemakkelijk.Maar start de motor moet in elke dag op een ander uur of misschien maandag en vrijdag om een uur en zondag helemaal niet, of