Đồ án "Hệ thống bãi đỗ xe thông minh sử dụng Arduino" tập trung nghiên cứu và phát triển một giải pháp hiệu quả, ứng dụng công nghệ Arduino, IOT để quản lý bãi đỗ xe một cách tự động và tối ưu. Hệ thống sẽ hỗ trợ các tính năng như xác định chỗ trống, điều hướng người dùng, nhằm tiết kiệm thời gian và nâng cao trải nghiệm cho người sử dụng, đi cùng với đó là tính năng về báo và chữa cháy, đảm bảo an toàn về người và của cho các chủ phương tiện. Ngoài ra, việc sử dụng Arduino và công nghệ IOT sẽ giúp các bãi đỗ xe giảm thiểu các chi phí vận hành, sửa chữa khi mà Arduino có chi phí thấp, dễ dàng lập trình, thao tác…
Trang 1ĐỒ ÁN TỐT
NGHIỆP
HỆ THỐNG BÃI ĐỖ XE THÔNG MINH SỬ DỤNG ARDUINO
Trang 2LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn ……… đã cho chúng
có cơ hội được học tập tại trường Và đặc biệt, chúng em muốn gửi lời cảm ơn sâu sắc đến các thầy, các cô trong chuyên ngành điện tử viễn thông, những người đã trực tiếp giảng dạy chúng em, đã chu đáo quan tâm, động viên và hết lòng chỉ bảo chúng em không chỉ là kiến thức trên những trang sách mà còn là các bài học về cuộc sống trong suốt quá trình học tập và trưởng thành dưới mái trường Đại dương Đó là điều không thể thiếu để chúng em có được nền tảng tri thức và kinh nghiệm vững vàng cho cuộc sống và công việc của chúng em sau này.
Nhóm chúng em xin được gửi lời cảm ơn đặc biệt tới thầy Phạm Việt Hưng
- Giảng viên đồng thời là Trưởng Bộ môn
……… đã tạo điều kiện cho chúng em
thực hiện đề tài và hướng dẫn, giúp đỡ, chỉ bảo một cách sát sao trong suốt quá trình hoàn thành đề tài này.
Mặc dù đã cố gắng hết sức để hoàn thành đề tài một cách tốt nhất có thể, song có thể vẫn không tránh những khỏi thiếu sót, có những điều chưa thỏa đáng, hợp lý Nhóm chúng em rất mong các thầy, các cô nhận xét, đánh giá và chỉ ra những sai lầm, thiếu sót mà chúng em mắc phải để chúng em hoàn thiện hơn về kiến thức và sản phẩm làm ra
Một lần nữa, chúng em xin được chân thành cảm ơn các thầy cô, chúng em chúc các thầy cô thật nhiều sức khỏe, hạnh phúc và thành công hơn nữa trong sự nghiệp trồng người !
Trang 3LỜI CAM ĐOAN
Đề tài này được chúng em tự nghiên cứu và hoàn thành dưới sự hướng dẫn củathầy ……… Tất cả các tài liệu được sử dụng để tham khảo trong quá trình hoànthiện đề tài đã được chúng em trích dẫn đầy đủ ở dưới phần tài liệu tham khảo Nhómchúng em xin chân thành cảm ơn !
Trang 4MỤC LỤC
LỜI CẢM ƠN iii
LỜI CAM ĐOAN iv
MỤC LỤC v
DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU viii
DANH MỤC CÁC HÌNH ẢNH ix
MỞ ĐẦU 1
CHƯƠNG 1 : TỔNG QUAN VỀ ĐỀ TÀI 2
1.1 Giới thiệu chung về Arduino 2
1.2 Mục đích nghiên cứu đề tài 3
1.3 Ý nghĩa của đề tài 3
1.3 Bố cục 4
CHƯƠNG 2 : CỞ SỞ LÝ THUYẾT ĐỂ THỰC HIỆN ĐỀ TÀI 5
2.1 Module Arduino UNO 5
2.1.1 Khái niệm 5
2.1.2 Chức năng của các chân kết nối trong bo mạch Arduino UNO 6
2.1.3 Thông số cơ bản 7
2.1.3.1 Nguồn cấp 7
2.1.3.2 Đầu vào và đầu ra 7
2.1.3.3 Bộ nhớ 8
2.1.3.4 Bảo vệ quá dòng 8
2.1.3.5 Các thông số vật lý 8
2.1.4 Nguyên lý hoạt động 8
2.1.5 Kết luận 9
Trang 52.2 Module Arduino Nano 9
2.2.2 Khái niệm 9
2.2.2 Chức năng các chân kết nối trong bo mạch Arduino Nano 10
2.2.3 Các thông số cơ bản 12
2.2.3.1 Nguồn cấp 12
2.2.3.2 Bộ nhớ 12
2.2.3.3 Đầu vào và đầu ra 13
2.2.3.4 Các thông số vật lý 13
2.2.4 Nguyên lý hoạt động 13
2.2.5 Kết luận 14
2.3 Module I2C LCD 14
2.3.1 Khái niệm 14
2.3.2 Các thông số cơ bản 15
2.3.3 Nguyên lý hoạt động 16
2.4 Module 1 Relay 5V 17
2.4.1 Khái niệm 17
2.4.2 Các thông số cơ bản 17
2.4.3 Nguyên lý hoạt động 18
2.5 Module cảm biến hồng ngoại 19
2.5.1 Khái niệm 19
2.5.2 Các thông số cơ bản 19
2.5.3 Nguyên lý hoạt động 21
2.6 Mạch cảm biến lửa (flame senser) 22
2.6.1 Khái niệm 22
2.6.2 Các thông số cơ bản 22
Trang 62.7 Các thiết bị ngoại vi khác dùng trong đề tài 24
2.7.1 Màn hình LCD 20x4 24
2.7.2 Động cơ Servo 25
2.7.3 Máy bơm nước mini 12V 26
2.7.4 Còi 5V 26
2.8 Lập trình cho Arduino 27
2.8.1 Khái niệm 27
2.8.2 Cấu trúc của một chương trình được lập trình : 27
2.8.3 Các hàm quan trọng trong việc lập trình cho Arduino 28
2.9 Kết luận 28
CHƯƠNG 3 : THIẾT KẾ, MÔ PHỎNG VÀ LẬP TRÌNH DỰ ÁN 29
3.1 Thiết kế dự án 29
3.2 Mô phỏng dự án 31
3.3 Lập trình cho dự án 35
CHƯƠNG 4 : DỰ ÁN SAU KHI HOÀN THIỆN, KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 45
4.1 Dự án sau khi hoàn thiện 45
4.2 Kết luận 51
4.3 Hướng phát triển 52
TÀI LIỆU THAM KHẢO 53
NHẬN XÉT TÓM TẮT CỦA GIẢNG VIÊN HƯỚNG DẪN 54
Trang 7DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU
Trang 8DANH MỤC CÁC HÌNH ẢNH
Hình 1: Bo mạch của Arduino 2
Hình 2: Giao diện phần mềm dùng để lập trình cho Arduino 3
Hình 3: Cấu tạo của một bo mạch Arduino 5
Hình 4: Sơ đồ đấu nối các chân của Arduino UNO đến ATmega3228 5
Hình 5: Mặt trước và sau của Module Arduino Nano 10
Hình 6: Chi tiết các chân và cấu tạo của Arduino Nano 10
Hình 7: Chi tiết các chân trên bo mạch Arduino Nano 12
Hình 8: Module I2C LCD 15
Hình 9: Các chân của Module I2C LCD 16
Hình 10: Module 1 Relay 5V 17
Hình 11: Sơ đồ nguyên lý cơ bản của một Module Relay 5V 18
Hình 12: Module cảm biến hồng ngoại 19
Hình 13: Sơ đồ mạch của module cảm biến hồng ngoại 21
Hình 14: Mạch cảm biến lửa 22
Hình 15: Sơ đồ nguyên lý của mạch cảm biến lửa 23
Hình 16: Sơ đồ chân của IC LM393 23
Hình 17: Màn hình LCD 20x4 24
Hình 18: Động cơ servo SG90 25
Hình 19: Động cơ servo MG995 25
Hình 20: Máy bơm nước mini 12V 26
Hình 21: Còi sử dụng điện áp 5V 26
Hình 22: Giao diện của Arduino IDE 27
Hình 23: Sơ đồ tổng quát của dự án 29
Hình 24: Thiết kế mô hình hệ thống bãi đỗ xe thông minh 30
Hình 25: Hệ thống tự động báo và chữa cháy 31
Hình 26: Hoàn thiện việc mô phỏng trên proteus 32
Trang 9Hình 27: Thực hiện quá trình mô phỏng 32
Hình 28: Hệ thống bắt đầu thực hiện cảm biến, đếm số xe và hiển thị 33
Hình 29: Mô phỏng của hệ thống bãi đỗ xe hoạt động 33
Hình 30: Mô phỏng hệ thống báo và chữa cháy 34
Hình 31: Thực hiện thay đổi giá trị tại Module cảm biến lửa 34
Hình 32: Hoạt động báo và chữa cháy của hệ thống 35
Hình 33: Phần mềm Arduino IDE dùng để lập trình cho dự án 36
Hình 34: Mặt trước của mô hình dự án 45
Hình 35: Mặt trên của mô hình dự án 46
Hình 36: Mặt bên của mô hình dự án 46
Hình 37: Cấu trúc bên trong nơi điều khiển hoạt động của cả dự án (1) 47
Hình 38: Cấu trúc bên trong nơi điều khiển hoạt động của cả dự án (2) 47
Hình 39: Đã có nguồn vào cho dự án hoạt động 48
Hình 40: Hệ thống bắt đầu hoạt động 48
Hình 41: Khi hệ thống hoạt động, không có xe, màn hình hiển thị các chỗ đều chống- Empty 49
Hình 42: Khi xe đi vào, cảm biến hoạt động, thanh nâng được nâng lên 49
Hình 43: Khi xe đi vào bãi đỗ, Module cảm biến IR thứ 2 hoạt động, giảm số chỗ đỗ xuống 5 50
Hình 44: Phần tự động báo và chữa cháy 50
Hình 45: Hệ thống khi phát hiện lửa 51
Trang 10MỞ ĐẦU
Ngày nay, dưới sự phát triển không ngừng của việc đô thị hóa và sự gia tăng mộtcách chóng mặt của các phương tiện giao thông đã tạo ra những thách thức to lớn về việcquản lý phương tiện trong các bãi đỗ xe, đặc biệt là tại các khu vực có dân cư đông đúc,các thành phố lớn Các bãi đỗ xe truyền thống cùng với cách giám sát số lượng xe mộtcách thủ công thường gặp phải các vấn đề như không kiểm soát được số xe vào và xe ra,thời gian tìm chỗ đỗ xe kéo dài gây mất thời gian cho chủ phương tiện, điều này có thểgây ùn tắc trong các bãi đỗ xe…
Trước các vấn đề, khó khăn, bất cập, hạn chế trên, việc áp dụng công nghệ vàoquản lý các bãi đỗ xe là một tất yếu Đã có rất nhiều công nghệ đã được áp dụng vào thựctiễn và đạt hiệu quả rất cao như: công nghệ camera AI và xử lý hình ảnh, công nghệ nhậndạng biển số xe ANPR…Tuy nhiên đi cùng với đó là vấn đề về chi phí lại rất cao, độ khókhăn trong việc vận hành, bảo dưỡng, sửa chữa lớn, không phải bãi đỗ xe nào cũng có thể
áp dụng và thực hiện
Đồ án "Hệ thống bãi đỗ xe thông minh sử dụng Arduino" tập trung nghiên cứu
và phát triển một giải pháp hiệu quả, ứng dụng công nghệ Arduino, IOT để quản lý bãi đỗ
xe một cách tự động và tối ưu Hệ thống sẽ hỗ trợ các tính năng như xác định chỗ trống,điều hướng người dùng, nhằm tiết kiệm thời gian và nâng cao trải nghiệm cho người sửdụng, đi cùng với đó là tính năng về báo và chữa cháy, đảm bảo an toàn về người và củacho các chủ phương tiện Ngoài ra, việc sử dụng Arduino và công nghệ IOT sẽ giúp cácbãi đỗ xe giảm thiểu các chi phí vận hành, sửa chữa khi mà Arduino có chi phí thấp, dễdàng lập trình, thao tác…
Chúng em xin cảm ơn thầy ……… và các thầy cô trong bộ môn điện
tử - viễn thông đã tạo điều kiện, hướng dẫn tận tình để chúng em có thể hoàn thành dự ánnày
Trang 11CHƯƠNG 1 : TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu chung về Arduino
Hệ thống Arduino là một nền tảng bao gồm cả phần cứng mã nguồn mở source hardware) và phần mềm mã nguồn mở (open-source software) một cách côngkhai Nó giúp người dùng dễ dàng thực hiện các dự án từ đơn giản đến các hệ thống phứctạp thông qua các ứng dụng điện tử Arduino sẽ bao gồm phần cứng và phần mềm Hệthống phần cứng là tập hợp của các linh kiện điện tử để tạo thành một bảng mạch vi điềukhiển (microcontroller board) Phần mềm là một môi trường phát triển tích hợp (IDE) đểviết, biên dịch và tải mã vào phần cứng
Bo mạch của Arduino là một bo mạch vi xử lý, nó được dùng để lập trình để có thểgiao tiếp, tương tác với các ngoại vi như cảm biến, động cơ, đèn hoặc với các modulekhác Đặc điểm nổi bật của Arduino là việc dễ dàng trong việc xây dựng các dự án, lậptrình để giao tiếp với ngoại vi Ngôn ngữ lập trình của Arduino đơn giản, có thể học vànắm bắt một cách nhanh chóng với ngay cả những người có am hiểu ít về điện tử và cácngôn ngữ lập trình Cùng với đó là việc có giá cả hợp lý nên dễ dàng tiếp cận với nhiềuđối tượng như học sinh, sinh viên, những người có đam mê về điện tử
Trang 12Hình 2: Giao diện phần mềm dùng để lập trình cho Arduino
1.2 Mục đích nghiên cứu đề tài
Nghiên cứu, tìm hiểu về Module Arduino UNO R3, Module Arduino Nano,Module LCD I2C, Module cảm biến hồng ngoại, Module 1 Relay kích High Low 5V,Module cảm biến lửa
Lập trình cho các Module Arduino để chúng có thể giao tiếp với các Module vàcác ngoại vi khác như motor, servo, đèn led, còi, màn hình LCD…
Xây dựng, kết nối để hoàn thiện mô hình bãi đỗ xe có khả năng nhận diện xe vào
và ra để mở cửa, đếm được số xe hiện có trong bãi, các khu vực đã có xe đậu và hiển thịchúng lên màn hình LCD
Bãi đỗ xe có khả năng cám biến, phát hiện các nguồn lửa thông qua việc sử dụngservo có khả năng quay liên tục 180° - 360°, khi có lửa sẽ báo động thông qua còi và cókhả năng lập tức dập tắt nguồn lửa nhờ việc sử dụng nước
1.3 Ý nghĩa của đề tài
Chúng em luôn tin rằng đồ án tốt nghiệp chính là một trong những học phần quantrọng nhất trong suất quá trình học tập Đồ án tốt nghiệp chính là bài kiểm tra, phép thử
Trang 13cuối cùng để giúp chúng em củng cố lại kiến thức đã học, từ đó có thể vận dụng và tự tayhoàn thiện một dự án của riêng bản thân.
Đề tài nghiên cứ, phát triển hệ thống bãi đỗ xe sử dụng Arduino của chúng em làmột dự án kết hợp giữa việc sử dụng các mạch điện tử và lập trình vi điều khiển Mục tiêucủa dự án này là phát triển một hệ thống bãi đỗ xe có thể hỗ trợ việc quản lý, giám sát các
xe ra vào một cách hiệu quả hơn bằng cách sử dụng Arduino làm trung tâm điều khiển
Việc sử dụng Arduino và các Module cảm biến hồng ngoại giúp cải thiện hiệu quảviệc sử dụng diện tích và giảm thiểu thời gian tìm kiếm chỗ để xe Hệ thống sẽ tự độngchỉ ra các chỗ còn chống, giúp người lái xe dễ dàng tìm kiếm chỗ đỗ mà không phải dichuyển xung quanh khu vực để xe từ đó tiết kiệm thời gian cho người lái xe và giảm thiểutắc nghẽn trong khu vực để xe
1.3 Bố cục
CHƯƠNG 1 : TỔNG QUAN VỀ ĐỀ TÀI
Giới thiệu chung về đề tài, về Arduino Tổng quan về mục đích nghiên cứu đề tài,
ý nghĩa của đề tài và bố cục
CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT ĐỂ THỰC HIỆN ĐỀ TÀI
Các lý thuyết cần nắm về Arduino, các Module cảm biến, việc lập trình đểArduino giao tiếp với các Module cảm biến và các ngoại vi
CHƯƠNG 3 : THIẾT KẾ, MÔ PHỎNG VÀ LẬP TRÌNH DỰ ÁN
Lên ý tưởng thiết kế mô phỏng để khảo sát dự án hoạt động và lập trình cho dự án
CHƯƠNG 4 : DỰ ÁN SAU KHI HOÀN THIỆN, KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Thực hiện dự án trong thực tế, khi sản phẩm đã hoạt động, nghiên cứ, tìm hiểu đểnâng cao sản phẩm Đưa ra các ý tưởng để dự án hoàn thiện hơn
Trang 14CHƯƠNG 2 : CỞ SỞ LÝ THUYẾT ĐỂ THỰC HIỆN ĐỀ
Trang 15Hình 4: Sơ đồ đấu nối các chân của Arduino UNO đến ATmega3228
2.1.2 Chức năng của các chân kết nối trong bo mạch Arduino UNO
- Các chân nguồn :
+ VIN : điện áp đầu vào cho bo mạch khi sử dụng nguồn bên ngoài (7-12V).+ 5V : Cung cấp điệp áp 5V để làm nguồn nuôi cho các thiết bị ngoại vi ( ngoài racũng có thể kết nối điện áp 5V DC vào chân này và chân GND để cung cấp nguồn chínhcho bo mạch Arduino UNO)
+ 3.3V : Cung cấp nguồn nuôi cho các ngoại vi cần mức điện áp thấp
+ GND : Chân nối đất
+ IOREF : Chân tham chiếu điện áp hoạt động của vi điều khiển, thường sẽ là 5V.+ RESET : Đặt lại vi điều khiển, kéo xuống mức thấp, lúc này chương trình trong
vi điều khiển sẽ được khởi động lại
- Các chân Digital I/O : là các chân 0, 1, 2, 3, 5, 6, 9 , 10, 11, trong đó:
+ 0 : RX - nhận dữ hiệu
+ 1 : TX – truyền dữ hiệu
Trang 16+ Các chân còn lại thực hiện hỗ trợ việc ngắt ngoài ( điều này có nghĩa là sẽ chophép ngoại vi kích hoạt ngay lập tức nếu có lệnh đưa đến cho dù chương trình đang hoạtđộng, các chân này sẽ chuyển đổi một cách nhanh chóng từ mức HIGH – LOW và ngượclại, sử dụng trong các phản hồi nhanh chóng tín hiệu từ nút bấm, cảm biến.
- Các chân Analong :
+ A0 – A5 : Dùng để đọc các tín hiệu Analog từ các thiết bị ngoại vi hoặc cảmbiến
- Chân RESET :
+ RESET Button : Dùng để khởi động lại chương trình đang chạy.
+ RESET Pin có thể đặt lại hệ thống từ bên ngoài
- Nguồn lý tưởng cho module Arduino UNO hoạt động là 5 – 12V DC
- Arduino UNO có thể được cấp nguồn thông qua kết nối USB (tận dụng luôncổng nạp chương trình làm nguồn nuôi cho Arduino UNO)
- Ngoài ra cũng có thể cắm nguồn từ cổng power button trên module hoặc cấpnguồn trực tiếp vào chân 5V và GND trên module (như vậy bắt buộc phải sử dụng nguồn5V DC )
Trang 172.1.3.2 Đầu vào và đầu ra
- Trên bo mạch Arduino UNO có 14 chân Digital có thể được dùng cho mục đích
là tín hiệu vào hoặc tín hiệu ra
+ Mỗi chân đó hoạt động ở mức điện áp 5V
+ Dòng cực đại của các chân là 40mA
+ Các chân được nối với điện trở mặc định là từ: 20 – 50k
- Trên bo mạch Arduino có 6 chân Analog cho mục đích là tín hiệu ra, mỗi chânkết nối cung cấp 10 bit dữ liệu
+ Nguồn cấp cho các chân này là từ 0-5V
- Chiều dài tối đa và chiều rộng của bo mạch Uno là 2,7 và 2,1 inch
- Gồm 4 lỗ vít trên bo mạch dùng để gắn vào một bề mặt trong một số trường hợp
- Khoảng cách giữa các chân là 160 mil (0,16 ")
Trang 18xử lý dữ liệu, và có thể lưu dữ liệu lâu dài vào EEPROM nếu cần).
+ Bước 3: Kết quả xử lý được xuất ra các thiết bị ngoại vi như LED, motor, mànhình,…
2.1.5 Kết luận
- Bo mạch Arduino UNO là một vi điều khiển được sử dụng một cách phổ biếntrong các lĩnh vực, dự án về điện tử và lập trình Giao diện lập trình của Arduino IOT thânthiện, có thư viện, tài liệu, mã nguồn mở, dễ dàng tiếp cận Chi phí thấp, giá cả hợp lý vớihầu hết các đối tượng sử dụng Tích hợp nhiều tính năng, hỗ tợ cả tín hiệu Analong vàDigital Tính linh hoạt cao, có thể kết hợp với nhiều ngoại vi, cảm biến, module, phù hợpvới nhiều dự án,…
Tuy nhiên, Arduino UNO cũng có những hạn chế Do có số lượng chân tín hiệuhạn chế, nó cũng không phù hợp với các dự án lớn yêu cầu độ phức tạp cao Cùng với đó
là bộ nhớ hạn chế, tốc độ xử lý thấp (với xung nhịp chỉ 16 MHz), Arduino Uno khôngtích hợp sẵn WiFi hoặc Bluetooth, gây bất tiện khi phát triển các dự án IoT hoặc giao tiếpkhông dây Arduino UNO cũng không thích hợp với các dự án có ngoại vi yêu cầu dòngtải cao,…
Trang 192.2 Module Arduino Nano
2.2.2 Khái niệm
Ardunio nano là một phiên bản thu nhỏ của Arduino UNO, được thiết kế để sửdụng trong các không gian hạn chế, các dự án nhỏ Nó có đầy đủ các chức năng cơ bảncủa Arduino UNO nhưng với kích thước nhỏ gọn hơn Nó cũng sử dụng vi điều khiểnATmega328P hoặc ATmega168 và được cung cấp năng lượng qua cổng USB Mini-Bhoặc nguồn ngoài
Hình 5: Mặt trước và sau của Module Arduino Nano
2.2.2 Chức năng các chân kết nối trong bo mạch Arduino Nano
Arduino Nano là một bo mạch nhỏ gọn với các chân kết nối tương tự ArduinoUno nhưng được tối ưu hóa để tiết kiệm không gian Nó có tổng cộng 30 chân kết nối,bao gồm chân nguồn, chân I/O Digital và Analong
Trang 20Hình 6: Chi tiết các chân và cấu tạo của Arduino Nano
- Các chân nguồn :
+ VIN : Cấp nguồn từ 7-12V cho bo mạch hoạt động (nếu không cấp qua USB).+ 5V : Cung cấp nguồn 5V cho các ngoại vi hoặc cảm biến ( cũng có thể thực hiệncấp nguồn 5V vào chân này và chân GND làm nguồn nuôi cho bo mạch hoạt động
+ 3.3V : Cung cấp nguồn nuôi cho các ngoại vi yêu cầu điện áp thấp
+ GND : Chân nối đất
- Các chân Digital I/O : Arduino Nano có 14 chân Digital I/O, được đánh số từ D0đến D13, trong đó :
+ D0 (RX) : Dùng để nhận dữ liệu trong giao tiếp UART
+ D1 (TX) : Dùng để truyền dữ liệu trong giao tiếp UART
+ D2, D3 : Hỗ trợ ngắt ngoài
+ D3, D5, D6, D9, D10, D11 : Hỗ trợ để tạo tín hiệu giả Analog
+ D13 : Kết nối với LED tích hợp trên bo mạch (LED bật khi mức HIGH vàngược lại)
- Các chân Analog : Arduino Nano có 8 chân Analog Input (A0-A7), trong đó :
Trang 21+ A0-A5 : Dùng để đọc các tín hiệu Analog từ các thiết bị ngoại vi hoặc cảm biến.+ A6, A7: Các chân analog bổ sung, không có trên Arduino Uno, chỉ hỗ trợ đo tínhiệu analog.
- Chân RESET : Có thể reset vi điều khiển bằng cách kéo chân này xuống LOW
Hình 7: Chi tiết các chân trên bo mạch Arduino Nano
2.2.3 Các thông số cơ bản
2.2.3.1 Nguồn cấp
- Arduino Nano có nguồn cấp lý tưởng là 6 -20V DC, thể được cấp nguồn thôngqua kết nối USB Mini-B (tận dụng luôn cổng nạp chương trình làm nguồn nuôi )
- Cũng có thể cấp nguồn cho Arduino Nano hoạt động khi cấp nguồn vào chân 5V
và GND trên bo mạch ( điều này dẫn đến bắt buộc phải cấp nguồn 5V)
2.2.3.2 Bộ nhớ
- Arduino Nano có thể sử dụng 2 loại vi xử lý là : Atmega168 hoặc ATmega328
* Với Atmega168:
+ Bộ nhớ SRAM : 1KB
Trang 22+ Bộ nhớ EPROM : 512 byte
* Với ATmega328 :
+ Bộ nhớ SRAM : 2KB
+ Bộ nhớ EPROM : 1KB
2.2.3.3 Đầu vào và đầu ra
- Arduino Nano có 14 chân Digital được sử dụng cho tín hiệu vào hoặc tín hiệu ra.+ Các chân này hoạt động ở điện áp 5V
+ Mỗi chân có điện áp tối đa là 5V
+ Mỗi chân có dòng tối đa là 40 mA và nối với điện trở 20-50 k
- Arduino Nano có 8 đầu vào Analog, hoạt động ở điện áp 0-5V, có thể thay đổiđiện áp hoạt động bằng việc sử dụng hàm “analogReference ()” trong lập trình
2.2.3.4 Các thông số vật lý
- Arduino Nano có :
+ Chiều dài : 45 mm
+ Chiều rộng : 18 mm
+ Độ dày : Khoảng 6 mm (bao gồm linh kiện trên bo)
+ Các chân I/O cách nhau 0.1 inch (2.54 mm)
+ Hai hàng chân cách nhau 0.6 inch (15.24 mm)
2.2.4 Nguyên lý hoạt động
Arduino Nano R3 là một vi điều khiển được phát triển dựa trên chip ATmega168hoặc ATmega328P Hoạt động theo nguyên lý xử lý tín hiệu từ các tín hiệu đầu vào ( cáctín hiệu này có thể được lấy từ các module khác, các cảm biến hoặc các ngoại vi) và thựchiện các lệnh điều khiển theo chương trình được nạp vào vi điều khiển
Trang 23Nguyên lý hoạt động của Arduino Nano tương tự như của Arduino UNO.
xử lý dữ liệu, và có thể lưu dữ liệu lâu dài vào EEPROM nếu cần)
+ Bước 3: Kết quả xử lý được xuất ra các thiết bị ngoại vi như LED, motor, mànhình,…
2.2.5 Kết luận
Arduino Nano là một bo mạch vi điều khiển nhỏ gọn, mạnh mẽ, và linh hoạt, phùhợp với nhiều loại dự án về điện tử từ cơ bản đến phức tạp, phù hợp với nhiều đối tượng
từ học sinh, sinh viên,…Với kích thước nhỏ gọn, Arduino Nano thích hợp với các thiết
kế điện tử có không gian hạn chế Dựa trên vi điều khiển ATmega328P, Arduino Nanocung cấp khả năng xử lý mạnh mẽ và hiệu quả trong các ứng dụng nhúng Có giá thành
rẻ, do có mã nguồn mở, khối lượng tài liệu tham khảo lớn nên dễ dàng trong việc sửdụng
Tuy nhiên, do có kích thước hạn chế nên các module Arduino Nano không thể sửdụng với các ngoại vi yêu cầu dòng tải lớn hoặc hiệu suất cao Ngoài ra, với thiết kế và sốlượng chân tín hiệu vào ra như vậy, Arduino Nano cũng không phù hợp với các dự án lớnyêu cầu độ phức tạp cao,…
2.3 Module I2C LCD
2.3.1 Khái niệm
Module I2C LCD là một module giúp kết nối màn hình LCD với vi điều khiểnthông qua giao tiếp I2C (Inter-Integrated Circuit), thay vì sử dụng nhiều chân I/O như
Trang 24trong phương pháp kết nối truyền thống : mất 6 chân vi điều khiển để kết nối với LCD16×2 (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 Nó được thiết kế để giảm số lượng dây kết nối và đơn giản hóa việc giao tiếp vớicác màn hình LCD trong các ứng dụng điện tử.
+ Hoặc các màn hình LCD khác có cùng chuẩn giao tiếp HD44780
- Dòng tiêu thụ khoảng 20 - 50 mA (tùy thuộc vào việc đèn nền LCD có bật haykhông)
- Số chân giao tiếp : 4 chân
+ VCC: Nguồn cấp (5V hoặc 3.3V tùy loại module)
Trang 25+ GND: Chân nối đất.
+ SDA (Serial Data): Chân truyền dữ liệu I2C
+ SCL (Serial Clock): Chân truyền xung nhịp I2C
Hình 9: Các chân của Module I2C LCD
điều khiển qua giao tiếp I2C
- IC PCF8574 chuyển đổi tín hiệu I2C thành các tín hiệu điều khiển cần thiết đểgiao tiếp với màn hình LCD (RS, EN, D4-D7)
Bước 2 : IC PCF8574 dịch dữ liệu thành tín hiệu điều khiển tương ứng và gửi đếnmàn hình LCD
Bước 3 : LCD nhận lệnh và dữ liệu từ IC PCF8574 để thực hiện các chức năngnhư hiển thị ký tự, xóa màn hình, hoặc thay đổi con trỏ
Trang 262.4 Module 1 Relay 5V
2.4.1 Khái niệm
Module 1 Relay 5V là một mạch điện tử được thiết kế để điều khiển các thiết bịđiện tử hoặc điện dân dụng bằng tín hiệu điện áp thấp (thường từ vi điều khiển nhưArduino, ESP8266,…) Module này sử dụng một relay (rơ le) cơ điện có cuộn dây hoạtđộng ở điện áp 5V để đóng/ngắt mạch điện áp cao hoặc dòng điện lớn giúp bảo vệ cácmạch điện tử khỏi các điện áp cáo
Hình 10: Module 1 Relay 5V
2.4.2 Các thông số cơ bản
- Thông số của nguồn và tín hiệu điều khiển :
+ Điện áp hoạt động : 5V DC
+ Dòng tiêu thụ : khi không kích hoạt (< 5mA), khi kích hoạt ( ~ 70mA)
+ Tín hiệu điều khiển (IN) : Điện áp mức thấp (LOW): 0V – 1.5V (relay tắt) Điện áp mức cao (HIGH): 2.5V – 5V (relay bật)
- Thông số của relay :
+ Điện áp kích hoạt cuộn dây : 5V DC
Trang 27+ Dòng điện cuộn dây : ~ 70mA.
+ Công suất tối đa : AC: 250V 10A
DC: 30V 10A
- Module 1 Relay 5V gồm 6 chân :
+ VCC : Chân cấp nguồn 5V cho module
+ NC : Luôn đóng khi chưa có dòng qua cuộn cảm của relay
2.4.3 Nguyên lý hoạt động
Hình 11: Sơ đồ nguyên lý cơ bản của một Module Relay 5V
Trang 28- Khi có tín hiệu đưa qua R1 và được phân áp R3, sau đó sẽ đưa đến chân G củaQ1.
- Lúc này, Q1 sẽ mở, có dòng từ nguồn 5V qua cuộn cảm của relay rồi qua Q1 và
về GND, tạo thành một mạch kín
- Khi có dòng qua cuộn cảm, cuộn cảm sẽ tạo ra từ trường hút thanh tiếp điểm vềphía cuộn cảm, lúc này giữa chân COM và NO của Relay sẽ tạo thành một dây dẫn( diode có chức năng bảo vệ Q1, tránh các dòng ngược từ cuộn cảm đi trở về Q1 làmcháy, hỏng Q1) Relay giống như một công tắc, dùng để điều khiển ngắt / mở mạch điện
2.5 Module cảm biến hồng ngoại
Trang 29+ Điện áp hoạt động : 3.3 – 5V
+ Dòng tiêu thụ : Khoảng 20mA – 60mA (tùy loại và cấu hình)
- Thông số khoảng cách phát hiện :
+ Thường từ 2cm đến 80cm, tùy thuộc vào module và điều chỉnh biến trở.+ Một số loại đặc biệt có thể phát hiện xa hơn (lên đến vài mét)
+ Độ nhạy phụ thuộc vào màu sắc và bề mặt của vật thể (vật sáng màu phản xạ tốthơn)
- Góc phát hiện ánh sáng hồng ngoại :
+ Thường từ 35° – 60°, tùy thuộc vào thiết kế của LED và photodiode
- Thời gian phản hồi :
+ Thời gian đáp ứng: < 1ms (phản ứng nhanh với thay đổi ánh sáng phản xạ)
- Điều kiện môi trường :
+ Nhiệt độ hoạt động: -20°C đến +70°C
+ Độ ẩm hoạt động: 20% – 85% RH (không ngưng tụ)
Trang 302.5.3 Nguyên lý hoạt động
Hình 13: Sơ đồ mạch của module cảm biến hồng ngoại
- IR LED là led phát hồng ngoại (mắt phát hồng ngoại) luôn phát ra các bước sónghồng ngoại mà mắt thường không thể thấy Các sóng hồng ngoại này khi gặp phải vật cản
sẽ phản sợ trở lại và được photodiode thu (mắt thu) thu lại Ban đầu photodiode có nội trởrất cao nhưng khi photodiode thu các tia hồng ngoại phản xạ lại, nội trở của nó sẽ giảmdần
- Nội trở của photodiode và R2 sẽ tạo thành một mạch chia áp, trước khi điện áp5V từ nguồn được đưa vào chân 3 của bộ khuếch đại thuật toán Op – Amp Giá trị điện ápđược đưa vào chân 3 của Op – Amp sẽ được so sánh với giá trị điện áp được ghim trênbiến trở R3 :
+ Nếu U3 > U2 thì output sẽ suất ra mức 1 ( bằng với giá trị Vcc)
+ Nếu U3 < U2 thì output sẽ suất ra mức 0 ( bằng với giá trị GND)
- Việc tăng cường độ nhạy của Module có thể làm được thông qua việc thay đổigiá trị của biến trở R3
Trang 312.6 Mạch cảm biến lửa (flame senser)
2.6.1 Khái niệm
Mạch cảm biến lửa là mạch điện tử được sử dụng để phát hiện sự hiện diện củangọn lửa và các yếu tố liên quan đến cháy nổ, nhiệt độ cao, tia hồng ngoại,… Mạch nàythường được sử dụng trong các hệ thống cảnh báo cháy, robot chữa cháy, hoặc các ứngdụng an ninh, tự động hóa
+ Khảng cách phát hiện : Thông thường từ 0.5m – 1.5m
+ Một số module cao cấp có thể phát hiện xa hơn, lên đến 3m
+ Góc phát hiện : Thường trong khoảng 60° – 120°, tùy loại cảm biến