Mundarija:

Arduino Nano va DS1307 yordamida oddiy raqamli soat: 4 qadam
Arduino Nano va DS1307 yordamida oddiy raqamli soat: 4 qadam

Video: Arduino Nano va DS1307 yordamida oddiy raqamli soat: 4 qadam

Video: Arduino Nano va DS1307 yordamida oddiy raqamli soat: 4 qadam
Video: 7 проектов. Сборка светодиодного ЖК-будильника с использованием DS1307 и Arduino | Урок 105 2024, Noyabr
Anonim
Arduino Nano va DS1307 yordamida oddiy raqamli soat
Arduino Nano va DS1307 yordamida oddiy raqamli soat

Ushbu maqolada men sizga Arduino yordamida raqamli soat yasash bo'yicha ko'rsatma beraman. Men ishlatadigan Arduino taxtasi - bu vaqt ma'lumotlarini etkazib beruvchi sifatida Arduino Nano V3, DS1307, MAX7219 7 Segmenti - soat displeyi.

o'quv qo'llanmasiga kirishdan oldin, men sizga Arduino qurilmalari va aksessuarlari bilan tanishishni tavsiya qilaman. Bu men ko'rsatgan ko'rsatmalarni bajarishni osonlashtiradi.

Agar siz Arduino -ni ishlatishni bilmasangiz, xavotir olmang.

Isitish uchun siz ushbu maqolani o'qishingiz mumkin:

  • Arduino Nano -dan qanday foydalanish kerak
  • MAX7219 Arduino yordamida 7-segment
  • DS1307 -dan Arduino -dan qanday foydalanish kerak

1 -qadam: kerakli komponentlar

Kerakli komponentlar
Kerakli komponentlar
Kerakli komponentlar
Kerakli komponentlar
Kerakli komponentlar
Kerakli komponentlar

Bu raqamli soatni yaratish uchun bizga kerak bo'lgan komponentlar:

  • Arduino Nano V3
  • RTC DS1307
  • MAX7210 7 segmenti
  • Jumper simlari
  • USB mini
  • Loyiha kengashi

Kutubxona kerak:

  • Tel
  • LedControl
  • RTClib

2 -qadam: Barcha komponentlarni yig'ing

Barcha komponentlarni yig'ish
Barcha komponentlarni yig'ish

Agar barcha komponentlar olingan bo'lsa, endi yig'ish vaqti keldi.

Quyidagi tavsifga qarang yoki yuqoridagi rasmga qarang:

Arduino RTC DS1307 ga

GND => GND

+5V => VCC

A4 => SDA

A5 => SCL

Arduino dan MAX7219 gacha

+5V => VCC

GND => GND

D12 => Din

D11 => CLK

D10 => CS

Barcha komponentlar o'rnatilgandan so'ng, dasturlash bo'limiga o'ting.

3 -qadam: dasturlash

bu eskizni nusxa ko'chiring va o'zingiz yaratgan eskizga joylashtiring. Shundan so'ng, dasturni arduno taxtasiga yuklang

#kiritish "LedControl.h" qo'shish #"RTClib.h" ni qo'shish

RTC_DS1307 rtc;

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

bo'sh o'rnatish () {

Serial.begin (57600); if (! rtc.begin ()) {Serial.println ("RTC topilmadi"); vaqt (1); } if (! rtc.isrunning ()) {Serial.println ("RTC ishlamayapti!"); // quyidagi satrda RTC bu eskiz tuzilgan sana va vaqtga o'rnatiladi // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Bu chiziq RTC -ni aniq sana va vaqt bilan belgilaydi, masalan: 2014 yil 21 -yanvar, soat 3 da siz qo'ng'iroq qilasiz: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); } lc.shutdown (0, noto'g'ri); 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, now.second ()/10, false); lc.setChar (0, 2, '-', noto'g'ri); lc.setDigit (0, 3, now.minute ()%10, noto'g'ri); lc.setDigit (0, 4, now.minute ()/10, false); lc.setChar (0, 5, '-', noto'g'ri); lc.setDigit (0, 6, hozir.soat ()%10, noto'g'ri); lc.setDigit (0, 7, hozir.soat ()/10, noto'g'ri); }

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

{lc.clearDisplay (0); }

if (now.second ()> = 31 && now.second () <40) {lc.setDigit (0, 6, now.day ()%10, rost); lc.setDigit (0, 7, now.day ()/10, noto'g'ri); lc.setDigit (0, 4, now.month ()%10, rost); lc.setDigit (0, 5, hozir.oy ()/10, noto'g'ri); lc.setDigit (0, 0, (hozir.yil ()%1000)%10, noto'g'ri); lc.setDigit (0, 1, (hozir.yil ()%1000)/10, noto'g'ri); lc.setDigit (0, 2, (hozir.yil ()%1000)/100, noto'g'ri); lc.setDigit (0, 3, hozir.yil ()/1000, noto'g'ri); }}

4 -qadam: Natija

Barcha qadamlar muvaffaqiyatli bo'lgandan so'ng, siz natijani ko'rasiz: (videoni tomosha qilish)

har 31 soniyadan 40 soniyagacha. 7 segmentda sana ko'rsatiladi. Bu soniyadan tashqari 7 segmentda soat ko'rsatiladi

Tavsiya: