Tải bản đầy đủ (.pdf) (39 trang)

BÁO cáo đồ án môn học 2 đề tài THIẾT k ế và THI CÔNG MẠCH CẢNH báo NỒNG độ cồn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.26 MB, 39 trang )

 

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM K Ỹ THUẬT TP.HCM
KHOA ĐIỆN –  ĐIỆN TỬ  

BÁO CÁO ĐỒ ÁN MÔN HỌC 2
 ĐỀ  TÀI

THIẾT K Ế VÀ THI CƠNG MẠCH CẢNH BÁO
NỒNG ĐỘ CỒN 

Tp.Hồ Chí Minh, tháng 05 năm 2019 


 

MỤC LỤC

PHẦN 1. TỔNG QUAN ..................................................................................................... 1
1. GIỚI THIỆU ĐỀ TÀI.................................................................................................1
2. MỤC ĐÍCH NGHIÊN CỨ U ...................................................................................... 1
3. ĐỐI TƯỢ NG VÀ PHẠM VI NGHIÊN CỨ U ........................................................... 2
4. THÔNG SỐ GIỚI HẠ N .............................................................................................2
5. PHƯƠNG PHÁP NGHIÊN CỨ U ..............................................................................2
PHẦN 2. NỘI DUNG ......................................................................................................... 3
CHƯƠNG 1. CƠ SỞ  LÝ THUYẾT. .............................................................................. 3
1.1. Mơ tả q trình ho ạt động....................................................................................... 3
1.2. Ngun tắc hoạt động của cảm biến nồng độ cồn MQ3 .........................................3
1.3. Nguyên tắc k ết nối giữa cảm biến MQ3 và Arduino .............................................. 6
1.4. Cách lậ p trình vớ i Arduino ..................................................................................... 6


1.5. Cách đọc dữ liệu từ cảm biến và hiển thị dữ liệu lên LCD oled .......................... 12
1.6. Hiển thị dữ liệu lên LCD oled ..............................................................................13
1.7. Tìm hiểu về buzzer ...............................................................................................14
CHƯƠNG 2. THIẾT K Ế PHẦN CỨ NG.....................................................................16
2.1. Giớ i thiệu .............................................................................................................. 16
2.2. Thiết k ế sơ đồ khối ...............................................................................................16
2.3. Giải thích chức năng các khối...............................................................................16
2.4. Tính tốn lựa chọn linh kiện .................................................................................18
2.5. Sơ đồ k ết nối mạch ...............................................................................................19
CHƯƠNG 3. THIẾT K Ế PHẦN MỀM ..................................................................... 19
3.1. Lưu đồ chương trình ............................................................................................. 20
3.2. Code chạy chương trình. .......................................................................................20
CHƯƠNG 4. THI CƠNG MẠCH ............................................................................... 25
4.1. Chuẩn bị linh kiện .................................................................................................26


 

4.2. K ết nối mạch ......................................................................................................... 27
CHƯƠNG 5. KẾT QUẢ THỰ C HIỆN VÀ HƯỚ NG PHÁT TRIỂN ...................... 29
5.1. K ết quả thực hiện ..................................................................................................29
5.2. Hướ ng phát triển ...................................................................................................32
PHẦN 3. K ẾT LUẬN .......................................................................................................33
TÀI LIỆU THAM KHẢO. ............................................................................................... 34


 

DANH MỤC CÁC HÌNH VÀ BẢNG 
Hình


Trang

Hình 1.1 Cảm biến MQ-3

4

Hình 1.2 Sơ đồ mạch điện của cảm biến.

5

Hình 1.3 Sơ đồ k ết nối

6

Hình 1.4 Arduino IDE

10

Hình 1.5 Arduino toolbar

10

Hình 1.6 IDE menu

10

Hình 1.7 File menu.

11 


Hình 1.8 Edit menu.

11

Hình 1.9 Sketch menu.

12

Hình 1.10 Hình ảnh mặt trướ c và mặt sau của LCD OLED

12

Hình 2.1 Sơ đồ khối của hệ thống

16

Hình 2.2 Sơ đồ k ết nối khối cảm biến

17

Hình 2.3 Sơ đồ khối hiển thị và cảnh báo

17

Hình 2.4 Sơ đồ mạch

19

Hình 3.1 Lưu đồ thuật tốn


20

Hình 4.1 Sơ đồ k ết nối

28

Hình 5.1 sản phẩm hồn chỉnh

29

Hình 5.2 Trườ ng hợ  p bạn tỉnh táo

29

Hình 5.3 Trườ ng hợ  p bạn đã uống bia

30


 

Hình 5.4 Trườ ng hợ  p bạn uống nhiều bia

30

Hình 5.5 Trườ ng hợ  p bạn uống rượ u

31


Hình 5.6 Trườ ng hợ  p bạn đang say 

31

Bảng

Trang 

Bảng 1 Các thông s ố kĩ thuật của MQ-3

4

Bảng 2 Sơ đồ và chức năng các chân 

13

Bảng 3 Danh sách các linh ki ện

26


 

ĐỒ ÁN 2

PHẦN 1. TỔNG QUAN
1. GIỚ I THIỆU ĐỀ TÀI
Hiện nay, ở  nướ c ta các tệ nạn xã hội ngày càng gia tăng mà một trong những nguyên
nhân chủ yếu đó là do uống nhiều rượu bia. Rượ u, bia là nguyên nhân ch ủ yếu làm
giảm năng suất lao động, gây ra các tệ nạn xã hội như bạo lực, gia đình tan vỡ , con cái


hư hỏng và đặc biệt gây ra các v ụ tai nạn giao thông nghiêm tr ọng và đặc biệt nghiêm
tr ọng. Việt Nam là qu ốc gia thuộc t ốp đầu các nướ c s ử dụng rượ u, bia khi tham gia
giao thơng. Tình tr ạng sử dụng rượ u, bia tràn lan ở  nhiều nơi đã khiến tr ật tự an tồn
giao thơng tr ở thành vấn đề báo động đây chính là ngun nhân hàng đầ u gây tai n ạn

giao thông, khi điề u khiển phương tiện bởi người lái xe thườ ng phản ứng chậm, buồn
ngủ, thiếu tậ p trung, việc nhìn thấy các biển báo, tín hiệu hoặc quan sát trên đườ ng
khơng cịn rõ ràng nên có khi x ử  lý khơng đúng và có thể  gây ra tai nạn. Ngườ i say

cũng "bốc đồng", khơng cịn khả năng kiểm sốt tốc độ cho nên thườ ng phóng nhanh,
vượ t ẩu, lấn đườ ng r ất dễ gây tai nạn.
Chính vì thế, có nhiều cơng trình nghiên c ứu về vấn đề  đo nồng độ cồn đối vớ i
những ngườ i tham gia giao thơng. V ớ i nh ững thực t ế trên, nhóm em xin tìm hi ểu và
nghiên cứu đề tài “Thiết k ế và thi cơng m ạch cảnh báo nồng độ cồn.”. mang tính cộng

đồng và xã hội cao, nhm mục đích chủ  động ngăn ngừa k ị p thờ i và cảnh báo sớ m
hiểm họa về tai nạn giao thông x ảy ra, tạo nên một thói quen và ý thức tốt cho ngườ i
tham gia giao thơng.

2. MỤC ĐÍCH NGHIÊN CỨ U 
Tạo ra thiết bị  cảm biến và cảnh báo nồng độ  cồn từ  mơi trườ ng dùng lậ p trình
Arduino
Thiết bị có khả năng đưa ra cảnh báo vớ i từng mức ngưỡ ng của nồng độ cồn.

Trang 1


 


ĐỒ ÁN 2

3. ĐỐI TƯỢ NG VÀ PHẠM VI NGHIÊN CỨ U


Đối tượ ng nghiên cứ u:

 Nghiên cứu nguyên tắc hoạt động của cảm biến nồng độ cồn
 Nguyên tắc k ết nối giữa cảm biến và Arduino 
Tìm hiểu về cách lậ p trình với Arduino, cách đọc dữ liệu từ cảm biến, cách hiển thị 
dữ liệu lên LCD oled. 


Phạm vi nghiên cứ u:

Dùng lậ p trình Arduino k ết hợ  p vớ i cảm biến nồng độ cồn.
Hiển thị giá tr ị nồng độ và cảnh báo trên LCD oled
Không k ết nối đượ c vớ i các thiết bị ngoại vi

4. THÔNG SỐ GIỚ I HẠN


Sử dụng nguồn pin 9V để  cấ p cho Arduino



Sử dụng nguồn 5V cho oled LCD và c ảm biến MQ3




Mạch sử dụng vi điều khiển



Không k ết nối đượ c vớ i các thiết bị ngoại vi

5. PHƯƠNG PHÁP NGHIÊN CỨ U
 Phương pháp nghiên cứ u lý luận: thông qua vi ệc đọc phân tích tài li ệu c ần thiết
 phục vụ  cho đề  tài… thu thậ p những tài li ệu liên quan và h ệ thống hóa cơ sở   lý
luận, đưa ra những quan điểm nghiên cứu cụ thể, rõ ràng, thuyết phục.

 Phương pháp tiế  p cận môi trườ ng : qua những khảo sát trong thực tiễn, nghiên cứu
ứng dụng nhm mang lại những lợ i ích thiết thực, có tính ứng dụng cao và có kh ả 
năng phát triển mở  r ộng.

Trang 2


 

ĐỒ ÁN 2

PHẦN 2. NỘI DUNG

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT 
1.1. Mơ tả q trình hoạt động
Máy phát hiện nồng độ cồn có nhiệm vụ chính là kiểm tra tr ực tiế p nồng độ cồn
trong hơi thở . Bộ phận cảnh báo có nhiệm vụ chính là phát các tín hiệu cảnh báo khi
nồng độ cồn trong vng không gian thở  trướ c mặt của ngườ i sử dụng quá cao. Chọn


ngưỡ ng chặn và cảnh báo, căn cứ vào các qui định của luật giao thông, ta chọn ngưỡ ng
ngăn chặn và cảnh báo cho hệ thống ứng vớ i nồng độ cồn.


 Nếu nồng độ cồn đo được dướ i 200µg/1 lít khí th ở  hiển thị “ Bạn tỉnh táo” 



 Nếu nồng độ cồn đo đượ c trên 200µg/1 lít khí th ở  và dướ i 250µg/1lit hiển thị “ Bạn

đã uống bia” và led đỏ sẽ sáng.


 Nếu nồng độ cồn đo đượ c trên 250µg/1 lít khí th ở  và dướ i 320µg/1lit hiển thị “ Bạn
uống khá nhiều bia”  led đỏ  sáng đồng thờ i buzzer kêu , oled hi ển thị mức phạt 1
triệu –  2 triệu.



 Nếu nồng độ cồn đo đượ c trên 320µg/1 lít khí th ở  và dướ i 400µg/1lit hiển thị “Bạn
uống rượu” led đỏ sáng đồng thờ i buzzer kêu, oled hi ển thị mức phạt 1 triệu-2 triệu.



 Nếu n ồng độ c ồn đo đượ c trên 400µg/1 lít khí th ở  hi ển thị  “Bạn đang say”  led đỏ 

sáng đồng thờ i buzzer kêu, oled hi ển thị mức phạt 3 triệu-4 triệu.

1.2. Nguyên tắc hoạt động của cảm biến nồng độ cồn MQ3
Cảm biến MQ-3 đượ c s ử d ụng để  đo nồng độ c ồn. Đượ c làm từ v ật li ệu SnO2.

Vật liệu này có tính dẫn điện kém trong mơi trườ ng khơng khí sạch nhưng lại r ất
nhạy cảm với hơi cồn. Trong mơi trườ ng có nồng độ cồn càng cao, điện tr ở của cảm
 biến càng giảm. Từ bảng số liệu, t ỷ lệ điện tr ở của cảm biến giảm g ần 5 l ần khi đo

trong mơi trườ ng khơng khí sạch. Tuy nhiên hi ệu ứng phát hiện nồng độ cồn của

Trang 3


 

ĐỒ ÁN 2
cảm biến này còn phụ thuộc điều kiện nhiệt độ. Khi nhiệt độ bề mặt cảm biến đượ c
sấy nóng tớ i 600C thờ i gian cần thiết để phát hiện nồng độ cồn kéo dài kho ảng 8

giây. Cũng trong mơi trường đó, khi nhiệt độ  bề mặt cảm biến là 200C thờ i gian phát
hiện nồng độ cồn kéo dài từ 3 đến 5 phút.

 Hình 1.1 C ảm biế n MQ-3

 Bảng 1 Các thông s ố  kĩ thuật của MQ-3

Tên thông số 

Giá tr ị 

Đơn vị 

Kí hiệu


MQ-3

Chất phản ứng

Cồn (ethanol)

Dải đo 

0,04- 0,4

mg/l

Điện áp làm việc

< 24

V

Điện áp sấy

5± 0,2

V (AC hoặc DC)

Tải đầu ra

Điều chỉnh đượ c

Ω 


Điện tr ở sấy

31± 3

Ω 

Công suất sấy

≤ 900 

mW

Trang 4


 

ĐỒ ÁN 2
Điện tr ở cảm biến

2÷ 20

KΩ tại nồng độ  cồn 0,4
mg/l
Tỉ lệ  điện tr ở  cảm bi ến khi

Độ nhạy

≥ 5 


nồng độ  cồn bng 0 và
0,4mg/l

Sơ đồ mạch điện của cảm biến

 Hình 1.2 Sơ đồ mạch điện của cảm biế n.

Trong mạch điện của cảm biến MQ3, có 2 đầu dây áp đầ u ra của cảm biến, RL

là điện tr ở m ạch ra đượ c n ối n ối ti ế p v ớ i c ảm biến, tr ị s ố  đượ c c ấp điện áp: VH là
điện áp cấ p cho m ạch sấy và Vc điện áp cấ p cho cảm biến, VRL là điện của RL có
thể  điều chỉnh được. Các điện áp VH và Vc thường đượ c cấ p cùng tr ị số. Trong
mạch đo, các điện áp này đượ c cấ p 5 Vol DC. Các tín hiệu ra của cảm biến đượ c gửi
về bộ vi điều khiển để tính tốn x ử lý. Module cảm biến MQ-3 Cảm biến thích hợ  p
cho việc phát hiện nồng độ  cồn trong hơi thở . Phát hiện khí phát ra t ừ  Etanol,

Alcohol. Đặc điểm của module cảm biến MQ-3: Có bốn chân, điện áp cung cấ p là
nguồn 5V, Dout đầu ra là tín hi ệu số (0 và 1), Aout đầ u vào là tín hi ệu tương tự, đèn
LED sáng khi phát hi ện có khí, GND cấp điện cực âm, độ nhạy cao và ch ọn lọc tốt
vớ i ethanol, bền và ổn định đáng tin cậy, độ nhạy cao và thời gian đáp ứ ng nhanh.

Trang 5


 

ĐỒ ÁN 2

1.3. Nguyên tắc k ết nối giữ a cảm biến MQ3 và Arduino


 Hình 1.3 Sơ đồ k ế t nố i

Gồm 4 chân:

• VCC : 2,5V - 5V.
• DOUT : Digital output.  
• AOUT: Analog output. 
• GND : nối đấ t.

1.4. Cách lập trình vớ i Arduino
a/ Ngơn ngữ  lậ p trình
 Ngơn ngữ lậ p trình sử dụng trong bài là ngơn ng ữ C của Arduino.
C ấu trúc chương trình: 

-

Chương trình Arduino có thể  đượ c chia làm 3 ph ần: c ấu trúc (structure), biến
số (variable) và h ng số (constant), hàm và th ủ tục (function).
-

Các kiể u d ữ  liệu:

* String

Trang 6


 

ĐỒ ÁN 2

Trong một chương trình Arduino là sử  dụng mảng ký tự để biểu diễn chuỗi.
Cách khai báo:
Char Str1[15]; // khai b ảo chuỗi có độ dài là 15 ký t ự.
Char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'}; //khai báo chu ỗi có độ dài tối đa là 8 ký tự  

và đặt nó giá tr ị ban đầu là arduino (7 ký tự). Buộc phải khai báo chu ỗi nm giữa hai
dấu nháy đơn.Char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'}; //khai báo chu ỗi có độ dài
tối đa là 8 ký tự  và đặt nó giá tr ị ban đầu là arduino<ký tự null>.

Char Str4[ ] = "arduino"; // Chương trình dị ch sẽ tự động điều chỉnh kích thướ c cho.
chuỗi Str4 này và đặt một chuối trong dấu ngoặc kép.
Char Str5[8] = "arduino"; // M ột cách khai báo như Str3. 
Char Str6[15] = "arduino"; // M ột cách khai báo khác v ới độ dài tối đa lớn hơn.  
* Array
Array là mảng (tậ p hợ  p các giá tr ị có liên quan và được đánh dấ u bng những chỉ số). Array

đượ c dùng trên Arduino chính là Array trong ngơn ng ữ lậ p trình C.
Các cách khở i tạo một mảng:
Int myInts[6]; // t ạo mảng myInts chứa tối đa 6 phần tử (được đánh dấu từ 0-5), các
 phần tử này đều có kiểu là int => khai báo này chi ếm 2*6 = 12 byte b ộ nhớ  
Int myPins[] = {2, 4, 8, 3, 6}; // t ạo mảng myPins chứa 5 phần tử (lần lượ t là 2, 4, 8,
3, 6). Mảng này khơng giớ i hạn số lượ ng phần tử vì có khai báo là "[]"
Int mySensVals[6] = {2, 4, -8, 3, 2}; // t ạo mảng mySensVals chứa tối đa 6 phần tử,
trong đó 5 phần tử đầu tiên có giá tr ị lần lượ t là 2, 4, -8, 3, 2.
Char message[6] = "hello"; // t ạo mảng ký tự (dạng chuỗi) có tối đa 6 ký tự .
* Double
Giống hết như kiểu Float. Nhưng trên mạ ch Arduino thì kiểu Double lại chiếm đến 8 byte
 bộ nhớ  (64 bit).
* Float


Trang 7


 

ĐỒ ÁN 2
Để định nghĩa 1 kiểu số thực, có thể sử dụng kiểu dữ liệu Float. Một biến dùng kiểu dữ liệu
này có thể  đặt một giá tr ị  nm trong khoảng -3.4028235E+38 đến 3.4028235E+38. Nó
chiếm 4 byte bộ nhớ .
* Short
Giống kiểu Int, tuy nhiên có điề u trên mọi m ạch Arduino nó đề u chiếm 4 byte bộ nh ớ  và
 biểu thị giá tr ị trong khoảng -32,768 đến 32,767 (-215 đến 215-1) (16 bit).
Cú pháp: short var = val;
Var: tên biến.
Val: giá tr ị.
* Unsigned long
Kiểu Unsigned long là ki ểu số nguyên nm trong khoảng từ  0 đến 4,294,967,295 (0 đến
232 - 1). Mỗi biến mang kiểu dữ liệu này chiếm 4 byte bộ nhớ .
* Word
Giống như kiểu Unsigned int, kiểu d ữ liệu này là ki ểu s ố nguyên 16 bit không âm (ch ứa
các giá tr ị từ 0 đến 65535), và nó chiếm 2 byte bộ nhớ .
* Unsigned int
Kiểu Unsigned int là kiểu số nguyên nm trong khoảng từ 0 đến 65535 (0 đến 216 - 1). Mỗi
 biến mang kiểu d ữ li ệu này chiếm 2 byte bộ nhớ . Trên Arduino, Unsigned int có kho ảng
giá tr ị từ 0 đến 4,294,967,295 (232 - 1) (lúc này nó chi ếm 4 byte bộ nhớ ).
Cú pháp: unsigned int [tên biến] = [giá tr ị];
* Int
Kiểu Int là kiểu số nguyên chính được dng trong chương trình Arduino. Kiể u int chiếm 2
 byte bộ nhớ . Trên mạch Arduino Uno, nó có đoạn giá tr ị từ -32,768 đến 32,767 (-215 đến
215-1) (16 bit).

Cú pháp: int var = val;

Trang 8


 

ĐỒ ÁN 2
var: tên biến.
val: giá tr ị.
* Byte
Là một kiểu dữ liệu biểu diễn số nguyên nm trong khoảng từ 0 đến 255. Sẽ mất 1 byte bộ 
nhớ  cho mỗi biến mang kiểu byte.
* Unsigned char
Giống hệt bài giớ i thiệu về kiểu Char. Tuy nhiên kiểu Unsigned char lại bi ểu hiệu một số 
nguyên byte không âm (giá tr ị từ 0 - 255).
* Char
Kiểu dữ liệu này là ki ểu dữ liệu biểu diễn cho 1 kí. Ki ểu dữ liệu này chiếm 1 byte bộ nhớ .
Kiểu Char được lưu dướ i dạng 1 số nguyên byte có s ố âm (có các giá tr ị từ -127 - 128).
* Long
Long là một kiểu dữ liệu mở  r ộng của Int. Những biến có kiểu long có thể mang giá tr ị 32
 bit từ -2,147,483,648 đến -2,147,483,647. Sẽ mất 4 byte b ộ nhớ  cho một biến kiểu long.
* Boolean
Một biến đượ c khai báo kiểu Boolean sẽ chỉ nhận một trong hai giá tr ị: true hoặc false. Và
sẽ mất 1 byte bộ nhớ  cho điều đó. 
* Void
Void là một từ khóa chỉ dùng trong việc khai báo một function. Những function đượ c khai
 báo vớ i "void" sẽ không tr ả về bất kì dữ liệu nào khi đượ c gọi.

b/ Phần mềm phụ tr ợ 

Sử dụng Arduino IDE
Arduino IDE là nơi để soạn thảo code, kiểm tra lỗi và upload code cho arduino.
Khở i tạo 1 dự án:
- Giao diện để sọan thảo code

Trang 9


 

ĐỒ ÁN 2

 Hình 1.4 Arduino IDE.

- Arduino toolbar: có một số button và chức năng như sau: 

 Hình 1.5 Arduino toolbar.

Verify: kiểm tra code có l ỗi hay khơng
Upload: nạp code đang soạn thảo vào arduino
 New, open và save: tạo mớ i, mở  và lưu lại
Serial Monitor: màn hình hi ển thị dữ liệu từ arduino gửi lên máy tính
- Arduino IDE Menu

 Hình1.6 IDE menu.

File menu:

Trang 10



 

ĐỒ ÁN 2

 Hình 1.7 File menu.

Trong file menu mục Example là nơi chứa code mẫu ví dụ: Như cách sử dụng các chân
digital, analog....
Edit menu:

 Hình 1.8 Edit menu.

Sketch menu:

Trang 11


 

ĐỒ ÁN 2

 Hình 1.9 Sketch menu.

Trong Sketch menu:
Verify/ compile: Ch ức năng kiểm tra lỗi code.
Show Sketch Foder: Hiển thị nơi code được lưu.  
Add file: Thêm vào 1 t ậ p code mớ i.

Import library: Thêm thư việ n cho IDE.


1.5. Cách đọc dữ  liệu từ  cảm biến và hiển thị dữ  liệu lên LCD oled 
Dữ liệu được đọc từ cảm biến nhờ  chương trình do ngườ i dùng lậ p trình trên Arduino
Dữ liệu đọc đượ c sẽ đượ c xử lí và hiển thị trên LCD oled

a/ LCD oled
Màn hình nhỏ, đườ ng chéo chỉ khoảng 1,3" nhưng rất có thể đọc đượ c là do sự tương
 phản cao một màn hình OLED. Màn hình này đượ c làm bng 128x 64 pixel OLED
tr ắng, đều đượ c bật hoặc tắt bởi chip điều khiển. Các chip điều khiển, SSD1306 có
thể giao tiế p trong hai cách: I2C hoặc SPI. Các OLED cần nguồn cung cấp điện 3.3V
và 3.3V mức logic cho giao ti ế p, có thể s ử d ụng v ớ i các thi ết b ị 5V, Display Ram
128 x 64 bit. 

 Hình 1.10 Hình ảnh mặt trướ c và mặt sau của LCD OLED.

Trang 12


 

ĐỒ ÁN 2
 Bảng 2 Sơ đồ và chức năng các chân 

Tên chân

Chức năng 

V3.3

Chân cấ p nguồn 3.3V cho LCD


CS

Chip Select, chân ho ạt động ở   mức tích cực thấ p, ở   mức cao nó

khơng cho phép MCU đọc ghi dữ liệu
Chân reset tín hiệu đầu vào, ở  mức thấp thì LCD đượ c khở i tạo lại.

RES

Ở mức cao thì LCD ho ạt động bình thườ ng
Chân điều khiển Data/ Command. DC = 1 input là data

DC

DC = 0 input là command
SCLK

Chân tạo xung Clock

SDIN

Chân dữ liệu nối tiếp đầu vào

GND

Chân nối đất

1.6. Hiển thị dữ  liệu lên LCD oled
init(0x3C);


Khởi động oled với địa chỉ i2c đó, loại mình đang đề cập có địa chỉ đó.  
*.display();

Bắt đầu vẽ lên màn hình 
*.clearDisplay();

Xóa hết màn hình 
*.clearArea(x,y,w,h);

Xóa một vng nào đó. x,y  là tọa độ điểm bắt đầu của vng đó (đỉnh trên
cng bên trái), w và h là chiều dài và cao của vng cần xóa.  
*.setCursor(x,y);

Đưa điểm bắt đầu vẽ lên màn hình tới x,y 

Trang 13


 

ĐỒ ÁN 2
*.setBrightness(brightness);

Chỉnh độ sáng của oled, 0->255
*.setTextSize(s);

Chỉnh size chữ, mặc định khơng dng lệnh thì s=1.  
*.setTextColor(c);


Hoặc 
*.setTextColor(c,bg);

c là màu chữ, WHITE(1) hoặc BLACK(0) 
 bg là màu nền, WHITE(1) hoặc BLACK(0) 
 Nếu chỉ điền c thì bg tự động chỉnh ngược với c.  
*.print();
*.println();

Hai hàm này giống trong   serial, lưu ý: Sau hai hàm này phải thêm lệnh
*.display(); để màn hình hiển thị.  
*.drawPixel(x,y,c);

Vẽ 1 điểm tại x,y với c là màu của điểm (WHITE hoặc BLACK)  
*.drawChar(x,y,char,color,bg,size);

Vẽ một kí tự  


x, y: tọa độ điểm vẽ  



char: kí tự cần vẽ 



color: Màu kí tự (WHITE hoặc BLACK) 






 bg: Màu nền CỦA kí tự (WHITE hoặc BLACK) 
size: Kích cỡ kí tự (Kích cỡ kí tự bng (sizex5pixel) X
(sizex7pixel))

1.7. Tìm hiểu về buzzer
Buzzer là một loại thiết bị phát âm có th ể chuyển đổi tín hiệu âm thanh thành tín
hiệu âm thanh. Nó đượ c sử dụng r ộng rãi trong đồ  chơi điện tử và b ảng điều khiển

Trang 14


 

ĐỒ ÁN 2
trò chơi trong đồ chơi âm thanh, quà tặng âm thanh, đồ gia dụng, báo thức cá nhân,
hệ th ống báo động c ủa ngân hàng và công an. Buzzer đượ c s ử dụng r ộng rãi trong

đồ  chơi điện t ử  và trò chơi.  Buzzer đượ c sử dụng chủ yếu để nh ắc ho ặc báo thức,
theo thiết k ế và m ục đích khác nhau, có thể phát ra tiếng nhạc, tiếng còi, âm thanh
 buzzer, âm thanh báo thức, nhạc chuông điện và nhiều âm thanh khác. Chuông báo

động đượ c sử dụng trong máy gi ặt làm cho âm thanh buzzer thêm rõ ràng, khi ến
ngườ i dùng vận hành các quy trình. Các ứng dụng Buzzer trong các thi ết bị gia dụng
chủ yếu là báo động âm thanh, còi báo động, ngườ i sử dụng đã phát ra một thiết bị 

đốt cháy cảnh báo ở  nơi khô ráo. Buzzer đượ c sử dụng như một cái chuông để gửi
thêm âm thanh "ding dong" ho ặc âm nhạc, gợ i ý r ng khách ghé thăm. Thẻ Buzzer


đượ c sử dụng trong thiệ p chúc m ừng, lời chào đơn giả n; bộ  phim buzzer đượ c sử 
dụng trong còi báo động tự vệ cá nhân để gửi âm thanh báo th ức cao; buzzer cài đặt
trong an ninh công c ộng, ngân hàng và khu v ực b ảo v ệ  nhà đượ c s ử d ụng cho âm

thanh báo động nhiều; nếu ai đó vào Cả nh báo khu vực, điều khiển cảm biến, tiếng
rú lên sẽ báo động. Ở các nhà máy, trườ ng học sử dụng buzzer, làm cho ti ếng chng

điện nhiều hơn. 
Thơng số k ỹ thuật:
 Nguồn : 3.5V - 5.5V

Dịng điện tiêu thụ: <25mA
Tần số cộng hưở ng: 2300Hz ± 500Hz

Biên độ âm thanh: >80 dB
 Nhiệt độ hoạt động:-20 °C đến +70 °C

Kích thước : Đườ ng kính 12mm, cao 9,7mm

Trang 15


 

ĐỒ ÁN 2

CHƯƠNG 2. THIẾT KẾ PHẦN CỨNG  
2.1. Giớ i thiệu
Máy đo nồng độ cồn có chức năng đo nồng độ cồn trong hơi thở  từ đó cảm biến gửi

tín hiệu về bộ xử lý và hiển thị trên oled LCD. Bộ phận cảnh báo gồm led đỏ và buzzer

để phát âm thanh khi n ồng độ cồn vượ t quá mức quy định. Oled hiển thị nồng độ cồn và
mức phạt tiền khi vi ph ạm.

2.2. Thiết k ế sơ đồ khối
Từ các yêu cầu của đề tài, sơ đồ khối hệ thống đượ c thiết k ế như sau: 

 Hình 2.1 Sơ đồ khố i của hệ thố ng

2.3. Giải thích chức năng các khối
Khối nguồn: Có chức năng cung cấp năng lượ ng cho toàn bộ hệ thống.
+ Cấ p nguồn ngoài 9V cho board m ạch Arduino.
+ Board Arduino cấ p nguồn 5V cho led đỏ, oled LCD, c ảm biến MQ3 và
Buzzer.

Khối cảm biến: Dùng cảm biến nồng độ cồn MQ3. Cảm biến tín hiệu nồng độ cồn từ 
hơi thở , gửi tín hiệu đến khối điều khiển.

Trang 16


 

ĐỒ ÁN 2

 Hình 2.2 Sơ đồ k ế t nố i khố i cảm biế n

Khối điều khiển: Dùng Arduino uno R3. Th ực hi ện x ử lý tín hi ệu và gửi tín hiệu v ề 
khối hiển thị và cảnh báo.


Khối hiển thị và cảnh báo:  Dng oled, led đỏ và buzzer. Hiển th ị thông tin về n ồng
độ và mức phạt trên oled LCD,
led đỏ sẽ sáng khi nồng độ cồn đo đượ c trên 200µg/1 lít khí th ở , buzzer sẽ kêu khi nồng
độ cồn đo đượ c trên 250µg/1 lít khí th ở .

 Hình 2.3 Sơ đồ khố i hiể n thị và cảnh báo

Trang 17


 
 

ĐỒ ÁN 2

2.4. Tính tốn lự a chọn linh kiện
a/ Khối cảm biến
Dùng cảm biến nồng độ cồn MQ3. MQ3 là bộ cảm biến sử dụng SiO2 làm vật liệu
cảm ứng nồng độ cồn trong không khí, bộ cảm biến khí sẽ r ất nhạy cảm ở  những nơi
có nồng độ cồn trong khơng khí cao.

Đặc điểm của module: - Nhạy cảm với rượu và ethanol. 
- Điện áp đầu ra tăng khi nồng độ khí đo được tăng.  
- Nhanh chóng phản ứng và phục hồi. 
- Có thể điều chỉnh được độ nhạy cảm của module.  
- Có thể hiển thị kết quả trên màn hình LCD.  

b/ Khối điều khiển
Dùng Arduino uno. Arduino là một board mạch vi xử lý nhm xây dựng các ứng


dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn. Mạc h Arduino
Uno là dòng mạch Arduino phổ biến, khi mới bắt đầu làm quen, lập trình với

Arduino thì mạch Arduino thường nói tới chính là dòng Arduino UNO. Hiện dòng
mạch này đã phát triển tới thế hệ thứ 3  (Mạch Arduino Uno R3 ).  Arduino Uno R3 là
dòng cơ bản, linh hoạt, thường được sử dụng cho người mới bắt đầu.  
c/ Khối hiển thị và cảnh báo 


Oled LCD SSD1306 hiển thị chữ sắc nét rõ ràng có thể giao tiếp trong hai cách: I2C
hoặc SPI. 



Buzzer là một loại thiết bị phát âm có thể chuyển đổi tín hiệu âm thanh thành t ín
hiệu âm thanh. Lập trình đơn giản, dễ sử dụng, giá thảnh rẻ.  



LED (viết tắt của Light Emitting Diode , có nghĩa là điốt phát quang) là các điốt có

khả năng phát ra ánh sáng hay tia hồng ngoại, tử ngoại. Cũng giống như điốt, LED
được cấu tạo từ một khối  bán dẫn loại p  ghép với một khối  bán dẫn loại n.led đơn
nhỏ gọn dễ sử dụng.  

Trang 18


 


ĐỒ ÁN 2
d/ Khối nguồn: 
Sử dụng pin nguồn 9V để cấp cho board Arduino .

2.5. Sơ đồ k ết nối mạch

 Hình 2.4 Sơ đồ mạch

CHƯƠNG 3. THIẾT KẾ PHẦN MỀM 
Trang 19


 

ĐỒ ÁN 2

3.1. Lưu đồ  chương trình 

 Hình 3.1 lưu đồ thuật tốn

3.2. Code chạy chương trình 
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
const int buzzer = 6 ;

Trang 20



×