Skip to content
Home » Arduino Rtc Lcd I2C | Giao Tiếp I2C Lcd Arduino

Arduino Rtc Lcd I2C | Giao Tiếp I2C Lcd Arduino

DS3231 RTC + I2C LCD + Arduino UNO || DS3231 Clock project using I2C 16x2 LCD || Teach Me Something

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
Module RTC DS1307
Màn hình LCD 16×2
Module I2C LCD 16×2
Dây cắm

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.

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
Module RTC DS1307
Màn hình LCD 16×2
Module I2C LCD 16×2
Dây cắm

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.
DS3231 RTC + I2C LCD + Arduino UNO || DS3231 Clock project using I2C 16x2 LCD || Teach Me Something
DS3231 RTC + I2C LCD + Arduino UNO || DS3231 Clock project using I2C 16×2 LCD || Teach Me Something

Module I2C Arduino

LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển.

Module I2C LCD ra đời và giải quyết vấn để này cho bạn.

Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay.

Ưu điểm

  • Tiết kiệm chân cho vi điều khiển.
  • Dễ dàng kết nối với LCD.

Thông số kĩ thuật

  • Điện áp hoạt động: 2.5-6V DC.
  • Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780).
  • Giao tiếp: I2C.
  • Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2).
  • Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.
  • Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.

Để sử dụng màn hình LCD giao tiếp I2C sử dụng Arduino thì ta cần cài đặt thư viện Liquidcrystal_I2C. Tại đây

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 Shopee
Arduino Uno R3 Mua ngay
Cáp nạp Mua ngay
Module RTC DS1307 Mua ngay
Màn hình LCD 16×2 Mua ngay
Module I2C LCD 16×2 Mua ngay
Dây cắm (Đực – Cái) Mua ngay

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.
Arduino Tutorial 35- Real Time Clock using DS1302 RTC Module
Arduino Tutorial 35- Real Time Clock using DS1302 RTC Module

Lời kết

Tham gia cộng đồng Arduino KIT Để nhận được nhiều kiến thức bổ ích, các bạn Đăng ký để nhận thông báo khi có bài viết mới nhé. Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino. Nếu các bạn thấy bài viết bổ ích nhớ Like và Share cho mọi người cùng học nhé.

Chúc các bạn thành công.

Trân trọng.

    • Tổng tiền thanh toá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

27/05/2021

Các lỗi thường gặp khi sử dụng I2C LCD

  • Hiển thị một dãy ô vuông.
  • Màn hình chỉ in ra một ký tự đầu.
  • Màn hình nhấp nháy.

Các lỗi này chủ yếu là do sai địa chỉ bus, để fix lỗi các bạn thay địa chỉ mặc định là “0x27” thành “0x3F.

Trong trường hợp vẫn không được các bạn fix lỗi bằng cách nạp code tìm địa chỉ bus của I2C.

Sau khi tìm xong các bạn thay địa chỉ vừa tìm được vào vị trí “0x27” là xong.

  • Các bạn có thể tải code tìm địa chỉ bus ở đây. Tải ngay.
Jam Digital RTC DS3231 dengan LCD16x2 | arduino project
Jam Digital RTC DS3231 dengan LCD16x2 | 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

Ở 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

Code mẫu RTC DS1307

#include

#include #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()); } }

Bạn sẽ học được gì

  • Có kiến thức cơ bản về Robotics
  • Chế tạo Robot dò đường thông minh
  • Đánh thức nhà khoa học bên trong bạn
  • Tìm hiểu thêm về Robotics, các thuật toán Robot tự động
  • Kiến thức nền tảng để chế tạo các máy móc tự động phục vụ đời sống sinh hoạt, lao động sản xuất
  • Kiến thức để chế tạo sản phẩm, tham gia các cuộc thi khoa học công nghệ trong nước và quốc tế
How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16x2 LCD I2C Tutorial
How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16×2 LCD I2C Tutorial

Code mẫu

#include

#include LiquidCrystal_I2C lcd(0x3F,16,2); void setup() { lcd.init(); lcd.backlight(); lcd.setCursor(2,0); lcd.print(“Arduinokit.vn”); lcd.setCursor(0,1); lcd.print(“Xin chao cac ban”); } void loop() { }

Giải thích code

LiquidCrystal_I2C lcd(0x3F,16,2);

  • Đặt địa chỉ LCD là 0x3F cho màn hình LCD 16×2.
  • 16 là số cột của màn hình (nếu dùng loại màn hình 20×4) thì thay bằng 20.
  • 2 là số dòng của màn hình (nếu dùng loại màn hình 20×4) thì thay bằng 4.

lcd.init();

Khởi động màn hình LCD, bắt đầu cho phép Arduino sử dụng màn hình.

lcd.backlight();

Bật đèn nền LCD 16×2.

lcd.setCursor(2,0);

Đưa con trỏ tới hàng 1, cột 3.

Lưu ý: giá trị hàng và cột bắt đầu từ số 0 có nghĩa 0 là hàng(cột) 1.

lcd.print(“Arduinokit.vn”);

Xuất ra dòng chữ Arduinokit.vn tại vị trí con trỏ ở hàng 1, cột 3.

lcd.setCursor(0,1); lcd.print(“Xin chao cac ban”);

Đoạn code này thì tương tự như trên, xuất ra dòng chữ “Xin chao cac ban” tại vị trí con trỏ ở hàng 2, cột 1.

Bây giờ thì các bạn upload chương trình và xem kết quả nhé.

Giao tiếp I2C LCD Arduino

Module I2C LCD 16×2 Arduino UNO
GND GND
VCC 5V
SDA A4/SDA
SCL A5/SCL

Sơ đồ đấu nối

Các linh kiện cần thiết cho dự án:

Tên linh kiện Số lượng Shopee
Arduino UNO R3 Mua ngay
Dây cáp nạp Mua ngay
Màn hình LCD 16×2 Mua ngay
Module I2C LCD 16×2 Mua ngay
Dây cắm (Đực – Cái) Mua ngay

Bạn sẽ học được gì

  • Có kiến thức cơ bản về Robotics
  • Chế tạo Robot dò đường thông minh
  • Đánh thức nhà khoa học bên trong bạn
  • Tìm hiểu thêm về Robotics, các thuật toán Robot tự động
  • Kiến thức nền tảng để chế tạo các máy móc tự động phục vụ đời sống sinh hoạt, lao động sản xuất
  • Kiến thức để chế tạo sản phẩm, tham gia các cuộc thi khoa học công nghệ trong nước và quốc tế
ARDUINO PROJECT INDONESIA - TUTORIAL ARDUINO RTC DS3231 INDONESIA - BELAJAR ARDUINO
ARDUINO PROJECT INDONESIA – TUTORIAL ARDUINO RTC DS3231 INDONESIA – BELAJAR ARDUINO

Lời kết

Qua bài hôm nay các bạn biết cách làm thế nào để hiển thị các ký tự và chuỗi ký tự lên LCD 16×2 và biết cách giao tiếp I2C.

Để nhận được nhiều kiến thức mới các bạn Đăng ký để nhận được thông báo sớm nhất.

Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino.

Nếu các bạn thấy bài viết bổ ích nhớ Like và Share cho mọi người cùng đọc nhé.

Chúc các bạn thành công.

Trân trọng.

Components and supplies

Arduino UNO

Solderless Breadboard Half Size

Female/Female Jumper Wires

Male/Male Jumper Wires

DS3231 Real Time Clock

I2C 16×2 Arduino LCD Display Module

Apps and platforms

Visuino – Graphical Development Environment for Arduino

Arduino Web Editor

Arduino IDE

Project description

Code

Downloadable files

Fritzing File

The Fritzing file also contains the sketch

Fritzing File

Comments

Only logged in users can leave comments

Tishin

0 Followers

0 Projects

Table of contents

Intro

Real Time Clock On 20×4 I2C LCD Display with Arduino

Introduction

Sometimes it may be necessary to use a display while making a hardware project, but the size and the type of the display may vary according to the application. In a previous project, we used a 0.96″ I2C OLED display, and in this project we will have an I2C 20×4 character display.

Project Parts

This tutorial will describe how to use 20 x 4 LCD display with Arduino to print a real-time clock and date.

This liquid crystal display has 4 lines, 20 character in each line and cannot be used to display graphics. The main feature of this display that it uses I2C interface, which means that you will need only two wires to connect with Arduino. At the back side of the screen there is a small PCB soldered in the display, this circuit is a serial LCD 20 x 4 module and it also has a small trimpot to adjust the contrast of the LCD.

Display’s backlight is blue and the text is white. It is fully compatible with Arduino and has 5V input voltage. Its I2C address could be 0x27 or 0x3F. You can get it for about $7 from Bangood store.

DS3231 is a low-cost, accurate I2C real-time clock (RTC), with an integrated temperature-compensated crystal oscillator (TCXO) and crystal. The device incorporates a battery input, so that if power is disconnected it maintains accurate time.

RTC maintains seconds, minutes, hours, day, date, month, and year information. Less than 31 days of the month, the end date will be automatically adjusted, including corrections for leap year. The clock operates in either the 24 hours or band / AM / PM indication of the 12-hour format. Provides two configurable alarm clock and a calendar can be set to a square wave output. Address and data are transferred serially through an I2C bidirectional bus.

This RTC module operates at input voltage range between 3.3V and 5.5V, so it can be connected with 3.3V or 5V pins. It is available on Banggood store for about $2.

Connecting the LCD with Arduino UNO

At first we will connect the LCD with Arduino to display some text and to learn how it works.

The Circuit

Connect the GND with Arduino GND, VCC with 5V pin on Arduino, SDA with A4 pin, and finally SCL with A5 pin.

The Code

First we need to download the library of the display, which includes all required functions to configure and write on the display. You can find it here.

Unzip the library and add it to the Arduino libraries folder, then run Arduino IDE and copy the following code. The first two lines are to include both of I2C and LCD libraries.

lcd.setCursor(3,0) will set the cursor of the LCD in the specified location, the first argument for the column and the second for the row starting form 0.

lcd.print(” “) will print the given text at the current cursor position, be careful that the overflowed characters will be discarded.

//Written by Nick Koumaris //[email protected] //educ8s.tv #include

#include LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address void setup() { lcd.begin(20,4); // Initialize LCD lcd.setCursor(3,0); // Set the cursor at the 4th column and 1st row lcd.print(“Hello YouTube!”); lcd.setCursor(8,1); // Set the cursor at the 9th column and 2nd row lcd.print(“****”); lcd.setCursor(0,2); // Set the cursor at the 1st column and 3rd row lcd.print(“This is a demo text”); lcd.setCursor(8,3); // Set the cursor at the 9th column and 4th row lcd.print(“****”); } void loop() { }

Printing Date & Time on The LCD

Now we will use the RTC module with the LCD to print current date and time, each of them in a line with a dashed border around them.

The Circuit

Here we will use a small breadboard to connect the RTC module and display with the Arduino’s I2C pins (A4 and A5). The SCL pins are connected with analog 5 pin and the SDA pins with analog 6 pin. The top rail of the breadboard used as I2C bus and the bottom one is power bus.

Connect both the display and the RTC module to 5 V and GND pins, and now the circuit is ready.

The Code

Before we start we have to download RTC library and set its time. The required library is available at github. Download it and extract it into Arduino libraries folder, then open Arduino IDE and from examples choose ‘setTime’ from DS1307 library. Finally upload it while the RTC module is connected with Arduino, and it will set its time as the computer time.

In addition to setup and loop function, we will create four other functions to organize the code. As the corners and vertical lines of the frame are special characters, we have to create them manually. So we will use a function to create them and another one to print them on the LCD.

Inside the loop function the time will be read from the real time clock module and the printed to the LCD using a custom function for each of time and date.

Now, let’s describe each part of code:

At first, we have to include the three libraries, I2C, LCD, and RTC and set the LCD address. Inside the setup function the display is initialized, then we will call createCustomCharacters() function and print them.

#include

#include #include

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address void setup() { lcd.begin(20,4); createCustomCharacters(); printFrame(); }

Each character can be 5-pixel long in width and 8-pixel in height. So to create a custom character we need to create a new byte. We need 5 characters, the vertical line and the four corners. The yellow pattern shows you how the character will be displayed on the LCD.

Inside createCustomCharacters() function, we called lcd.createChar(#, byte array) function. The LCD supports up to 8 custom characters numbered from 0 to 7. It will assign the index in the first argument to the character given by the byte array. To print this character we can use lcd.write(byte(#)) function.

byte verticalLine[8] = { B00100, B00100, B00100, B00100, B00100, B00100, B00100, B00100 }; byte char2[8] = { B00000, B00000, B00000, B11100, B00100, B00100, B00100, B00100 }; byte char1[8] = { B00000, B00000, B00000, B00111, B00100, B00100, B00100, B00100 }; byte char3[8] = { B00100, B00100, B00100, B00111, B00000, B00000, B00000, B00000 }; byte char4[8] = { B00100, B00100, B00100, B11100, B00000, B00000, B00000, B00000 }; void createCustomCharacters() { lcd.createChar(0, verticalLine); lcd.createChar(1, char1); lcd.createChar(2, char2); lcd.createChar(3, char3); lcd.createChar(4, char4); }

Now after preparing our characters we can now print the frame.

This function is very simple, it uses lcd.setCursor(#,#) to move the cursor and lcd.print(“”) to print the given string. The function will print the top and bottom horizontal lines, then printing other custom characters.

void printFrame() { lcd.setCursor(1,0); lcd.print(“——————“); lcd.setCursor(1,3); lcd.print(“——————“); lcd.setCursor(0,1); lcd.write(byte(0)); lcd.setCursor(0,2); lcd.write(byte(0)); lcd.setCursor(19,1); lcd.write(byte(0)); lcd.setCursor(19,2); lcd.write(byte(0)); lcd.setCursor(0,0); lcd.write(byte(1)); lcd.setCursor(19,0); lcd.write(byte(2)); lcd.setCursor(0,3); lcd.write(byte(3)); lcd.setCursor(19,3); lcd.write(byte(4)); }

As we discussed earlier, the loop function will get the current time and date every second and refresh them on the display. First we defined a time element “tm” which has current time data, then if the time is correct and the RTC module working fine the time and date will be printed.

We can add some instructions so, if the DS1307 is stopped or there is a circuit error,we can light a LED to indicate the problem. The loop will wait for 1 second before starting the next iteration.

void loop() { tmElements_t tm; if (RTC.read(tm)) { printDate(5,1,tm); printTime(6,2,tm); } else { if (RTC.chipPresent()) { //The DS1307 is stopped. Please run the SetTime } else { //DS1307 read error! Please check the circuitry } delay(9000); } delay(1000); }

PrintTime function uses three arguments, the column and line where it will print the time, and the time element. lcd.print(tm.Hour) will print the hour, then if the minutes and seconds are less than 10 we will add 0 to the left. And the same method is used to print the date.

void printTime(int character,int line, tmElements_t tm) { String seconds,minutes; lcd.setCursor(character,line); lcd.print(tm.Hour); lcd.print(“:”); if(tm.Minute<10) { minutes = “0”+String(tm.Minute); lcd.print(minutes); }else { lcd.print(tm.Minute); } lcd.print(“:”); if(tm.Second<10) { seconds = “0”+String(tm.Second); lcd.print(seconds); }else { lcd.print(tm.Second); } } void printDate(int character,int line, tmElements_t tm) { lcd.setCursor(character,line); lcd.print(tm.Month); lcd.print(“/”); lcd.print(tm.Day); lcd.print(“/”); lcd.print(tmYearToCalendar(tm.Year)); }

Now everything is ready, upload the code to your Arduino and enjoy watching your new clock. You can find the full Arduino sketches and libraries in the attachment below.

This tutorial is made by educ8s.tv channel, and you can find the tutorial video below:

when i tried to connect RTC and LCD 20X4 through i2c ,am getting rtc values but display is not working on Arduino mega 2560 board…someone can u plz help me to solve the issue…. thanks in advance…

the sketch is given here in parts. You must copy and paste each function to an Arduino and complete one sketch with the parts given here. It works! I don`t know why, if someone is teaching us, the code is not complete in the firs time. This don`t help newbees to learn, as this discourages learners when the sketch don`t work for them. Hoerver, thanks to the author for this piece of treasure!

Hello,in case anyone has an 16×2 LCD and wants 1s showHere is the modified code:

#include#include#include#include

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address

void setup(){Serial.begin(9600);lcd.begin(16, 2);lcd.backlight();}

void loop(){delay(1000);

tmElements_t tm;if (RTC.read(tm)) {printDate(0,0,tm);printTime(0,1,tm);

} else {if (RTC.chipPresent()) {//The DS1307 is stopped. Please run the SetTime} else {//DS1307 read error! Please check the circuitry}delay(9000);}}

void printTime(int character,int line, tmElements_t tm){String seconds,minutes;lcd.setCursor(character,line);lcd.print(tm.Hour);lcd.print(“:”);if(tm.Minute<10){minutes = “0”+String(tm.Minute);lcd.print(minutes);}else{lcd.print(tm.Minute);}lcd.print(“:”);if(tm.Second<10){seconds = “0”+String(tm.Second);lcd.print(seconds);}else{lcd.print(tm.Second);}}void printDate(int character,int line, tmElements_t tm){lcd.setCursor(character,line);lcd.print(tm.Day);lcd.print(“/”);lcd.print(tm.Month);lcd.print(“/”);lcd.print(tmYearToCalendar(tm.Year));}

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

Ở 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 RTC 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.

How to use DS1307 RTC with Arduino and I2C LCD
How to use DS1307 RTC with Arduino and I2C LCD

Lời kết

Tham gia cộng đồng Arduino KIT Để nhận được nhiều kiến thức bổ ích, các bạn Đăng ký để nhận thông báo khi có bài viết mới nhé. Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino. Nếu các bạn thấy bài viết bổ ích nhớ Like và Share cho mọi người cùng học nhé.

Chúc các bạn thành công.

Trân trọng.

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

Giới thiệu LCD 16×2

Thông số kỹ thuật LCD 16×2

LCD 16×2 được sử dụng để hiển thị trạng thái hoặc các thông số.

  • LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN).
  • 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2.
  • Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu.
  • Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi.

LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm.

RTC DS3231 y LCD I2C en Arduino
RTC DS3231 y LCD I2C en Arduino

Code mẫu RTC DS1307

#include

#include #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()); } }

Code mẫu

#include

#include #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()); } }

Clock and calendar using Arduino due internal RTC and I2C LCD display
Clock and calendar using Arduino due internal RTC and I2C LCD display

Keywords searched by users: arduino rtc lcd i2c

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 | Arduino Kit
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 | Arduino Kit
Rtc Ds3231 Y Lcd I2C En Arduino - Youtube
Rtc Ds3231 Y Lcd I2C En Arduino – Youtube
How To Use Ds1307 Rtc With Arduino And Lcd/Oled – Surtr Technology
How To Use Ds1307 Rtc With Arduino And Lcd/Oled – Surtr Technology
Digital Clock With Arduino | Arduino With Rtc Mini Project
Digital Clock With Arduino | Arduino With Rtc Mini Project
Clock Using Arduino I2C Bus For Both Rtc And 16X2 Lcd Display - Youtube
Clock Using Arduino I2C Bus For Both Rtc And 16X2 Lcd Display – Youtube
Interfacing Ds1307 I2C Rtc With Arduino : 6 Steps (With Pictures) -  Instructables
Interfacing Ds1307 I2C Rtc With Arduino : 6 Steps (With Pictures) – Instructables
Arduino Time And Date Tutorial-Ds3231 And I2C Lcd With Code |  Visuino-Tishin Padilla - Youtube
Arduino Time And Date Tutorial-Ds3231 And I2C Lcd With Code | Visuino-Tishin Padilla – Youtube
Show Time And Date-Rtc Ds3231 On I2C Lcd Using Visuino - Hackster.Io
Show Time And Date-Rtc Ds3231 On I2C Lcd Using Visuino – Hackster.Io
Arduino Rtc Ds1307 Lcd 16X02 I2C - Youtube
Arduino Rtc Ds1307 Lcd 16X02 I2C – Youtube
Learn Coding With Arduino Ide – Real Time Clock (Rtc) Module Ds3231 «  Osoyoo.Com
Learn Coding With Arduino Ide – Real Time Clock (Rtc) Module Ds3231 « Osoyoo.Com

See more here: kientrucannam.vn

Leave a Reply

Your email address will not be published. Required fields are marked *