INHOUDSOPGAWE:

Eenvoudige digitale klok met Arduino Nano en DS1307: 4 stappe
Eenvoudige digitale klok met Arduino Nano en DS1307: 4 stappe

Video: Eenvoudige digitale klok met Arduino Nano en DS1307: 4 stappe

Video: Eenvoudige digitale klok met Arduino Nano en DS1307: 4 stappe
Video: Использование плат Digispark Attiny85 Mini Arduino: Урок 108 2024, Julie
Anonim
Eenvoudige digitale klok met Arduino Nano en DS1307
Eenvoudige digitale klok met Arduino Nano en DS1307

In hierdie artikel sal ek u 'n handleiding wys om 'n digitale horlosie te maak met behulp van Arduino.

Ek beveel aan dat u vertroud is met die gebruik van Arduino -toestelle en bykomstighede voordat u die tutoriaal begin. Dit sal u makliker maak om die tutoriaal wat ek getoon het, te volg.

Moenie bekommerd wees as u nie die gebruik van Arduino -borde ken nie.

U kan hierdie artikel lees om op te warm:

  • Hoe om Arduino Nano te gebruik
  • MAX7219 7-segment met behulp van Arduino
  • Hoe om DS1307 te gebruik met behulp van Arduino

Stap 1: Vereiste komponente

Vereiste komponente
Vereiste komponente
Vereiste komponente
Vereiste komponente
Vereiste komponente
Vereiste komponente

Dit is die komponente wat ons nodig het om 'n digitale horlosie te maak:

  • Arduino Nano V3
  • RTC DS1307
  • MAX7210 7Segment
  • Jumper Wire
  • USBmini
  • Projekraad

Biblioteek benodig:

  • Draad
  • LedControl
  • RTClib

Stap 2: Monteer alle komponente

Monteer alle komponente
Monteer alle komponente

As alle komponente verkry is, is dit nou tyd om te monteer.

Sien die beskrywing hieronder of sien die prent hierbo:

Arduino na RTC DS1307

GND => GND

+5V => VCC

A4 => SDA

A5 => SCL

Arduino na MAX7219

+5V => VCC

GND => GND

D12 => DIN

D11 => CLK

D10 => CS

Nadat alle komponente geïnstalleer is, gaan u verder na die programmeringsafdeling.

Stap 3: Programmering

kopieer en plak hierdie skets in die skets wat u gemaak het. Laai die program daarna op die arduno -bord op

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

RTC_DS1307 rtc;

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

ongeldige opstelling () {

Serial.begin (57600); if (! rtc.begin ()) {Serial.println ("RTC kon nie gevind word nie"); terwyl (1); } as (! rtc.isrunning ()) {Serial.println ("RTC loop NIE!"); // volgende reël stel die RTC op die datum en tyd waarop hierdie skets opgestel is // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Hierdie reël stel die RTC met 'n eksplisiete datum en tyd, byvoorbeeld om op te stel // 21 Januarie 2014 om 03:00 sou u noem: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); } lc.stop (0, vals); lc.setIntensity (0, 8); lc.clearDisplay (0); }

leemte -lus () {

DateTime nou = rtc.now (); as (nou.sekonde () 40) {lc.setDigit (0, 0, nou.sekonde ()%10, vals); lc.setDigit (0, 1, nou.sekonde ()/10, vals); lc.setChar (0, 2, '-', vals); lc.setDigit (0, 3, now.minute ()%10, vals); lc.setDigit (0, 4, nou.minute ()/10, vals); lc.setChar (0, 5, '-', vals); lc.setDigit (0, 6, nou.uur ()%10, vals); lc.setDigit (0, 7, nou.uur ()/10, vals); }

as (nou.sekonde () == 30 || nou.sekonde () == 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, waar); lc.setDigit (0, 5, now.month ()/10, false); lc.setDigit (0, 0, (nou.jaar ()%1000)%10, vals); lc.setDigit (0, 1, (nou.jaar ()%1000)/10, vals); lc.setDigit (0, 2, (nou.jaar ()%1000)/100, vals); lc.setDigit (0, 3, nou.jaar ()/1000, vals); }}

Stap 4: Resultaat

Nadat al die stappe suksesvol was, is dit die resultaat wat u sal sien: (kyk na video)

elke 31ste sekonde tot 40ste sekonde. 7 segmente sal die datum vertoon. Behalwe vir die tweede, sal 7 segmente die klok wys

Aanbeveel: