Inhoudsopgave:

Eenvoudige digitale klok met Arduino Nano & DS1307 - Ajarnpa
Eenvoudige digitale klok met Arduino Nano & DS1307 - Ajarnpa

Video: Eenvoudige digitale klok met Arduino Nano & DS1307 - Ajarnpa

Video: Eenvoudige digitale klok met Arduino Nano & DS1307 - Ajarnpa
Video: DS1307 Real Time Clock RTC, Arduino Nano and the Recycled DVD 7 Segment LED Display 2024, November
Anonim
Eenvoudige digitale klok met behulp van Arduino Nano & DS1307
Eenvoudige digitale klok met behulp van Arduino Nano & DS1307

In dit artikel laat ik je een tutorial zien om een digitale klok te maken met Arduino. Het Arduino-bord dat ik gebruik is Arduino Nano V3, DS1307 als tijdgegevensprovider, MAX7219 7 Segment als horlogedisplay.

Voordat je de tutorial betreedt, raad ik je aan bekend te zijn met het gebruik van Arduino-apparaten en accessoires. Dit maakt het voor u gemakkelijker om de tutorial te volgen die ik heb laten zien.

Maak je geen zorgen als je niet bekend bent met het gebruik van Arduino-kaarten.

Je kunt dit artikel lezen om op te warmen:

  • Hoe Arduino Nano te gebruiken
  • MAX7219 7-segment met Arduino
  • Hoe DS1307 te gebruiken met Arduino

Stap 1: Vereiste componenten

Vereiste componenten
Vereiste componenten
Vereiste componenten
Vereiste componenten
Vereiste componenten
Vereiste componenten

dit zijn de componenten die we nodig hebben om een digitale klok te maken:

  • Arduino Nano V3
  • RTC DS1307
  • MAX7210 7Segment
  • Doorverbindingsdraad
  • USB mini
  • Stuurgroep

Bibliotheek vereist:

  • Draad
  • LedControl
  • RTClib

Stap 2: Monteer alle componenten

Monteer alle componenten
Monteer alle componenten

Als alle componenten zijn verkregen, is het nu tijd om te monteren.

Zie de beschrijving hieronder of zie de afbeelding hierboven:

Arduino naar RTC DS1307

GND => GND

+5V => VCC

A4 => SDA

A5 => SCL

Arduino naar MAX7219

+5V => VCC

GND => GND

D12 => DIN

D11 => CLK

D10 => CS

Nadat alle componenten zijn geïnstalleerd, gaat u verder naar het programmeergedeelte.

Stap 3: Programmeren

kopieer en plak deze schets in de schets die je hebt gemaakt. Upload daarna het programma naar het arduno-bord

#include #include "LedControl.h" #include "RTClib.h"

RTC_DS1307 rtc;

LedControl lc=LedControl (12, 11, 10, 1);

ongeldige setup() {

Serieel.begin(57600); if (! rtc.begin()) { Serial.println("Kon RTC niet vinden"); terwijl (1); } if (! rtc.isrunning()) { Serial.println("RTC is NIET actief!"); // volgende regel stelt de RTC in op de datum en tijd waarop deze schets is gecompileerd // rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // Deze regel stelt de RTC in met een expliciete datum en tijd, bijvoorbeeld om // 21 januari 2014 om 03:00 uur in te stellen die u zou noemen: // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); } lc.shutdown(0, false); lc.setIntensity(0, 8); lc.clearDisplay(0); }

lege lus() {

DateTime nu = rtc.now(); if(now.second() 40) { lc.setDigit(0, 0, now.second()%10, false); lc.setDigit(0, 1, now.second()/10, false); lc.setChar(0, 2, '-', onwaar); lc.setDigit(0, 3, now.minute()%10, false); lc.setDigit(0, 4, now.minute()/10, false); lc.setChar (0, 5, '-', onwaar); lc.setDigit(0, 6, now.hour()%10, false); lc.setDigit(0, 7, now.hour()/10, false); }

if (now.second() == 30 || now.second() == 40)

{ lc.clearDisplay(0); }

if(now.second() >= 31 && now.second() <40) { lc.setDigit(0, 6, now.day()%10, true); lc.setDigit(0, 7, now.day()/10, false); lc.setDigit(0, 4, now.month()%10, true); lc.setDigit(0, 5, now.month()/10, false); lc.setDigit(0, 0, (now.year()%1000)%10, false); lc.setDigit(0, 1, (now.year()%1000)/10, false); lc.setDigit(0, 2, (now.year()%1000)/100, false); lc.setDigit(0, 3, now.year()/1000, false); } }

Stap 4: Resultaat

Nadat alle stappen zijn geslaagd, is dit het resultaat dat u zult zien: (bekijk video)

elke 31e tot 40e seconde. 7 Segmenten geven de datum weer. Behalve die seconde, zal het 7-segment de klok weergeven

Aanbevolen: