สารบัญ:

นาฬิกาดิจิตอลอย่างง่ายโดยใช้ Arduino Nano & DS1307: 4 ขั้นตอน
นาฬิกาดิจิตอลอย่างง่ายโดยใช้ Arduino Nano & DS1307: 4 ขั้นตอน

วีดีโอ: นาฬิกาดิจิตอลอย่างง่ายโดยใช้ Arduino Nano & DS1307: 4 ขั้นตอน

วีดีโอ: นาฬิกาดิจิตอลอย่างง่ายโดยใช้ Arduino Nano & DS1307: 4 ขั้นตอน
วีดีโอ: การต่อใช้งาน Real Time Clock DS1307 2024, พฤศจิกายน
Anonim
นาฬิกาดิจิตอลอย่างง่ายโดยใช้ Arduino Nano & DS1307
นาฬิกาดิจิตอลอย่างง่ายโดยใช้ Arduino Nano & DS1307

ในบทความนี้ ผมจะแสดงการสอนเกี่ยวกับการสร้างนาฬิกาดิจิตอลโดยใช้ Arduino.. บอร์ด Arduino ที่ผมใช้คือ Arduino Nano V3, DS1307 เป็นผู้ให้บริการข้อมูลเวลา, MAX7219 7 Segment เป็นจอแสดงผลของนาฬิกา

ก่อนเข้าสู่บทช่วยสอน ฉันแนะนำให้คุณคุ้นเคยกับการใช้อุปกรณ์และอุปกรณ์เสริม Arduino สิ่งนี้จะทำให้คุณทำตามบทช่วยสอนที่ฉันแสดงได้ง่ายขึ้น

หากคุณไม่คุ้นเคยกับการใช้บอร์ด Arduino ไม่ต้องกังวล

คุณสามารถอ่านบทความนี้เพื่ออุ่นเครื่อง:

  • วิธีใช้ Arduino Nano
  • MAX7219 7-Segment โดยใช้ Arduino
  • วิธีใช้ DS1307 โดยใช้ Arduino

ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น

ส่วนประกอบที่จำเป็น
ส่วนประกอบที่จำเป็น
ส่วนประกอบที่จำเป็น
ส่วนประกอบที่จำเป็น
ส่วนประกอบที่จำเป็น
ส่วนประกอบที่จำเป็น

นี่คือส่วนประกอบที่เราต้องทำเพื่อสร้างนาฬิกาดิจิทัล:

  • Arduino นาโน V3
  • RTC DS1307
  • MAX7210 7Segment
  • สายจัมเปอร์
  • USBmini
  • คณะกรรมการโครงการ

ห้องสมุดที่ต้องการ:

  • ลวด
  • LedControl
  • RTClib

ขั้นตอนที่ 2: ประกอบส่วนประกอบทั้งหมด

ประกอบส่วนประกอบทั้งหมด
ประกอบส่วนประกอบทั้งหมด

หากได้รับส่วนประกอบทั้งหมดแล้ว ก็ถึงเวลาประกอบ

ดูคำอธิบายด้านล่างหรือดูภาพด้านบน:

Arduino เป็น RTC DS1307

GND => GND

+5V => VCC

A4 => SDA

A5 => SCL

Arduino ถึง MAX7219

+5V => VCC

GND => GND

D12 => DIN

D11 => CLK

D10 => CS

หลังจากติดตั้งส่วนประกอบทั้งหมดแล้ว ให้ไปที่ส่วนการเขียนโปรแกรม

ขั้นตอนที่ 3: การเขียนโปรแกรม

คัดลอกและวางภาพร่างนี้ลงในภาพร่างที่คุณทำ หลังจากนั้นอัพโหลดโปรแกรมไปที่บอร์ดarduno

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

RTC_DS1307 rtc;

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

การตั้งค่าเป็นโมฆะ () {

Serial.begin(57600); ถ้า (! rtc.begin()) { Serial.println("ไม่พบ RTC"); ในขณะที่ (1); } if (! rtc.isrunning()) { Serial.println("RTC ไม่ทำงาน!"); // บรรทัดต่อไปนี้ตั้งค่า RTC เป็นวันที่ & เวลาที่ร่างนี้รวบรวม // rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // บรรทัดนี้ตั้งค่า RTC ด้วยวันที่ & เวลาที่ชัดเจน เช่น เพื่อตั้งค่า // 21 มกราคม 2014 เวลา 03:00 น. คุณจะต้องโทร: // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); } lc.shutdown(0, เท็จ); lc.setIntensity(0, 8); lc.clearDisplay(0); }

วงเป็นโมฆะ () {

DateTime ตอนนี้ = rtc.now(); if(now.second() 40) { lc.setDigit(0, 0, now.second()%10, false); lc.setDigit(0, 1, now.second()/10, เท็จ); lc.setChar(0, 2, '-', เท็จ); lc.setDigit(0, 3, now.minute()%10, เท็จ); lc.setDigit(0, 4, now.minute()/10, เท็จ); lc.setChar(0, 5, '-', เท็จ); lc.setDigit(0, 6, now.hour()%10, เท็จ); lc.setDigit(0, 7, now.hour()/10, เท็จ); }

ถ้า (now.second() == 30 || now.second() == 40)

{ lc.clearDisplay(0); }

if(now.second() >= 31 && now.second() < 40) { lc.setDigit(0, 6, now.day()%10, จริง); lc.setDigit(0, 7, now.day()/10, เท็จ); lc.setDigit(0, 4, now.month()%10, จริง); lc.setDigit(0, 5, now.month()/10, เท็จ); lc.setDigit(0, 0, (now.year()%1000)%10, เท็จ); lc.setDigit(0, 1, (now.year()%1000)/10, เท็จ); lc.setDigit(0, 2, (now.year()%1000)/100, เท็จ); lc.setDigit(0, 3, now.year()/1000, เท็จ); } }

ขั้นตอนที่ 4: ผลลัพธ์

หลังจากทำตามขั้นตอนทั้งหมดสำเร็จแล้ว นี่คือผลลัพธ์ที่คุณจะเห็น: (ดูวิดีโอ)

ทุกๆ 31 วินาที ถึง 40 วินาที 7 ส่วนจะแสดงวันที่ ยกเว้นวินาทีนั้น 7 ส่วนจะแสดงนาฬิกา

แนะนำ: