• HOME
  • DỰ ÁN & MẠCH ĐIỆN
    • Lập trình
      • ARDUINO PROJECT
      • ESP8266 PROJECT
      • ESP32 PROJECT
      • RASPBERRY PI PROJECT
      • Vi điều khiển
    • Điện tử ứng dụng
      • Audio / Amplifiers
      • Nguồn điện
      • Pin sạc/Acquy và mạch sạc
      • Biến đổi AC và DC
      • Robotic
      • Cảm biến
      • LED
      • LCD
      • Động cơ bước
      • Mạch linh tinh
      • Test & Measurement
      • RF – FM
    • Nixie Clock
    • HOME AUTOMATION
    • Dân dụng
    • Công nghiệp
  • KIẾN THỨC CĂN BẢN
    • Điện tử cơ bản
    • Điện tử số
    • PCB
    • Nixie Tube
    • Raspberry Pi
    • Vi điều khiển
    • Arduino
    • IN 3D
  • DOWNLOAD
    • Phần mềm điện tử
    • Giáo trình
      • Giáo trình Điện – Điện tử
      • Giáo trình Tự Động Hóa
      • Giáo trình Viễn thông
    • Đề tài
      • Đề tài – Điện – Điện Tử
      • Đề tài – Tự Động Hóa
      • Đề tài – Viễn thông
    • Điện tử ứng dụng
    • Tài liệu nước ngoài
    • Hướng dẫn, sửa chữa
    • Sơ đồ, nguyên lý thiết bị
    • Tiêu chuẩn – Đo lường – Thử nghiệm
    • Datasheet
  • LIÊN HỆ
  • SẢN PHẨM

Mạch Điện Lý Thú

Sơ đồ nguyên lý, PCB, đồ án, tài liệu, DIY

Bạn đang ở:Trang chủ / DỰ ÁN & MẠCH ĐIỆN / Lập trình / ARDUINO PROJECT / Hiển thị thời gian thực (RTC DS1307) lên LCD16x2 bằng giao tiếp I2C trong môi trường Arduino

Hiển thị thời gian thực (RTC DS1307) lên LCD16x2 bằng giao tiếp I2C trong môi trường Arduino

11/04/2022 by admin 1 Bình luận

Đã được đăng vào 11/12/2019 @ 12:00

Hiển thị thời gian thực (RTC DS1307) lên LCD16x2 bằng giao tiếp I2C trong môi trường Arduino 

Mục lục hiện
Hiển thị thời gian thực (RTC DS1307) lên LCD16x2 bằng giao tiếp I2C trong môi trường Arduino
Hiển thị thời gian thực lên LCD16x2 sử dụng module RTC DS1307
Linh kiện cần thiết cho dự án
Thư viện
Code mẫu
Giải thích code

Ở bài viết hôm trước mình đã hướng dẫn các bạn cách sử dụng Module thời gian thực DS1307 và cách hiển thị ký tự lên màn hình LCD 16×2 bằng giao tiếp I2C.

Tiếp tục trong chuỗi bài viết về LCD hôm nay mình sẽ hướng dẫn các bạn làm thế nào để hiển thị thời gian lên LCD16x2.

Để hiểu hơn về bài viết hôm nay các bạn đọc lại bài viết bên dưới rồi chúng ta tiếp tục nha.

  • Đọc thêm: Tổng quan LCD 16×2 và giao tiếp I2C LCD sử dụng Arduino
  • Đọc thêm: Đồng hồ thời gian thực (Read Time Clock – DS1307) sử dụng Arduino

Hiển thị thời gian thực lên LCD16x2 sử dụng module RTC DS1307

Màn hình LCD 16×2 Arduino UNO R3
GND GND
VCC 5V
SDA A4/SDA
SCL A5/SCL
Module RTC DS1307  
GND GND
VCC 5V
SDA A4/SDA
SCL A5/SCL

Linh kiện cần thiết cho dự án

Tên linh kiện Số lượng
Arduino Uno R3 1
Module RTC DS1307 1
Màn hình LCD 16×2 1
Module I2C LCD 16×2 1
Dây cắm 1

Thư viện

  • Thư viện hỗ trợ sử dụng module RTC DS1307: Tải ngay.
  • Thư viện hỗ trợ sử dụng màn hình LCD I2C: Tải ngay.

Code mẫu

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"

RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x3F,16,2);

char daysOfTheWeek[7][12] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};

void setup () 
{
  Serial.begin(9600);
  lcd.init();   
  lcd.backlight();
  if (! rtc.begin()) 
  {
    lcd.print("Couldn't find RTC");
    while (1);
  }

  if (! rtc.isrunning()) 
  {
    lcd.print("RTC is NOT running!");
  }
  
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));//auto update from computer time
    //rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));// to set the time manualy 
}

void loop () 
{
    DateTime now = rtc.now();
    
    lcd.setCursor(4, 1);
    if(now.hour()<=9)
    {
      lcd.print("0");
      lcd.print(now.hour());
    }
    else {
     lcd.print(now.hour()); 
    }
    lcd.print(':');
    if(now.minute()<=9)
    {
      lcd.print("0");
      lcd.print(now.minute());
    }
    else {
     lcd.print(now.minute()); 
    }
    lcd.print(':');
    if(now.second()<=9)
    {
      lcd.print("0");
      lcd.print(now.second());
    }
    else {
     lcd.print(now.second()); 
    }
    lcd.print("   ");

    lcd.setCursor(1, 0);
    lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
    lcd.print(",");
    if(now.day()<=9)
    {
      lcd.print("0");
      lcd.print(now.day());
    }
    else {
     lcd.print(now.day()); 
    }
    lcd.print('/');
    if(now.month()<=9)
    {
      lcd.print("0");
      lcd.print(now.month());
    }
    else {
     lcd.print(now.month()); 
    }
    lcd.print('/');
    if(now.year()<=9)
    {
      lcd.print("0");
      lcd.print(now.year());
    }
    else {
     lcd.print(now.year()); 
    }
}

 

Giải thích code

Trong bài viết Đồng hồ thời gian thực (Read Time Clock – DS1307) sử dụng Arduino mình đã giải thích rất chi tiết cách hoạt động của hàm các bạn xem lại bài viết để có thể hiểu hơn nhé.

Nguồn: arduinokit.vn

5/5 - (1 bình chọn)
  • Share on Facebook
  • Tweet on Twitter

Bài viết liên quan

Kit thực hành Arduino – EGYDuino
Sơ đồ chân ESP32 và ngoại vi
Kit thực hành Arduino BO.DUINO – Atmega328p

Thuộc chủ đề:ARDUINO PROJECT, LCD Tag với:arduino, code, ds1307, lcd, LCD1602, thời gian thực

Bài viết trước « Hiển thị nhiệt độ, độ ẩm lên LCD 16×2 giao tiếp bằng I2C sử dụng Arduino
Bài viết sau Cảm biến độ ẩm | Hệ thống tưới tự động sử dụng Arduino »

Reader Interactions

Sidebar chính

Zalo hỏi đáp 24/7

Theo dõi qua mạng xã hội

  • Facebook
  • RSS

Bạn đang tìm gì?

Bài viết mới nhất

Kit thực hành Arduino – EGYDuino

27/05/2022

Cài đặt Platform IO để lập trình ESP32

27/05/2022

Mạch khuếch đại công suất âm thanh 65W

26/05/2022

Hướng dẫn tải và sử dụng Hercules Terminal

26/05/2022

Sơ đồ chân ESP32 và ngoại vi

26/05/2022

Chuyên mục

  • DỰ ÁN & MẠCH ĐIỆN (245)
    • Công nghiệp (16)
    • Dân dụng (28)
    • Điện tử ứng dụng (178)
      • Audio / Amplifiers (34)
      • Biến đổi AC và DC (23)
      • Cảm biến (43)
      • Động cơ bước (6)
      • Kiểm thử và đo đạc (23)
      • LCD (15)
      • LED (19)
      • Mạch linh tinh (27)
      • Nguồn điện (39)
      • Pin sạc/Acquy và mạch sạc (22)
      • RF – FM (5)
      • Robotic (2)
    • HOME AUTOMATION (27)
    • Lập trình (92)
      • ARDUINO PROJECT (39)
      • ESP32 PROJECT (6)
      • ESP8266 PROJECT (29)
      • RASPBERRY PI PROJECT (9)
      • Vi điều khiển (22)
    • Nixie Clock (3)
  • Kiến thức căn bản (163)
    • Arduino (36)
    • Điện tử cơ bản (72)
    • Điện tử số (9)
    • IN 3D (9)
    • Nixie Tube (13)
    • PCB (18)
    • Raspberry Pi (10)
    • Vi điều khiển (14)

Footer

Bài viết mới nhất

  • Kit thực hành Arduino – EGYDuino
  • Cài đặt Platform IO để lập trình ESP32
  • Mạch khuếch đại công suất âm thanh 65W
  • Hướng dẫn tải và sử dụng Hercules Terminal
  • Sơ đồ chân ESP32 và ngoại vi
  • Kit thực hành Arduino BO.DUINO – Atmega328p

Bình luận mới nhất

  • Ernesto trong Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch
  • admin trong Mạch Ampli 19W dùng IC LA4440
  • Hoài trong Cách thay thế transistor tương đương
  • Dương trong Mạch Ampli 19W dùng IC LA4440

Tìm kiếm

Tất cả nội dung trên website chỉ dùng để tham khảo. Chúng tôi không chịu trách nhiệm về thông tin thành viên đăng tải lên website và xóa bài viết khi có vi phạm bản quyền tác giả.