Mục tiêu của báo cáo là: Nắm bắt được cấu trúc phần cứng, sơ đồ khối, nguyên lý làm việc của mạch điều khiển. Tìm hiểu về lập trình Arduino. Biết cách làm một đồ án hoàn chỉnh phục vụ cho việc làm đồ án tốt nghiệp về sau. Mời các bạn tham khảo
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA ĐIỆN TỬ VIỄN THÔNG
Trang 2Ngày nay, khi khoa học công nghệ phát triển một cách mạnh mẽ, việc ứng dụngcác thiết bị điện tử vào đời sống cũng ngày càng phổ biến hơn, nhất là với thời đại màcác hệ thống nhúng đang lên ngôi Từ những ứng dụng đơn như đồng hồ kĩ thuật số,máy nghe nhạc…đến những ứng dụng cho xã hội như đèn giao thông, bộ kiểm soáttrong nhà máy, cửa tự động…cho đến những ứng dụng mang tính quy mô, tầm cỡ nhưrobot, phi thuyền không người lái, kiểm soát nhà máy hạt nhân…
Với những kiến thức đã được học và tìm hiểu từ trường học và khoa học công nghệcủa cuộc sống hiện đại, em cũng có mong muốn góp thêm phần nào sự phát triển xãhội bằng cách học hỏi và đưa ra những sản phẩm có ích cho cuộc sống Em xin giớithiệu một sản phẩm rất thiết thực cho cuộc sống của chúng ta: “ Thiết bị cảm biến khígas và phòng chống cháy nổ ”
Với ý tưởng trên em mong muốn được góp phần bảo vệ cho những gia đình, tập thểhay công ty có sử dụng khí Gas được an toàn hơn Mạch phát hiện sự rò rỉ khí Gas sẽcảnh báo cho chúng ta biết được có khí gas bị rò rỉ ra khỏi bình chứa hoặc ống dẫn đểtránh được những tai nạn đánh tiếc xảy ra
LỜI CẢM ƠN
Trang 3Trong thời gian thực hiện Đồ án điện tử 1 chúng e đã tìm hiểu bổ xung vàhọc hỏi được nhiều kiến thức và kinh nghiệm về việc thiết kế thực hiện và thi côngthiết bị “ Cảnh báo khi gas và phòng chống cháy nổ “
Do điều kiện về thời gian và kiến thức còn hạn chế nên đề tài của chúng emchỉ dừng lại ở mức nghiên cứu, thiết kế và mô phỏng bằng mô hình Trong thời gianthực hiện đồ án, chúng em đã tham khảo ý kiến của giảng viên hướng dẫn, tìm hiểu tàiliệu và sự hỗ trợ góp ý từ giảng viên cũng như bạn bè và các anh chị đi trước Tuynhiên do kiến thức còn hạn chế nên không thể tránh khỏi sai sót, chúng em rất mongnhận được sự góp ý của quý thầy cô và các bạn để đồ án của chúng em được hoànthiện hơn, và tạo lập cho chúng em có một cơ sở nhìn nhận về khả năng, kiến thức, từ
đó có hướng phấn tốt hơn cho các đồ án tiếp theo
Chúng em xin chân thành cảm ơn các thầy cô trong khoa Điện Tử Viễn ThôngTrường Đại Học Điện Lực đã dạy bảo, truyền đạt kiến thức cho chúng em trong suốtquá trình học tập, các thầy cô đã giúp đỡ và tạo điều kiện cho chúng em trong quátrình thực hiện Đồ án điện tử
Đặc biệt , chúng em xin gửi lời chân thành cảm ơn đến thầy giáo Ths Đinh VănTuấn – Giảng viên trường Đại học Điện Lực đã trực tiếp hỗ trợ, tận tình hướng dẫn,giúp đỡ và bổ sung kiến thức cho chúng em trong quá trình thực hiện và hoàn thiện đồ
án này
Trong quá trình thực hiện đồ án không tránh khỏi sai sót, rất mong nhận được
sự góp ý của thầy cô và các bạn
Một lần nữa chúng em xin chân thành cảm ơn các thầy cô và các bạn !
NHẬN XÉT
(Của giảng viên hướng dẫn)
Trang 4………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Hà Nội, ngày tháng năm 2018
Giảng viên hướng dẫn
PHÂN CÔNG NHIỆM VỤ
Trang 51 1581510139 Hoàng Đức Thanh D10-ĐTVT1 Nhómtrưởng
Xây dựng sơ đồ khối chức năng
Thiết kế mạch sản phẩm, lập trình .
2 1581510130 Nguyễn Thanh Nhật D10-ĐTVT1 Thànhviên
Lựa chọn module linh kiện
Làm vỏ hộp, viết báo cáo
3 1581510125 Nguyễn Thế Mạnh D10-ĐTVT1 Thànhviên
Vẽ mạch test,lập trình, gia công mạch lắp giáp thiết bị
MỤC LỤC
LỜI MỞ ĐẦU 1
LỜI CẢM ƠN 2
NHẬN XÉT 3
MỤC LỤC 4
BẢNG PHÂN CÔNG CÔNG VIỆC 5
Trang 6DANH MỤC VIẾT TẮT 7
CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI 8
1.1 LÝ DO LỰA CHỌN ĐỀ TÀI 8
1.2 GIỚI THIỆU VỀ ĐỀ TÀI 8
1.3.MỤC TIÊU ĐỒ ÁN 9
CHƯƠNG II: THIẾT KẾ ĐỀ TÀI 10
2.1 CHỨC NĂNG BỘ THIẾT BỊ 10
2.2 THIẾT KẾ PHẦN CỨNG 10
2.2.1 SƠ ĐỒ KHỐI CHỨC NĂNG 10
2.2.2 GIỚI THIỆU VỀ Board Arduino mega 2560 11
2.2.3 LỰA CHỌN LINH KIỆN & MODULE 15
2.2.4 THIẾT KẾ MẠCH NGUYÊN LÝ 21
2.2.5 THIẾT KẾ MẠCH IN 22
2.2.6 THIẾT KẾ VỎ HỘP 23
2.3 THIẾT KẾ PHẦN MỀM 24
2.3.1VIẾT MÃ NGUỒN 24
2.4 KẾT QUẢ VÀ ĐÁNH GIÁ 28
2.4.1 KẾT QUẢ ĐẠT ĐƯỢC 28
2.4.2 ĐÁNH GIÁ SẢN PHẨM 30
TÀI LIỆU THAM KHẢO 30
DANH MỤC HÌNH ẢNH Hình 2.1: Sơ đồ khối chức năng bộ thiết bị 9
Hình 2.2.2.1 Board Arduino mega2560 14
Hình 2.2.3.1 Module cảm biến khí gas 15
Hình 2.2.3.2 Module cảm biến nhiệt độ 17
Trang 7Hình 2.2.3.3 Module relay 2 kênh 18
Hình 2.2.3.4 Màn hình LCD 16*2 19
Hình 2.2.3.5 Module I2C 21
Hình 2.2.4.1 Khối nút bấm điều khiển 21
Hình 2.2.4.2 Khối còi báo 22
Hình 2.2.4.3 Khối cung cấp nguồn cho các module 22
Hình2.2.5.1 Măt trước và sau của mạch in 23
Hình 2.2.6.1 Hộp sản phẩm 23
Hình 2.4.1.1 Thiết bị được lắp ráp hoàn chỉnh 29
Hình 2.4.1.2 Demo sản phẩm 29
DANH MỤC TỪ VIẾT TẮT
AC Alternating Current Dòng điện xoay chiều
AVR Automatic Voltage Regulator Tự động điều chỉnh điện áp
DC Direct Current Dòng điện một chiều
IC Integrated Circuit Vi mạch
Trang 8GND Ground Đất
LCD Liquid Crystal Display
LED Light Emitting Diode Diode phát quang
VĐK Vi điều khiển
IDE Integrated Development Môi trường phát triển tích hợp
Environment SRAM Static Random Memory Bộ nhớ ngẫu nhiên tĩnh
EEPROM Electrically Erasable Bộ nhớ chỉ đọc có
Programmable Read-Only thể lập trình, xóaMemory bằng tín hiệu điện IDE Integrated Development Môi trường phát triển
Environment hợp nhất
SPI Serial Peripheral Interface Chuẩn giao tiếp ngoại vi nối tiếp
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU
Trang 9Khi đời sống con người được cải thiện thì việc sử dụng bếp gas hay các sản phẩncủa gas làm nhiên liệu đun nấu đang phổ biến Bên cạnh việc tiện lợi của gas, một vấn
đề khác của gas cũng được quan tâm đó là : an toàn khi sử dụng gas Khi con ngườitiếp xúc trực tiếp với khí gas (vượt quá một nộng độ cho phép nhất định) trong thờigian dài thì rất dễ bị ngộ độc gas và có thể gây tử vong Không những vậy khí gas rò rỉvào trong không khí có thể dễ dàng bắt lửa và gây cháy nổ, ảnh hưởng nghiêm trọngtới an toàn của người sử dụng cũng như những người xung quanh Vì vậy, vấn đề pháthiện và xử lý sự cố rò gas là một việc rất cần thiết với người thường xuyên sử dụnggas Đặc biệt là các bạn sinh viên thường sử dụng cácbình gas mini không đảm bảochất lượng, có thể rò rỉ gas bất cứ khi nào Xuất phát từ ý tưởng và tình hình thực tế
em thấy đây là một đề tài hay, có tính ứng dụng cao và có thể phát triển nên em đãchọn đề tài nàylàm đề tài chính trong đồ án môn học
Để khắc phục sự cố của khí gas khi sử dụng chúng em đã làm ra thiết bị cảnh báo
rò rỉ khí gas, thiết bị này giúp chúng ta dễ dàng nhận biết khí gas khi bị rò rỉ, được sửdụng trong các tòa nhà và hộ gia đình
1.2 Giớ thiệu về đề tài
Như thầy cô và mọi người đã biết trong cuộc sống xã hội hiện đại ngày nay vấn
đề sử dụng khí đốt ( ở đây chúng ta đang nói đến là khí Gas ) trong việc lấu ăn hàngngày và hay cả sử dụng khí đốt cho các ngành công nghiệp đang rất phổ biết Nhưngày xưa khoảng 15 năm về trước thì chỉ có thành phố mới sử dụng khí đốt cho nấu
ăn hay nhưng cho nhưng ngành công nghiệp còn nông thôn thường sử dụng bếp rạ
và củi cho việc đun lấu thì nay gần như từ quê lên phố thì 99% sử dụng khí đốt chobếp lúc đun lấu nên khi khí gas bị rò rỉ ra ngoài khả năng cháy nổ là rất cao vì chỉcần có tia nửa điện từ các ổ cắm hay thiết bị điện hay một đoạn dây bị hở sỉnh ra tialửa điện là khả năng hỏa hoạn cho ngồi nhà là rất cao ảnh hưởng đến tài sản và tínhmạng con người vì thế Đề tài nghiên cứu của chúng em nhằm phần nào đó việc pháthiện hiện khí gas và ngăn chặn hỏa hoạn cho cho người và tài sản
Trang 10Với nội dung chính của đề đó là khi phát hiện có khí gas thiết bị sẽ bật còi báocho người trong nhà biết được khí gas đang bị rò rỉ đểkhắc phục và bật quạt thông gióthông qua việc đóng ngắt relay khi phát hiện có khi gas khi trong phòng có cháythường thì nhiệt độ không khí trong phòng tăng rất nhanh và độ ẩm giảm xuốngngưỡng cho phép được setup trước thì thiết bị sẽ bật máy bơm nước làm phun quangphòng để hạn nhiệt độ phòng và chữa cháy
- Sản phẩm hoạt động ổn định với đầy đủ các chức năng cần thiết cho việc
“ cảnh báo khí gas và phòng chống cháy nổ “
- Sản phẩm nhỏ, gọn, mang tính thẩm mỹ cao
- Giá thành sản phẩm phù hợp với người tiêu dùng hiện nay
CHƯƠNG 2: THIẾT KẾ ĐỀ TÀI
2.1 CHỨC NĂNG THIẾT BỊ
Sau khi hoàn thiện bộ thiết bị cảnh báo khí ga và phòng chống cháy nổ sẽ có cácchức năng sau :
Trang 11 Thực hiện chức năng cảnh báo khi phát hiện có khí gas và bật quạt thông gió hútkhí gas ra khỏi phòng
Khi nhiệt độ phòng lớn hơn nhiệt độ setup ( vì nhiệt độ phòng thường khôngquá 45°C ) thì đóng Relay2 bật máy bơm phun nước để hạ nhiệt độ trong phòng
và dập lửa
2.2 THIẾT KẾ PHẦN CỨNG
2.2.1 Sơ đồ khối chức năng
Hình 2.2.1 Sơ đồ khối chức của thiết bị
2.2.2 Giới thiệu về board Arduino mega2560
Giới thiệu về Arduino
Arduino là một board mạch vi xử lý được sinh ra tại thị trấn Ivrea ở Ý, nhằm
Trang 12xâ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ợihơn Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi
xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit Những Model hiện tại được trang
bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật sốtương thích với nhiều board mở rộng khác nhau
a Phần cứng của Arduino
Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổsung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác Một khía cạnhquan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kếtnối với CPU của board với các module thêm vào có thể dễ dàng chuyển đổi, đượcgọi là shield Vài shield truyền thông với board Arduino trực tiếp thông qua cácchân khác nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song Arduinochính thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8,ATmega168, ATmega328, ATmega1280, và ATmega2560 Một vài các bộ vi xử
lý khác cũng được sử dụng bởi các mạch Aquino tương thích Hầu hết các mạchgồm một bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc
bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một vài thiết kế nhưLilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard do hạn chế vềkích cỡ thiết bị Một vi điều khiển Arduino cũng có thể được lập trình sẵn với mộtboot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash on-chip, sovới các thiết bị khác thường phải cần một bộ nạp bên ngoài Điều này giúp choviệc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tínhgốc như là một bộ nạp chương trình
-Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cả các boardđược lập trình thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùythuộc vào đời phần cứng Các board Serial Arduino có chứa một mạch chuyển đổigiữa RS232 sang TTL Các board Arduino hiện tại được lập trình thông qua cổngUSB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232 Vàibiến thể, như Arduino Mini và Boarduino không chính thức, sử dụng một boardadapter hoặc cáp nối USB-to-serial có thể tháo rời được, Bluetooth hoặc cácphương thức khác (Khi sử dụng một công cụ lập trình vi điều khiển truyền thốngthay vì ArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng.)
- Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụngcho những mạch ngoài Diecimila, Duemilanove, và bây giờ là Uno đưa ra 14 chânI/O kỹ thuật số, 6 trong số đó có thể tạo xung PWM (điều chế độ rộng xung) và 6chân input analog, có thể được sử dụng như là 6 chân I/O số Những chân này
Trang 13được thiết kế nằm phía trên mặt board, thông qua các header cái 0.10-inch (2.5mm) Nhiều shield ứng dụng plug-in cũng được thương mại hóa Các boardArduino Nano, và Arduino-compatible Bare Bones Board và Boarduino có thểcung cấp các chân header đực ở mặt trên của board dùng để cắm vào cácbreadboard.
-Có nhiều biến thể như Arduino-compatible và Arduino-derived Một vài trong
số đó có chức năng tương đương với Arduino và có thể sử dụng để thay thế qualại Nhiều mở rộng cho Arduino được thực thiện bằng cách thêm vào các driverđầu ra, thường sử dụng trong các trường học để đơn giản hóa các cấu trúc của các'con rệp' và các robot nhỏ Những board khác thường tương đương về điện nhưng
có thay đổi về hình dạng-đôi khi còn duy trì độ tương thích với các shield, đôi khikhông Vài biến thể sử dụng bộ vi xử lý hoàn toàn khác biệt, với các mức độ tươngthích khác nhau
b Phần mềm của Arduino
Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng platform (đa nền tảng) được viết bằng Java, và từ IDE này sẽ được sử dụng choNgôn ngữ lập trình xử lý (Processing programming language) và project Wiring
cross-Nó được thiết kế để dành cho những người mới tập làm quen với lĩnh vực pháttriển phần mềm Nó bao gồm một chương trình code editor với các chức năng nhưđánh dấu cú pháp, tự động brace matching, và tự động canh lề, cũng nhưcompile(biên dịch) và upload chương trình lên board chỉ với 1 cú nhấp chuột Mộtchương trình hoặc code viết cho Arduino được gọi là một sketch
-Các chương trình Arduino được viết bằng C hoặc C++ Arduino IDE đikèm với một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, cóthể giúp các thao tác input/output được dễ dàng hơn Người dùng chỉ cần địnhnghĩa 2 hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có thểchạy được:
VD :
setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập
các cài đặt
loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch
-Một chương trình điển hình cho một bộ vi điều khiển đơn giản chỉ là làmcho một bóng đèn Led sáng/tắt Trong môi trường Arduino, ta sẽ phải viết mộtchương trình giống như sau:
#define LED_PIN 13
void setup () {
Trang 14pinMode (LED_PIN, OUTPUT); // Đặt chân 13 làm đầu ra digital
}
void loop () {
digitalWrite (LED_PIN, HIGH); // Bật LED on
delay (1000); // chờ trong 1 giây (1000 mili giây)
digitalWrite (LED_PIN, LOW); // Tắt LED off
delay (1000); // chờ trong 1s
}
- Một đặc điểm của hầu hết các board Arduino là chúng có một đèn LED vàđiện trở nối giữa chân 13 với đất; một đặc điểm thuận tiện cho nhiều ứng dụng đơngiản Đoạn code ở trên không thể đọc được bởi một compiler C++ chuẩn như làmột chương trình đúng, vì vậy khi ta click vào nút "Upload to I/O board" trong IDEnày, một bản copy của đoạn code này sẽ được ghi vào một file tạm với một extrainclude header ở phía trên cùng và một hàm main () đơn giản nằm ở phía đáy, đểlàm cho thàn một chương trình C++ khả dụng
-Arduino IDE này sử dụng GNU toolchain và AVR Libc để biên dịch chươngtrình, và sử dụng avrdude để upload chương trình lên board
-Vì nền tảng của Arduino là các vi điều khiển của Atmel, cho nên môi trườngphát triển của Atmel, AVR Studio hoặc các phiên bản Atmel Studio mới hơn, cũng
có thể được sử dụng để làm phần mềm phát triển cho Arduino
Arduino mega2560
Trang 15Hình 2.2.2.1 Board Arduino mega2560
Arduino Mega 2560 là phiên bản nâng cấp của Arduino Mega hay còn gọi làArduino Mega 1280 Sự khác biệt lớn nhất với Arduino Mega 1280 chính là chipnhân Ở Arduino Mega 1280 sử dụng chip ATmega1280 với flash memory 128KB,SRAM 8KB và EEPROM 4 KB.*
so với những phiên bản cũ của UNO R3 Điều này cùng với việc trang bị 3 timer và
6 cổng interrupt khiến bo mạch Mega hoàn toàn có thể giải quyết được nhiều bàitoán hóc búa, cần điều khiển nhiều loại động cơ và xử lý song song nhiều luồng dữliệu số cũng như tương tự
Ngoài việc phát triển được ưu tiên, việc kế thừa cũng được đặc biệt lưu ý.Trên mạch MEGA các chân digital vẫn từ 0-13, analog từ 0-5 và các chân nguồntương tự thiết kế của UNO Do vậy chúng ta dễ dàng phát triển nghiên cứu theokiểu gắp ghép module từ Arduino UNO bê sang Arduino mega Ngoài ra, ở phiên