Sisukord:

Lihtne digitaalkell Arduino Nano ja DS1307 abil: 4 sammu
Lihtne digitaalkell Arduino Nano ja DS1307 abil: 4 sammu

Video: Lihtne digitaalkell Arduino Nano ja DS1307 abil: 4 sammu

Video: Lihtne digitaalkell Arduino Nano ja DS1307 abil: 4 sammu
Video: Простые цифровые часы с использованием Arduino, код часов Arduino, часть 1 2024, Juuli
Anonim
Lihtne digitaalkell Arduino Nano ja DS1307 abil
Lihtne digitaalkell Arduino Nano ja DS1307 abil

Selles artiklis näitan teile õpetust digitaalse kella valmistamiseks Arduino abil. Arduino plaat, mida ma kasutan, on Arduino Nano V3, DS1307 ajaandmete pakkujana, MAX7219 7 Segment kellakuvana.

enne õppetundi sisenemist soovitan teil Arduino seadmete ja tarvikute kasutamisega kursis olla. See hõlbustab teil minu õpetuse järgimist.

Kui te pole Arduino plaatide kasutamisega tuttav, ärge muretsege.

Soojenduseks võite lugeda seda artiklit:

  • Kuidas kasutada Arduino Nano
  • MAX7219 7-segment, kasutades Arduino
  • Kuidas kasutada DS1307 Arduino abil

Samm: nõutavad komponendid

Nõutavad komponendid
Nõutavad komponendid
Nõutavad komponendid
Nõutavad komponendid
Nõutavad komponendid
Nõutavad komponendid

Need on komponendid, mida vajame digitaalse kella tegemiseks:

  • Arduino Nano V3
  • RTC DS1307
  • MAX7210 7Segment
  • Jumper Wire
  • USB minid
  • Projekti juhatus

Vajalik raamatukogu:

  • Traat
  • LedControl
  • RTClib

Samm: koguge kõik komponendid kokku

Pange kõik komponendid kokku
Pange kõik komponendid kokku

Kui kõik komponendid on hangitud, on nüüd aeg kokku panna.

Vaadake allolevat kirjeldust või vaadake ülaltoodud pilti:

Arduino kuni RTC DS1307

GND => GND

+5 V => VCC

A4 => SDA

A5 => SCL

Arduino kuni MAX7219

+5 V => VCC

GND => GND

D12 => DIN

D11 => CLK

D10 => CS

Kui kõik komponendid on installitud, jätkake programmeerimisjaotisega.

3. samm: programmeerimine

kopeerige ja kleepige see visand teie tehtud visandisse. Pärast seda laadige programm arduno tahvlile üles

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

RTC_DS1307 rtc;

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

tühine seadistus () {

Seriaalne algus (57600); if (! rtc.begin ()) {Serial.println ("RTC -d ei leitud"); samas (1); } if (! rtc.isrunning ()) {Serial.println ("RTC EI tööta!"); // järgmine rida määrab RTC -le selle visandi koostamise kuupäeva ja kellaaja // // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // See rida määrab RTC -le selgesõnalise kuupäeva ja kellaaja, näiteks määrata // 21. jaanuar 2014 kell 3:00 helistate: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); } lc.sulgemine (0, vale); lc.setIntensity (0, 8); lc.clearDisplay (0); }

void loop () {

DateTime now = rtc.now (); if (now.second () 40) {lc.setDigit (0, 0, now.second ()%10, false); lc.setDigit (0, 1, nüüd.second ()/10, false); lc.setChar (0, 2, '-', vale); lc.setDigit (0, 3, now.minute ()%10, false); lc.setDigit (0, 4, nüüd. minut ()/10, vale); lc.setChar (0, 5, '-', vale); 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, nüüd.päev ()/10, vale); lc.setDigit (0, 4, now.month ()%10, true); lc.setDigit (0, 5, nüüd.kuu ()/10, vale); lc.setDigit (0, 0, (praegu.aasta ()%1000)%10, vale); lc.setDigit (0, 1, (nüüd.aasta ()%1000)/10, vale); lc.setDigit (0, 2, (praegu.aasta ()%1000)/100, vale); lc.setDigit (0, 3, praegu.aasta ()/1000, vale); }}

4. samm: tulemus

Kui kõik toimingud on edukad, näete järgmist tulemust: (vaadake videot)

iga 31. sekundi kuni 40. sekundi järel. 7 segmentides kuvatakse kuupäev. Välja arvatud see teine, kuvab kella 7 segment

Soovitan: