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, nhm 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 nhm 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 vng 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 bng 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 nm 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 bng 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 ị nm 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 nm 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 nm 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 dng 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 nm 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 bng 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 vng nào đó. x,y là tọa độ điểm bắt đầu của vng đó (đỉnh trên
cng bên trái), w và h là chiều dài và cao của vng 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 dng 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ự bng (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: Dng 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ý nhm 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