



















Preview text:
lOMoAR cPSD| 58511332
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA VIỄN THÔNG I
BÁO CÁO THỰC HÀNH INTERNET VÀ CÁC GIAO THỨC
“Nghiên cứu cách thưc hiển thị với LCD 16x2 và lập trình GPIO với Arduino
trong trường hợp Output”
Giảng viên hướng dẫn: Hoàng Thị Thu Nhóm 87 – Tổ 2
Tên các thành viên: Đỗ Xuân Bình Lê Ngọc Minh Lê Văn Quang Nguyễn Xuân Quyển Nguyễn Văn Sơn Thạch Minh Tuấn lOMoAR cPSD| 58511332 LỜI MỞ ĐẦU
Trong thời đại công nghệ số hiện nay, việc ứng dụng các thiết bị điện tử và công
nghệ lập trình đã trở thành một phần quan trọng trong nhiều lĩnh vực của cuộc
sống. Một trong những thiết bị điện tử phổ biến được sử dụng rộng rãi là màn hình
tinh thể lỏng (LCD) và các bộ điều khiển như Arduino.
Màn hình LCD 16x2 là một loại màn hình hiển thị thông dụng, được sử dụng rộng
rãi trong các ứng dụng như hiển thị thông tin, điều khiển thiết bị, và giao tiếp giữa
người và máy. Tuy nhiên, để hiển thị thông tin trên màn hình LCD này, cần phải có
một bộ điều khiển phù hợp.
Arduino là một nền tảng lập trình và thiết bị điện tử mã nguồn mở, được sử dụng
rộng rãi trong các ứng dụng như điều khiển robot, thiết bị tự động hóa, và các dự
án điện tử khác. Với khả năng lập trình và điều khiển linh hoạt, Arduino đã trở
thành một lựa chọn phổ biến cho các dự án điện tử.
Tuy nhiên, việc kết hợp màn hình LCD 16x2 và Arduino để hiển thị thông tin và
điều khiển thiết bị vẫn còn là một thách thức đối với nhiều người. Vì vậy, mục tiêu
của báo cáo này là nghiên cứu cách thức hiển thị với LCD 16x2 và lập trình GPIO
với Arduino trong tương hợp Output, nhằm cung cấp một giải pháp hiệu quả và
linh hoạt cho các ứng dụng điện tử. lOMoAR cPSD| 58511332
Chương 1 Tổng quan về Arduino và LCD 16x2 1.1. Tổng quan Arduino
1.1.1.Giới thiệu về Adruino
Arduino là một nền tảng nguyên mẫu (mã nguồn mở) dựa trên nền phần mềm và
phần cứng dễ sử dụng. Nó bao gồm một bo mạch - thứ mà có thể được lập trình
(đang đề cập đến vi điều khiển) và một phần mềm hỗ trợ gọi là Arduino IDE (Môi
trường phát triển tích hợp cho Arduino), được sử dụng để viết và nạp từ mã máy
tính sang bo mạch vật lý. Những tính năng chính như:
Các bo mạch Arduino có khả năng đọc các tín hiệu tương tự (analog) hoặc
tín hiệu số (digital) làm đầu vào từ các cảm biến khác nhau và chuyển nó
thành đầu ra như kích hoạt mô-tơ quay, bật/tắt đèn LED, kế nối mạng
Internet hoặc nhiều hoạt động khác nữa.
Bạn có thể điều khiển các chức năng của bo mạch của mình bằng cách nạp
các tập lệnh đến vi điều khiển trên bo mạch. Thông qua phần mềm hỗ trợ là Arduino IDE.
Không giống như bo mạch có khả năng lập trình trước kia, Arduino chỉ cần
bạn sử dụng cáp USB để nạp mã vào trong bo mạch.
Hơn nữa, phần mềm Arduino IDE sử dụng phiên bản giản thể của C++, làm
việc học lập trình nó trở nên dễ dàng hơn rất nhiều.
1.1.2.Phần cứng của Adruino Uno R3
Phần này nói về phần cứng của Arduino Uno R3, một bo mạch thông dụng hiện
nay. Tài liệu hướng dẫn này chỉ đưa ra những kiến thức cơ bản cần thiết cho việc
sử dụng board mạch này. Nếu người học cần những kiến thức chuyên sâu hơn thì
có thể tham khảo tại website chính thức của Arduino: “arduino.cc”. lOMoAR cPSD| 58511332
1. Cáp USB: Đây là dây cáp thường được bán kèm theo bo, dây cáp dùng để
cắm vào máy tính để nạp chương trình cho bo và dây đồng thời cũng lấy
nguồn từ nguồn usb của máy tính để cho bo hoạt động. Ngoài ra cáp USB
còn được dùng để truyền dữ liệu từ bo Arduino lên máy tính. Dây cáp có 2
đầu, đầu 1a được dùng để cắm vào cổng USB trên bo Arduino, đầu 1b dùng
để cắm vào cổng USB trên máy tính.
2. IC Atmega 16U2: IC này được lập trình như một bộ chuyển đổi USB -
toSerial dùng để giao tiếp với máy tính thông qua giao thức Serial (dùng cổng COM).
3. Cổng nguồn ngoài: Cổng nguồn ngoài nhằm sử dụng nguồn điện bên
ngoài như pin, bình acquy hay các adapter cho bo Arduino hoạt động.
Nguồn điện cấp vào cổng này là nguồn DC có hiệu điện thế từ 6V đến 20V,
tuy nhiên hiệu điện thế tốt nhất mà nhà sản xuất khuyên dùng là từ 7 đến 12V.
4. Cổng USB: Cổng USB trên bo Arduino dùng để kết nối với cáp USB.
5. Nút reset: Nút reset được sử dụng để reset lại chương trình đang chạy. Đôi
khi chương trình chạy gặp lỗi, người dùng có thể reset lại chương trình. 6.
ICSP của ATmega 16U2: ICSP là chữ viết tắt của In-Circuit Serial
Programming. Đây là các chân giao tiếp SPI của chip Atmega 16U2. Các
chân này thường ít được sử trong các dự án về Arduino.
7. Chân xuất tín hiệu ra: Có tất cả 14 chân xuất tín hiệu ra trong Arduino
Uno, những chân có dấu ~ là những chân có thể băm xung (PWM), tức có
thể điều khiển tốc độ động cơ hoặc độ sáng của đèn.
8. IC ATmega 328: IC Atmega 328 là linh hồn của bo mạch Arduino Uno,
IC này được sử dụng trong việc thu thập dữ liệu từ cảm biến, xử lý dữ liệu, xuất tín hiệu ra,... lOMoAR cPSD| 58511332
9. Chân ICSP của ATmega 328: Các chân ICSP của ATmega 328 được sử
dụng cho các giao tiếp SPI (Serial Peripheral Interface), một số ứng dụng
của Arduino có sử dụng chân này, ví dụ như sử dụng module RFID RC522
với Arduino hay Ethernet Shield với Arduino.
10. Chân lấy tín hiệu Analog: Các chân này lấy tín hiệu Analog (tín hiệu
tương tự) từ cảm biến để IC Atmega 328 xử lý. Có tất cả 6 chân lấy tín hiệu Analog, từ A0 đến A5.
11. Chân cấp nguồn cho cảm biến: Các chân này dùng để cấp nguồn cho các
thiết bị bên ngoài như role, cảm biến, RC servo,.. .trên khu vực này có sẵn
các chân GND (chân nối đất, chân âm), chân 5V, chân 3.3V như được thể
hiện ở hình 2. Nhờ những chân này mà người sử dụng không cần thiết bị
biến đổi điện khi cấp nguồn cho cảm biến, role, rc servo,.. .Ngoài ra trên khu
vực này còn có chân Vin và chân reset, chân IOREF. Tuy nhiên các chân này
thường ít được sử dụng nên trong tài liệu này xin không đi sâu về nó.
12. Các linh kiện khác trên board Arduino Uno: Ngoài các linh kiện đã liệt
kê bên trên, Arduino Uno còn 1 số linh kiện đáng chú ý khác. Trên bo có tất
cả 4 đèn led, bao gồm 1 led nguồn (led ON nhằm cho biết boa đã được cấp
nguồn), 2 led Tx và Rx, 1 led L. Các led Tx và Rx sẽ nhấp nháy khi có dữ
liệu truyền từ board lên máy tính hoặc ngược lại thông qua cổng USB. Led L
được được kết nối với chân số 13. Led này được gọi là led on board (tức led
trên bo), led này giúp người dùng có thể thực hành các bài đơn giản mà
không cần dùng thêm led ngoài. 1.1.3. Các thông số kỹ thuật
Các chân vào ra của Arduino Uno lOMoAR cPSD| 58511332 Vi điều khiển ATmega328P Điện áp hoạt động 5V Điện áp đầu vào 7-12V (khuyến nghị)
Điện áp đầu vào (giới 6-20V hạn) Chân I/O kỹ thuật số
14 (trong đó 6 cung cấp đầu ra PWM) Chân I/O kỹ thuật số 6 PWM Chân đầu vào tương 6 tự Dòng điện DC trên 20mA mỗi chân I/O Dòng điện DC cho 50mA chân 3.3V Bộ nhớ Flash
32 KB (ATmega328P) trong đó 0,5 KB được sử
dụng bởi bộ nạp khởi động SRAM 2KB (ATmega328P) Bộ nhớ EEPROM 1KB (ATmega328P) Tốc độ đồng hồ 16MHz LED_TÍCH HỢP 13 Chiều dài 68,6mm Chiều rộng 53,4mm Cân nặng 25g
Thông số của Arduino Uno R3
1.1.4. Ưu nhược điểm của Arduino Ưu điểm: lOMoAR cPSD| 58511332
Dễ dàng sử dụng: Arduino có môi trường lập trình trực quan, ngôn ngữ lập
trình đơn giản (dựa trên C/C++), rất phù hợp cho người mới bắt đầu, kể cả
những người không có nhiều kiến thức về điện tử và lập trình.
Cộng đồng lớn mạnh: Có một cộng đồng người dùng Arduino rất đông đảo
và nhiệt tình trên toàn thế giới. Điều này giúp bạn dễ dàng tìm thấy tài liệu,
hướng dẫn, thư viện và giải đáp mọi thắc mắc khi gặp khó khăn.
Phần cứng linh hoạt: Arduino có nhiều loại bo mạch khác nhau với các tính
năng và mức giá đa dạng, đáp ứng được nhiều nhu cầu của người dùng.
Ngoài ra, bạn có thể dễ dàng kết nối Arduino với các cảm biến, module và
thiết bị ngoại vi khác.
Giá thành hợp lý: So với các nền tảng tương tự, Arduino có giá thành khá
phải chăng, giúp bạn tiết kiệm chi phí khi bắt đầu làm quen với điện tử.
Mở rộng dễ dàng: Arduino có cấu trúc mô đun, giúp bạn dễ dàng mở rộng
các tính năng của dự án bằng cách thêm các module và shield.
Ứng dụng đa dạng: Arduino có thể được ứng dụng trong rất nhiều lĩnh vực,
từ tự động hóa gia đình, robot, IoT cho đến các dự án nghệ thuật sáng tạo. Nhược điểm:
Hiệu năng: So với các vi điều khiển chuyên dụng, Arduino có tốc độ xử lý
và khả năng tính toán không cao. Vì vậy, nó không phù hợp với các dự án
đòi hỏi thời gian thực và tính toán phức tạp.
Kích thước: Một số loại bo mạch Arduino có kích thước khá lớn, không phù
hợp với các dự án đòi hỏi kích thước nhỏ gọn.
Tiêu thụ điện năng: Arduino tiêu thụ một lượng điện năng nhất định, có thể
không phù hợp với các dự án chạy bằng pin và cần tiết kiệm năng lượng.
Không phải lúc nào cũng là lựa chọn tốt nhất: Trong một số trường hợp, các
nền tảng khác như Raspberry Pi hoặc các vi điều khiển chuyên dụng có thể
phù hợp hơn với dự án của bạn.
1.2.Giới thiệu về LCD 16x2
1.2.1 Khái niệm về LCD 16x2
Màn hình LCD 16x2 (Liquid Crystal Display) sử dụng công nghệ tinh thể lỏng để
hiển thị các ký tự và số liệu. Màn hình này bao gồm các ô nhỏ gọi là pixel, mỗi
pixel có thể thay đổi độ trong suốt để hiển thị các ký tự khác nhau. Với kích thước lOMoAR cPSD| 58511332
16x2, màn hình có thể hiển thị 16 ký tự trên mỗi dòng và có 2 dòng hiển thị. Các
màn hình LCD thường sử dụng giao thức song song để giao tiếp với vi điều khiển,
tuy nhiên, với module I2C, việc kết nối trở nên đơn giản hơn rất nhiều. Màn hình LCD 16x2 Sơ đồ các chân LCD 16x2 Mô tả Chân Ký hiệu
Chân nối đất cho LCD, khi thiết kế mạch ta nối chân 1 Vss
này với GND của mạch điều khiển
Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân 2 VDD
này với VCC=5V của mạch điều khiển 3 VEE
Điều chỉnh độ tương phản của LCD.
Chân chọn thanh ghi (Register select). Nối chân RS với
logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR
của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm
địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu 4 RS DR bên trong LCD.
Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W
với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối 5 R/W
với logic “1” để LCD ở chế độ đọc. lOMoAR cPSD| 58511332 6 E
Chân cho phép (Enable). Sau khi các tín hiệu được đặt
lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển
vào(chấp nhận) thanh ghi bên trong nó khi phát hiện
một xung (high-to-low transition) của tín hiệu chân E. +
Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7
khi phát hiện cạnh lên (low-to-high transition) ở chân E
và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.
Tám đường của bus dữ liệu dùng để trao đổi thông
tin với MPU. Có 2 chế độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ
7 - 14 DB0 DB7 DB4 tới DB7, bit MSB là DB7
Nguồn dương cho đèn nền 15 - GND cho đèn nền 16 -
1.2.3 Nguyên lý hoạt động
Màn hình LCD 16x2 hoạt động dựa trên nguyên lý của tinh thể lỏng. Khi một điện
trường được áp dụng lên tinh thể lỏng, các phân tử tinh thể lỏng sẽ bị sắp xếp lại
để tạo thành một hình ảnh trên màn hình.
Quá trình hoạt động của màn hình LCD 16x2 như sau:
1. Bộ điều khiển nhận tín hiệu điện từ bộ nhớ hoặc từ một nguồn tín hiệu khác.
2. Bộ điều khiển sẽ điều khiển các tín hiệu điện để tạo ra một điện trường trên màn hình tinh thể lỏng.
3. Điện trường này sẽ làm cho các phân tử tinh thể lỏng bị sắp xếp lại để tạo thành
một hình ảnh trên màn hình.
4. Hình ảnh này sẽ được hiển thị trên màn hình cho đến khi bộ điều khiển nhận
được tín hiệu điện mới. lOMoAR cPSD| 58511332
1.2.4. Ứng dụng của Màn hình LCD 16x2:
Màn hình LCD 16x2 (16 cột x 2 hàng) là một loại màn hình tinh thể lỏng phổ biến
trong các ứng dụng điện tử, đặc biệt là trong lĩnh vực lập trình vi điều khiển. Ứng
dụng của nó phụ thuộc vào khả năng hiển thị thông tin văn bản một cách rõ ràng và
dễ đọc. Dưới đây là một số ứng dụng chính:
1. Trong các thiết bị điều khiển và giám sát:
o Thiết bị đo lường: Hiển thị các thông số đo lường như nhiệt độ, áp suất, độ
ẩm, vv. Ví dụ, trong các thiết bị đo lường trong phòng thí nghiệm, trong hệ
thống kiểm soát môi trường.
o Hệ thống báo động: Hiển thị trạng thái hoạt động, các cảnh báo hoặc lỗi. Có
thể hiển thị thông tin về các sự kiện như cháy, trộm cắp, hoặc sự cố khác. o
Thiết bị kiểm soát từ xa: Hiển thị các thông tin điều khiển, trạng thái thiết
bị, hoặc các thông số hoạt động.
o Thiết bị điều khiển máy móc: Hiển thị trạng thái hoạt động của máy, các
thông số điều khiển, tình trạng vận hành, và các thông tin báo lỗi.
2. Trong các thiết bị điện tử gia dụng:
o Máy tính bỏ túi: Có thể hiển thị kết quả tính toán, các lệnh được nhập, và các thông tin khác.
o Thiết bị điều khiển đèn, điều hòa, vv: Hiển thị thông tin về trạng thái thiết
bị, cài đặt nhiệt độ, giờ, và các chức năng khác.
o Thiết bị giải trí nhỏ gọn: Hiển thị thông tin về bài hát, kênh, hoặc các thông số khác.
3. Trong các ứng dụng giáo dục và đào tạo:
o Máy tính học tập: Hiển thị các bài học, ví dụ, các bảng tính, và các công thức toán học.
o Mô phỏng: Hiển thị các mô phỏng, ví dụ, mô phỏng các quá trình vật lý, hóa học, hoặc sinh học.
4. Trong các dự án lập trình vi điều khiển: lOMoAR cPSD| 58511332
o Các dự án giáo dục: Dùng để hiển thị thông tin, dữ liệu, và kết quả của các
chương trình được viết trên vi điều khiển.
o Các dự án điều khiển tự động: Hiển thị thông tin về các hoạt động của hệ
thống điều khiển được lập trình.
o Các dự án điều khiển robot: Hiển thị thông tin về trạng thái của robot, vị trí,
hoặc các thông số vận hành.
1.2.5. Ưu nhược điểm của LCD 16x2
Ưu điểm của màn hình LCD 16x2:
Dễ sử dụng: Giao diện đơn giản và có nhiều thư viện hỗ trợ cho các nền tảng
như Arduino, làm cho nó dễ dàng tích hợp vào các dự án.
Tiêu thụ năng lượng thấp: LCD tiêu thụ rất ít điện năng so với các loại màn
hình khác như LED hay OLED, rất phù hợp cho các thiết bị chạy pin.
Hiển thị rõ ràng: Với đèn nền (backlight), nội dung hiển thị có thể được đọc
rõ ràng trong nhiều điều kiện ánh sáng khác nhau.
Giá thành rẻ: Màn hình LCD 16x2 có giá thành rất phải chăng, phù hợp với
các dự án có ngân sách hạn chế.
Độ bền cao: Các màn hình LCD có tuổi thọ cao và ít bị hỏng hóc nếu được sử dụng đúng cách.
Không phát sáng: Không tự phát sáng như LED, điều này có thể là một lợi
thế trong một số ứng dụng nơi ánh sáng phát ra có thể gây phiền nhiễu.
Nhược điểm của màn hình LCD 16x2
Kích thước hiển thị nhỏ: Chỉ có thể hiển thị 16 ký tự trên mỗi hàng và tổng
cộng hàng, giới hạn lượng thông tin có thể hiển thị cùng một lúc.
Khả năng hiển thị màu sắc: Màn hình LCD 16x2 thường chỉ hiển thị một
màu (thường là màu xanh lá cây hoặc xanh dương trên nền đen), không hỗ
trợ hiển thị màu sắc phong phú.
Góc nhìn hạn chế: Góc nhìn của LCD không rộng như của các công nghệ
màn hình hiện đại khác như TFT hay OLED, có thể khó đọc từ một số góc độ. lOMoAR cPSD| 58511332
Độ phân giải thấp: Với mỗi ký tự được tạo từ một ma trận điểm nhỏ, độ
phân giải và chi tiết của hình ảnh hoặc đồ họa rất hạn chế.
Yêu cầu nhiều chân kết nối: Để hoạt động ở chế độ 8-bit, nó yêu cầu ít nhất
6 chân kỹ thuật số của vi điều khiển, và 4-bit cũng cần 4 chân, điều này có
thể là một hạn chế trong các dự án yêu cầu nhiều chân I/O.
Tốc độ làm mới chậm: So với các màn hình hiện đại, LCD có tốc độ làm
mới khá chậm, không phù hợp cho các ứng dụng yêu cầu hiển thị động nhanh chóng.
Phức tạp trong điều khiển: Mặc dù có thư viện hỗ trợ, việc điều khiển chi
tiết và tùy chỉnh sâu có thể đòi hỏi hiểu biết về các lệnh và thời gian của bộ điều khiển LCD.
Mặc dù có những hạn chế, màn hình LCD 16x2 vẫn là một lựa chọn phổ biến cho
nhiều ứng dụng cần hiển thị thông tin đơn giản và không yêu cầu màu sắc hay độ phân giải cao. lOMoAR cPSD| 58511332
Chương 2: Cách thức hiển thị với LCD 16x2 và lập trình GPIO với Arduino
2.1. Giới Thiệu Chung về Hệ Thống * Mục Đích:
Hệ thống kết hợp màn hình LCD 16x2 và Arduino được thiết kế nhằm đáp ứng các nhu cầu sau:
o Hiển Thị Thông Tin Đơn Giản và Rõ Ràng: Cung cấp một cách hiệu quả để
hiển thị văn bản, số, và ký tự đặc biệt một cách rõ ràng và dễ đọc, phù hợp
cho các ứng dụng cần truyền tải thông tin nhanh chóng và chính xác.
o Tích Hợp Dễ Dàng: Cho phép người dùng dễ dàng kết nối và lập trình màn
hình LCD 16x2 với Arduino, mà không cần kiến thức chuyên sâu về lập
trình nhúng hoặc điện tử.
o Ứng Dụng Đa Dạng: Hệ thống có thể được áp dụng trong nhiều lĩnh vực
như hệ thống đo lường, điều khiển tự động, thiết bị y tế, hệ thống an ninh, và
các dự án IoT, giúp cải thiện hiệu quả và tính năng của các thiết bị.
o Giáo Dục và Học Tập: Cung cấp một nền tảng lý tưởng cho việc học tập và
thực hành về điện tử và lập trình, giúp người dùng hiểu rõ hơn về cách hoạt
động của màn hình LCD và cách sử dụng Arduino.
o Tiết Kiệm Chi Phí: Sử dụng các thành phần phổ biến và có giá thành hợp lý,
giúp giảm chi phí cho các dự án điện tử và tự động hóa.
* Yêu Cầu của Hệ Thống - Yêu Cầu Kỹ Thuật Màn Hình LCD 16x2:
o Kích thước: 16 ký tự trên mỗi dòng, 2 dòng. o Điện áp hoạt động: 5V. o
Nhiệt độ hoạt động: -20°C đến 70°C. o Độ sáng: Điều chỉnh bằng điện trở biến. Arduino:
o Board vi điều khiển với nhiều chân GPIO, USB, và các cổng kết nối khác.
o Hỗ trợ lập trình qua Arduino IDE.
- Các Thiết Bị Ngoại Vi (tùy chọn): lOMoAR cPSD| 58511332
o Cảm biến (ví dụ: cảm biến nhiệt độ, cảm biến ánh sáng, cảm biến vận
động). o LED. o Nút bấm. o Relay. * Các thiết bị: - Phần cứng + Tên linh kiện Arduino Uno R3 LCD 16x2 Mạch I2C lOMoAR cPSD| 58511332 Dây cáp Dây cắm + Mạch điện cơ bản:
Một mạch điện cơ bản để kết nối Arduino với LCD 16x2 bao gồm: lOMoAR cPSD| 58511332
Arduino: Bo mạch vi điều khiển trung tâm, thực hiện các tính toán và điều khiển.
LCD 16x2: Màn hình hiển thị 16 ký tự trên 2 dòng.
Mạch I2C: hiển thị thông tin trên màn hình một cách tiện lợi và tiết kiệm chân kết nối
Dây nối: Để kết nối các thành phần với nhau.
Các chân kết nối thường gặp: GND: Dây nối đất
VCC: chân kết nối đến nguồn điện dương (thường là 5V hoặc 3.3V).
SDA: là đường truyền dữ liệu giữa các thiết bị trên bus I2C.
SCL: là đường xung đồng hồ (clock) giữa các thiết bị trên bus I2C. - Phần mềm: Arduino IDE
2.2. Sơ đồ kết nối lOMoAR cPSD| 58511332
• Kết nối chân GND trên I2C kết nối với chân GND trên Arduino Uno R3
• Kết nối chân VCC trên I2C kết nối với chân 5v trên Arduino Uno R3
• Kết nối chân SDA trên I2C kết nối với chân A4 trên Arduino Uno R3
• Kết nối chân SCLtrên I2C kết nối với chân A5 trên Arduino Uno R3 2.3 Code hiển thị #include #include
LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { lcd.init(); lcd.backlight(); } void loop() { lcd.setCursor(2,0); lcd.print( “Hello word”); lOMoAR cPSD| 58511332 lcd.setCursor(2,1); lcd.print(“Xin chao”); } Giải thích code:
LiquidCrystal_I2C lcd(0x27,16,2);
• Đặt địa chỉ LCD là 0x27 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ỏ đến vị trí cột thứ 2 , dòng thứ 0 trên màn hình
* 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("Hello word ");
Xuất ra dòng chữ Hello word tại vị trí con trỏ ở dòng 0, cột 2. lcd.setCursor(2,1); lcd.print("Xin chao");
Đoạn code này thì tương tự như trên, xuất ra dòng chữ “Xin chào” tại vị trí con trỏ ở hàng 1, cột 2. lOMoAR cPSD| 58511332 2.4
Các bước thực hiện
B1: Kết nối phần cứng:
- Kết nối các chân của LCD với Arduino theo đúng sơ đồ.
B2: Cài đặt thư viện. - Khởi tạo thư viện:
Khai báo thư viện LiquidCrystal và khởi tạo đối tượng LCD
+ Trong “Sketch” chọn “Include Library” để gọi thư viện “LiquidCrystal_I2C.h” Bước
3: Thực hiện nạp code vào Arduino Uno
Trước khi, nạp code thực hiện cắm ardunio vào máy tính. Sau đó, kiểm tra cổng bằng cách: lOMoAR cPSD| 58511332
+) Trên giao diện phần mềm Ardunio Uno chọn Tools, sau đó chọn Port hiện thị
cổng là đã kết nối cổng thành công.
+) Tiếp theo vào Tool chọn Board chọn Arduino Uno.
Thực hiện nạp code bằng cách ấn vào biểu tượng dấu check để check lại xem có lỗi
code không, nếu không chọn dấu mũi tên để nạp code
Bước 4: Th c hi n đ c k t qua hi n th trên LCDự ệ ọ ế ể ị 2.5 Phân tích đánh giá