You are on page 1of 29

TRƯỜNG ĐẠI HỌC KINH TẾ CÔNG NGHIỆP LONG AN

KHOA CÔNG NGHỆ

ĐỒ ÁN MÔN HỌC

LẬP TRÌNH NHÚNG


ĐỀ TÀI:

THIẾT KẾ MẠCH ĐÈN LED VÀ MẠCH ĐO NHIỆT ĐỘ, ĐỘ


ẨM HIỂN THỊ QUA LCD, DI ĐỘNG

Giảng viên hướng dẫn : PGS.TS. Nguyễn Thành Bình

Sinh viên thực hiện: Huỳnh Hữu Tài

Mã số sinh viên: 1851010017

Sinh viên thực hiện: Lê Thành Đạt

Mã số sinh viên: 1851010013

LONG AN, 2021


LỜI CẢM ƠN

Em xin gửi lời cảm ơn chân thành đến thầy PGS.TS. Nguyễn Thanh Bình đã
tận tình hướng dẫn, chỉ dạy trong suốt quá trình thực hiện đề tại của khóa học này.

Tuy nhiên trong quá trình nghiên cứu thực hiện đề tài, do kiến thức chuyên
ngành còn hạn chế nên em vẫn còn nhiều thiếu sót khi tìm hiểu, trình bày sản phẩm
đề tài. Rất mong nhận được sự quan tâm, góp ý của thầy để đề tài của em được đầy
đủ và hoàn chỉnh hơn.

Xin chân thành cảm ơn

Long An, ngày tháng năm 2021


Sinh viên thực hiện

Huỳnh Hữu Tài

Lê Thành Đạt

1
LỜI NÓI ĐẦU

Công nghệ vi điều khiển là một trong những thành tựu khoa học đánh dấu
bước ngoặt trong lịch sử về sự phát triển của ngành khoa học – công nghệ. Nó đã
đóng góp hàng loạt các ứng dụng và sản phẩm vào đời sống thực tiễn của con
người, trên hầu hết tất cả các lĩnh vực. Đặc biệt trong nền công nghiệp hóa và hiện
đại hóa của nước ta. Sở dĩ vi điều khiển có thể giúp con người tự động hóa trong
quá trình sản xuất, phục vụ cuộc sống vì chúng có khả năng sau: Nhận lệnh thao tác
từ người dùng thông qua bàn phím, nút nhấn, cảm biến đo lường, nhận dữ liệu từ
những vi điều khiển khác, xử lý tính toán, giải mã dữ liệu, đưa kết quả đầu ra để
hiển thị dữ liệu qua màn hình, đưa kết quả đầu ra bằng tín hiệu điện để điều khiển
còi báo, động cơ, bóng đèn, sợi đốt, màn hình…
Chính nhờ những khả năng đó mà con người đã sử dụng những bộ vi điều
khiển chuyên dụng để tích hợp trên các thiết bị điện tử thông minh có khả năng tự
động hóa hoàn toàn.
Tìm hiểu về vi điều khiển là ứng dụng vi điều khiển vào việc THIẾT KẾ
MẠCH ĐÈN LED VÀ MẠCH ĐO NHIỆT ĐỘ, ĐỘ ẨM HIỂN THỊ QUA
LCD, DI ĐỘNG là đề tài mà chúng em chọn để tìm hiểu trong bộ môn Lập Trình
Nhúng.

Nội dung bài báo cáo:

Chương 1: Giới thiệu.

Chương 2: Cơ sở lý thuyết.

Chương 3: Phân tích và thiết kế.

Kết Luận

2
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

.....................................................................................................................................

Long An, ngày tháng năm 2021


Giảng viên hướng dẫn

PGS.TS. Nguyễn Thanh Bình

3
MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU.......................................................................................7

1.1. Giới thiệu đề tài..............................................................................................7

1.2. Nội dung đề tài...............................................................................................7

1.2.1. Mục tiêu...................................................................................................7

1.2.2. Giải pháp công nghệ................................................................................7

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT..........................................................................8

2.1. Arduino...........................................................................................................8

2.1.1. Giới thiệu chung......................................................................................8

2.1.2. Sơ đồ và thông số kỹ thuật.......................................................................9

2.1.3. Trình biên dịch Arduino IDE.................................................................12

2.2. Cảm biến đo nhiệt độ, độ ẩm DHT-11..........................................................14

2.2.1. Giới thiệu chung....................................................................................14

2.2.2. Chức năng chân và các thông số kỹ thuật..............................................14

2.3. Màn hình hiển thị LCD 1602........................................................................15

2.3.1. Giới thiệu chung....................................................................................15

2.3.2. Chức năng các chân và thông số kỹ thuật LCD 1602............................17

2.4. Cảm biến độ ẩm đất......................................................................................19

2.4.1. Giới thiệu chung....................................................................................19

2.4.2. Giao tiếp cảm biến độ ẩm đất với Arduino............................................19

2.5. Module I2C Arduino....................................................................................20

2.5.1. Giới thiệu Module I2C Arduino.............................................................20

2.5.2. Giao tiếp I2C LCD 1602 với Arduino...................................................21

2.6. Module NRF24L01.......................................................................................21

2.6.1. Giới thiệu Module NRF24L01...............................................................21

2.6.2. Giao tiếp Module NRF24L01 với Arduino............................................22


4
2.7. Mạch đèn LED.............................................................................................22

2.8. Phần mềm Proteus........................................................................................23

CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ............................................................24

3.1. Thực hiện mạch đèn LED.............................................................................24

3.1.1. Yêu cầu đề tài........................................................................................24

3.1.2. Nguyên liệu...........................................................................................24

3.1.3. Mạch LED.............................................................................................24

3.2. Thực hiện mạch đo nhiệt độ, độ ẩm hiển thị lên LED và di động.................25

3.2.1. Yêu cầu đề tài........................................................................................25

3.2.2. Nguyên liệu...........................................................................................25

3.2.3. Mạch đo nhiệt độ, độ ẩm hiển thị lên LED và di động..........................25

3.3. Kết quả.........................................................................................................27

3.4. Ưu điểm – Nhược điểm................................................................................27

3.5. Hướng phát triển tương lai............................................................................27

3.6. Tài liệu tham khảo........................................................................................27

5
MỤC LỤC HÌNH ẢNH

Hình 2.1 Minh họa các chân Arduino........................................................................9


Hình 2.2 Trình biên dịch Arduino IDE....................................................................12
Hình 2.3 Module DHT-11.......................................................................................14
Hình 2.4 Các chân của module DHT-11..................................................................14
Hình 2.5 Màn hình LCD 1602.................................................................................16
Hình 2.6 Các chân của màn hình LCD 1602...........................................................17
Hình 2.7 Cảm biến độ ẩm đất..................................................................................19
Hình 2.8 Module I2C...............................................................................................20
Hình 2.9 Module NRF24L01...................................................................................21
Hình 2.10 Mạch vẽ trong phầm mềm Proteus.........................................................23
Hình 3.1 Mạch đèn..................................................................................................24
Hình 3.2 Mạch đo nhiệt độ, độ ẩm hiển thị lên LCD...............................................25
Hình 3.3 Kết quả đo hiển thị lên smartphone..........................................................26

MỤC LỤC BẢNG

BẢNG 2.1 Sơ đồ chân và thông số của Arduino.......................................................9


BẢNG 2.2 Các chân của module DHT-11..............................................................15
BẢNG 2.3 Chân giao tiếp cảm biến nhiệt độ với Arduino......................................15
BẢNG 2.4 Chân giao tiếp cảm biến độ ảm đất với Arduino...................................19
BẢNG 2.5 Chân giao tiếp module I2C LCD 1602 với Arduino.............................21
BẢNG 2.6 Chân giao tiếp module NRF24L01 với Arduino....................................22

6
1. GIỚI THIỆU

1.1. Giới thiệu đề tài

Cùng hòa nhịp với sự phát triển của thế giới, Việt Nam ta tiến dần trên con
đường công nghiệp hóa, hiện đại hóa nền sản xuất công nghiệp cũng như đời sống
của người dân. Với sự phát triển của công nghệ khoa học thì công cuộc này đang có
những bước tiến vược bậc. Ứng dụng việc đo nhiệt độ, độ ẩm đang được sử dụng
rộng rãi ở nhiều lĩnh vực và nhiều loại sản phẩm khác nhau.

Cùng hòa nhịp với sự phát triển của thế giới, Việt Nam ta tiến dần trên con
đường công nghiệp hóa, hiện đại hóa nền sản xuất công nghiệp cũng như đời sống
của người dân. Với sự phát triển của công nghệ khoa học thì công cuộc này đang có
những bước tiến vược bậc.

Chính vì vậy, thấy được tầm quan trọng và sự cần thiết phải có của việc đo
nhiệt độ, độ ẩm, em đã thực hiện đồ án mô hình “THIẾT KẾ MẠCH ĐÈN VÀ
MẠCH ĐO NHIỆT ĐỘ, ĐỘ ẨM HIỂN THỊ LCD VÀ DI ĐỘNG” nhằm đáp
ứng nhu cầu của mọi người.

1.2. Nội dung đề tài

1.2.1 Mục tiêu

- Tìm hiểu lập trình nhúng bằng Arduino


- Thiết kế mạch đèn LED đáp ứng nhu cầu làm đồ trang trí, đồ handmade của
mọi người với thiết kế đơn giản, dễ sử dụng.
- Thiết kế mạch đo Thiết kế mạch đo nhiệt độ và đổ ẩm được hiển thị qua
mạch LCD và di động

1.2.2 Giải pháp công nghệ

- Ngôn ngữ thực hiện: C++.


- Môi trường lập trình phát triển: Arduino IDE.
- Mạch sử dụng: Arduino.
- Cảm biến nhiệt độ, độ ẩm DHT11.
- Module NRF24L01 – Thu phát sóng vô tuyến hiển thị lên di động.

7
2. CƠ SỞ LÝ THUYẾT

2.1. Arduino

2.1.1 Giới thiệu chung

Arduino được xem là nền tảng của “mã nguồn mở” được dùng để tạo nên các
loại ứng dụng trong lĩnh vực điện tử, khả năng tương tác với các thiết bị tương ứng
nhau hoặc tương tác với môi trường để thuận lợi hơn.

Arduino được ví như chiếc máy tính mini để người sử dụng dùng để lập trình,
xây dựng và thực hiện các loại dự án về điện tử một cách hữu ích nhất mà không
cần đến sự xuất hiện của các loại công cụ chuyên biệt dùng riêng cho quá trình phục
vụ nạp code.

Arduino gồm có hai phần chính đó là phần cứng và phần mềm:

o Phần cứng: Vi điều khiển (hay còn được gọi với cái tên khác là board
mạch mã nguồn mở).
o Arduino Uno: là một loại board mạch đơn giản nhất phù hợp với đối
tượng mới bắt đầu. Dữ liệu số bao gồm 14 chân, đầu vào gồm 6 chân
5V, khả năng phân giải là 1024 mức. Chạy với tốc độ 16MHz, điện áp
từ 7V đến 12V. Kích thước của Board này là 5,5x7cm. Giá 200.000
đồng.
o Phần mềm: Các phần mềm dành riêng hỗ trợ cho sự tích hợp IDE với
tác dụng soạn thảo, nạp chương cho board và biên dịch code.

8
2.1.2 Sơ đồ và thông số kỹ thuật

Vi điều khiển ATmega328 họ 8bit


Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 30mA
Điện áp vào khuyên dùng 7-12V DC
Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
32 KB (ATmega328) với 0.5KB dùng bởi
Bộ nhớ flash
bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
BẢNG 2.1 Sơ đồ chân và thông số của Arduino

Hình 2.1 Minh họa các chân Arduino

- Vi điều khiển ATMEGA328P


o Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu
trữ trong bộ nhớ Flash của vi điều khiển. Thường thì sẽ có
khoảng vài KB trong số này sẽ được dùng cho bootloader
9
nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này
đâu.
 2KB cho SRAM (Static Random Access Memory): giá trị các
biến bạn khai báo khi lập trình sẽ lưu ở đây. Bạn khai báo càng
nhiều biến thì càng cần nhiều bộ nhớ RAM. Tuy vậy, thực sự
thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn
phải bận tâm. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.
 1KB cho EEPROM ( Electrically Erasable Programmable Read
Only Memory): đây gióng như một chiếc ổ cứng mini – nơi
bạn có thể đọc và ghi dữ liệu của mình vào đây mà không phải
lo bị mất khi cúp điện giống như dữ liệu trên SRAM.
- Chức năng các chân của Arduino
o Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc
cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là
6-20V. Thường thì cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu
bạn không có sẵn nguồn từ cổng USB. Nếu cấp nguồn vượt quá
ngưỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO.
o Các chân năng lượng:
 GND (Ground): cực âm của nguồn điện cấp cho Arduino
UNO. Khi bạn dùng các thiết bị sử dụng những nguồn điện
riêng biệt thì những chân này phải được nối với nhau.
 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là
500mA.
 3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân
này là 50mA.
 Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO,
bạn nối cực dương của nguồn với chân này và cực âm của
nguồn với chân GND.
 IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO
có thể được đo ở chân này. Và dĩ nhiên nó luôn là 5V. Mặc dù
vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi
chức năng của nó không phải là cấp nguồn.

10
 RESET: việc nhấn nút Reset trên board để reset vi điều khiển
tương đương với việc chân RESET được nối với GND qua 1
điện trở 10KΩ.
- Các cổng vào / ra:
o Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu.
Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên
mỗi chân là 40mA. Ở mỗi chân đều có các điện trở pull-up từ được
cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện
trở này không được kết nối).
o Một số chân digital có các chức năng đặc biệt như sau:

 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX)


và nhận (receive – RX) dữ liệu TTL Serial. Arduino Uno có
thể giao tiếp với thiết bị khác thông qua 2 chân này. Kết nối
bluetooth thường thấy nói nôm na chính là kết nối Serial không
dây. Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2
chân này nếu không cần thiết.
 Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho xuất ra xung PWM
với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V →
5V) bằng hàm analogWrite(). Nói một cách đơn giản, bạn có
thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V
thay vì chỉ cố định ở mức 0V và 5V như những chân khác.
 Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13
(SCK). Ngoài các chức năng thông thường, 4 chân này còn
dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị
khác.
 LED 13: trên Arduino UNO có 1 đèn LED màu cam (kí hiệu
chữ L). Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để
báo hiệu. Nó được nối với chân số 13. Khi chân này được
người dùng sử dụng, LED sẽ sáng.

o Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín
hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V.

11
Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu
khi sử dụng các chân analog. Tức là nếu bạn cấp điện áp 2.5V vào
chân này thì bạn có thể dùng các chân analog để đo điện áp trong
khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.

o Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao


tiếp I2C/TWI với các thiết bị khác.

2.1.3 Trình biên dịch Arduino IDE

Hình 2.2 Trình biên dịch Arduino IDE

- Để lập trình được cho các board Arduino, các bạn cần phải có một công cụ
gọi là Integrated Development Environment (IDE). Công cụ này được đội
ngũ kĩ sư của Arduino phát triển và có thể chạy trên Windows , MAC OS X
và Linux.
- Ưu điểm:
o Có thể sử dụng ngay:
 Ưu điểm lớn nhất của Arduino là có thể sử dụng ngay. Vì
Arduino là một bộ hoàn chỉnh gồm bộ nguồn 5V, một ổ ghi,
một bộ dao động, một vi điều khiển, truyền thông nối tiếp,
LED và các jack cắm. Bạn không cần phải suy nghĩ về các kết
nối lập trình hoặc bất kỳ giao diện nào khác. Chỉ cần cắm nó
vào cổng USB của máy tính.

12
o Các mẫu có sẵn:
 Một ưu điểm lớn khác của Arduino là thư viện các mẫu có sẵn
trong phần mềm Arduino. Để nói rõ hơn về ưu điểm này có thể
lấy ví dụ về đo lường điện áp. Ví dụ nếu bạn muốn đo điện áp
bằng cách sử dụng vi điều khiển ATmega8 và muốn hiển thị
đầu ra trên màn hình máy tính thì bạn phải trải qua toàn bộ quá
trình. Quá trình này sẽ bắt đầu từ việc học về bộ vi điều khiển
của ADC để đo lường, sau đó học giao tiếp nối tiếp để hiển thị
và cuối cùng là về bộ chuyển truyền cổng USB.
 Sau khi bạn đưa vào một số điện trở và diode zener là project
có thể sẵn sàng. Bạn có thể dễ dàng thấy điện áp trên arduino.
o Các chức năng giúp đơn giản hóa công việc:
 Trong quá trình mã hóa Arduino, bạn sẽ nhận thấy một số chức
năng giúp đơn giản hóa công việc. Một ưu điểm khác của
Arduino là khả năng chuyển đổi đơn vị tự động của nó. Trong
quá trình gỡ lỗi (debug), bạn không phải lo lắng về chuyển đổi
đơn vị. Chỉ cần chú ý vào các phần chính của project mà không
phải lo lắng về các vấn đề phụ.
o Cộng đồng lớn:
 Có rất nhiều diễn đàn trên internet nói về Arduino. Kỹ sư và
các chuyên gia đang thực hiện dự án của họ thông qua
Arduino. Bạn có thể dễ dàng tìm thấy mọi thông tin về arduino.
 Vì vậy, có thể kết luận lợi thế của Arduino là trong khi làm
việc trên các project khác nhau, bạn chỉ cần lo về ý tưởng sáng
tạo. Phần còn lại Arduino sẽ lo hết.

2.2. Cảm biến đo nhiệt độ, độ ẩm DHT-11

2.2.1 Giới thiệu chung

13
- Cảm biến nhiệt độ, độ ẩm DHT11 ra chân được tích hợp sẵn điện trở 5,1K
giúp người dùng dễ dàng kết nối và sử dụng hơn so với cảm biển DHT11
chưa ra chân, module lấy dữ liệu thông qua giao tiếp 1 wire( giao tiếp 1 dây).
Bộ tiền xử lý tín hiệu tích hợp trong cảm biến giúp bạn có được dữ liệu chính
xác mà không cần phải qua bất kỳ tính toán nào. Module được thiết kế hoạt
động ở mức điện áp 5VDC.

Hình 2.3 Module DHT-11

2.2.2 Chức năng chân và các thông số kỹ thuật

Hình 2.4 Các chân của module DHT-11

Tên Chức năng


VCC Nguồn 5V
GND Nguồn 0V
DATA Chân nối với vi điều khiển
BẢNG 2.2 Các chân của module DHT-11

- Thông số kỹ thuật

14
o Điện áp hoạt động: 3V – 5V (DC)
o Dãi độ ẩm hoạt động: 20% - 90% RH, sai số ±5%RH
o Dãi nhiệt độ hoạt động: 0°C ~ 50°C, sai số ±2°C
o Khoảng cách truyền tối đa: 20m
- Kết nối chân với Arduino

Arduino DHT-11
5V VCC
GND GND
PIN 2 DATA

BẢNG 2.3 Chân giao tiếp cảm biến nhiệt độ với


Arduino
2.3. Màn hình hiển thị LCD 1602

2.3.1 Giới thiệu chung

- Ngày nay, thiết bị hiển thị LCD 1602 (Liquid Crystal Display) được sử dụng
trong rất nhiều các ứng dụng của vi điều khiển. LCD 1602 có rất nhiều ưu
điểm so với các dạng hiển thị khác như: khả năng hiển thị kí tự đa dạng (chữ,
số, kí tự đồ họa); dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao
tiếp khác nhau, tiêu tốn rất ít tài nguyên hệ thống, giá thành rẻ,…
- LCD 1602 một sản phẩm quen thuộc với những người mới học và muốn thực
hiện các dự án về điện tử, lập trình. Với khả hiển thị 2 dòng với mỗi dòng 16
ký tự, đồng thời có rất nhiều ví dụ mẫu được cộng đồng Arduino xây dựng
sẵn sẽ giúp người mới sử dụng làm quen nhanh hơn cũng như tiết kiệm được
thời gian trong việc phát triển ứng dụng của mình.

15
Hình 2.5 Màn hình LCD 1602

16
2.3.2 Chức năng các chân và thông số kỹ thuật LCD 1602

- Chức năng các chân

Hình 2.6 Các chân của màn hình LCD 1602

o Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch
điều khiển.
o Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối với VCC = 5V
của mạch điều khiển.
o Chân số 3 - VE : điều chỉnh độ tương phản của LCD.
o Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc
logic "1":
 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 DR bên
trong LCD.
o Chân số 5 - R/W : chân chọn chế độ đọc/ghi (Read/Write), được nối
với logic “0” để ghi hoặc nối với logic “1” đọc.
o Chân số 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 này như sau:

17
 Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh
ghi bên trong 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.
o Chân số 7 đến 14 - D0 đến D7: 8 đườ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 là:
 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ừ DB4 tới
DB7, bit MSB là DB7).
o Chân số 15 - A : nguồn dương cho đèn nền.
o Chân số 16 - K : nguồn âm cho đèn nền.
- Thông số kỹ thuật
o Điện áp MAX : 7V.
o Điện áp MIN : - 0,3V.
o Hoạt động ổn định : 2.7-5.5V.
o Điện áp ra mức cao : > 2.4.
o Điện áp ra mức thấp : < 0.4V.
o Dòng điện cấp nguồn : 350uA - 600uA.
o Nhiệt độ hoạt động : - 30 - 75 độ C.
o Kích thước: 80 x 36 x 12.5 mm.
o Chữ trắng, nền xanh.
o Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối
với Breadboard.
o Đèn LED nền có thể dùng biến trở hoặc PWM điều chình độ sáng
thích hợp.
o Có thể được điều khiển với 6 dây tín hiệu.

18
2.4. Cảm biến độ ẩm đất

2.4.1 Giới thiệu chung

- Cảm biến độ ẩm đất, trạng thái đầu ra mức thấp (0V), khi đất thiếu nước đầu
ra sẽ là mức cao (5V), độ nhạy cao chúng ta có thể điều chỉnh được bằng
biến trở. Phần đầu đo được cắm vào đất để phát hiện độ ẩm của đất, khi độ
ầm của đất đạt ngưỡng thiết lập, đầu ra DO sẽ chuyển trạng thái từ mức thấp
lên mức cao. Nhờ thế, các bạn có thể sử dụng Analog hoặc Digital của
Arduino để đọc giá trị từ cảm biến.

Hình 2.7 Cảm biến độ ẩm đất

2.4.2 Giao tiếp cảm biến độ ẩm đất với Arduino

- Cảm biến độ ẩm đất có 4 chân : Vcc, GND, 2 ngõ ra là D0 ( cho giá trị trả về
mức logic 0 1) và A0 (giúp bạn có thể đọc được chính xác hơn độ ẩm của
đất). Bạn có thể dùng 1 trong 2 chân này...Ở đây đọc giá trị của cả 2 chân.

Cảm biến độ ẩm đất Arduino ANO


Vcc 5v
Gnd Gnd
D0 2
A0 A0
BẢNG 2.4 Chân giao tiếp cảm biến độ ảm đất với Arduino

19
2.5. Module I2C Arduino

2.5.1 Giới thiệu Module I2C Arduino

- LCD có quá 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 16x2 (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 16x2, LCD
20x4, ...) và tương thích với hầu hết các vi điều khiển hiện nay

Hình 2.8 Module I2C

- Thông số kỹ thuật
o Điện áp hoạt động: 2.5-6V DC.
o Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780).
o Giao tiếp: I2C.
o Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân
A0/A1/A2).
o Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.
o Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.
- Các lỗi thường gặp
o Hiển thị một dãy ô vuông.
o Màn hình chỉ in ra một ký tự đầu.
o Màn hình nhấp nháy.
20
o Các lỗi này chủ yếu là do sai địa chỉ bus, để sửa lỗi thay địa chỉ mặc
định là "0x27" thành "0x3F.

2.5.2 Giao tiếp I2C LCD 1602 với Arduino

Module I2C LCD 16x2 Arduino UNO


GND GND
VCC 5V
SDA A4/SDA
SCL A5/SCL
BẢNG 2.5 Chân giao tiếp module I2C LCD 1602 với Arduino

2.6. Module NRF24L01

2.6.1 Giới thiệu Module NRF24L01

- Module NRF24L01 là một module truyền nhận dữ liệu nâng cao với khả
năng kết nối point-to-point (2 node mạng), hoặc network (mạng lưới nhiều
node mạng), sử dụng sóng radio 2.4GHz.

Hình 2.9 Module NRF24L01

21
2.6.2 Giao tiếp Module NRF24L01 với Arduino

Module NRF24L01 Arduino UNO


GND GND
VCC 3.3V
CE PIN 9
CSN PIN 10
SCK PIN 13
MOSI PIN 11
MISO PIN 12
IRQ Không dùng
BẢNG 2.6 Chân giao tiếp module NRF24L01 với Arduino

2.7. Mạch đèn LED

- Mỗi khi dùng một con LED chúng ta phải khai báo pinMode OUTPUT
chân digital mà ta sử dụng cho con đèn LED.
- Để bật một con đèn LED, phài dùng digiatalWrite HIGH cho chân được kết
nối với con LED.
- Để tắt một con đèn LED, phài dùng digiatalWrite LOW cho chân được kết
nối với con LED.
- Để thấy được trạng thái bật tắt của bòng đèn chúng ta phải đặt nó ở trong
vòng loop và phải dừng chương trình trong một khoảng thời gian đủ lâu để
mắt cảm nhận được. Vì vậy chúng ta phải sữ dụng hàm delay để dừng hẳn
chương trình trong một khoảng thời gian được đặt ra.
- Về nguyên lý mở tắt của đèn chúng ta sữ dụng các vòng lập để tự tạo cho
mình nhiều kiểu đèn sáng khác nhau.

22
2.8. Phần mềm Proteus

- Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử bao
gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi điều
khiển như MCS-51, PIC, AVR, … Proteus là phần mềm mô phỏng mạch
điện tử của Lancenter Electronics, mô phỏng cho hầu hết các linh kiện điện
tử thông dụng, đặc biệt hỗ trợ cho cả các MCU như PIC, 8051, AVR,
Motorola.
- Phần mềm bao gồm 2 chương trình:
o ISIS cho phép mô phỏng mạch
o ARES dùng để vẽ mạch in.
- Proteus là công cụ mô phỏng cho các loại vi điều khiển khá tốt, nó hỗ trợ các
dòng vi điều khiển PIC, 8051, PIC, dsPIC, AVR, HC11, MSP430,
ARM7/LPC2000 ... các giao tiếp I2C, SPI, CAN, USB, Ethernet,... ngoài ra
còn mô phỏng các mạch số, mạch tương tự một cách hiệu quả. Nếu bạn đang
muốn học lập trình trên Arduino hoặc bất kì vi điều khiển nào khác mà
không có điều kiện hoặc kinh nghiệm để làm các mạch phát triển hoặc bạn
muốn kiểm tra chương trình trước khi nạp vào mạch phát triển thì Proteus là
lựa chọn không thể bỏ qua.
- Ngoài chức năng mô phỏng "bá đạo" ra thì phần mềm Proteus còn được sử
dụng để thiết kế mạch, làm board, mô phỏng 3D.

Hình 2.10 Mạch vẽ trong phầm mềm Proteus

23
3. PHÂN TÍCH VÀ THIẾT KẾ

3.1. Thực hiện mạch đèn LED

3.1.1 Yêu cầu đề tài

- Mạch đèn LED biểu diễn nhiều chết độ sáng tắt khác nhau dành để trang trí.
- Tìm hiểu code và viết các phương thức sáng khác nhau.

3.1.2 Nguyên liệu

- Test board hàn


- Đèn Led
- Mạch Arduino chip ATMEGA328P.

24
3.1.3 Mạch LED

Hình 3.11 Mạch đèn

3.2. Thực hiện mạch đo nhiệt độ, độ ẩm hiển thị lên LED và di động

3.2.1 Yêu cầu đề tài

- Mạch đo nhiệt độ, độ ẩm đơn giản dễ sử dụng.


- Tìm hiểu nguyên lý hoạt động của cảm biển DHT 11 đo nhiệt độ, độ ẩm.
- Tìm hiểu lập trình nhúng, vi điều khiển Arduino và I2C.

3.2.2 Nguyên liệu

- Cảm biến DHT – 11.


- Các dây cắm.
- 1 Module I2C Arduino
- 1 LCD 1602
- Mạch Arduino chip ATMEGA328P.

25
- 1 Module NRF24L01

3.2.3 Mạch đo nhiệt độ, độ ẩm hiển thị lên LED và di động

Hình 3.12 Mạch đo nhiệt độ, độ ẩm hiển thị lên LCD

26
Hình 3.13 Kết quả đo hiển thị lên smartphone

27
KẾT LUẬN

3.3. Kết quả

- Hiểu được kiến thức cơ bản về “ Lập trình nhúng “.


- Cách sử dụng Arduino, DHT – 11, I2C với LCD 1602 và Module
NRF24L01.
- Có được mạch đo nhiệt độ, độ ẩm cơ bản.

3.4. Ưu điểm – Nhược điểm

- Ưu điểm:
 Mạch đơn giản, dễ dùng, thích hợp với mọi lứa tuổi, chỉ cần
cấp nguồn cho mạch chạy.
- Nhược điểm:
 Mạch có thang đo hẹp và độ chính xác không cao.

3.5. Hướng phát triển tương lai

- Phát triển chức năng đưa dữ liệu lên website hoặc phần mềm dạng biểu đồ để
dễ quản lý.

3.6. Tài liệu tham khảo

Võ Thế Hiễn. “ĐỒ ÁN MÔN HỌC – THIẾT KẾ MẠCH ĐO NHIỆT ĐỘ, ĐỘ ẨM


HIỂN THỊ LCD 1602”.

28

You might also like