Cảm biến hồng ngoại PIR - Passive Infrared Sensor hoạt động dựa trên việc phát hiện sự thay đổi nhiệt độ do chuyển động của con người hoặc vật thể phát ra bức xạ nhiệt.. Từ thực tế đó, đ
TỔNG QUAN
Tổng quan về cảm biến
Cảm biến (sensor) là thiết bị có khả năng nhận biết sự thay đổi của một đại lượng vật lý hoặc hóa học trong môi trường và chuyển đổi nó thành tín hiệu điện để xử lý hoặc hiển thị Cảm biến đóng vai trò như giác quan của hệ thống, cung cấp dữ liệu đầu vào cho các quá trình xử lý và tự động hóa, giám sát và điều khiển hoạt động Với độ nhạy và phạm vi đo lường phù hợp, cảm biến cho phép thu thập thông tin chính xác, từ đó tối ưu hóa hiệu suất, độ tin cậy và an toàn của hệ thống.
Tùy theo mục đích đo lường, cảm biến có thể phân loại như sau:
Loại cảm biến Mô tả Ví dụ minh họa
Cảm biến nhiệt độ Nhận biết nhiệt độ môi trường
Cảm biến ánh sáng Nhận biết cường độ ánh sáng LDR, Photodiode
Cảm biến chuyển động Phát hiện chuyển động hoặc sự có mặt
Trong lĩnh vực cảm biến dùng trong tự động hóa và robot, có các loại thiết bị giúp đo khoảng cách, ghi nhận âm thanh và phát hiện khí gas Cảm biến khoảng cách HC-SR04 sử dụng nguyên lý siêu âm để đo khoảng cách tới vật thể một cách nhanh chóng và chính xác, trong khi cảm biến khoảng cách Sharp IR là lựa chọn phổ biến cho các dự án ở khoảng cách ngắn với phản ứng nhanh Cảm biến âm thanh chủ yếu là microphone module, cho phép ghi nhận và xử lý tín hiệu âm thanh, phục vụ cho nhận diện giọng nói hoặc theo dõi âm thanh môi trường Cảm biến khí/gas như MQ2 và MQ135 được dùng để phát hiện nồng độ khí độc hại và các khí dễ bay hơi, phục vụ cho an toàn và giám sát môi trường Việc kết hợp các loại cảm biến này giúp hệ thống có khả năng đo khoảng cách, nhận diện âm thanh và nhận biết khí độc, từ đó cải thiện tính năng tự động hóa và an toàn.
Bảng 1.1: Các loại cảm biến
Trong các hệ thống tự động, cảm biến là mắt xích đầu tiên trong chu trình xử lý dữ liệu, kết nối trực tiếp với vi điều khiển và điều khiển thiết bị chấp hành Việc chọn đúng loại cảm biến và hiểu rõ nguyên lý hoạt động của chúng giúp hệ thống vận hành hiệu quả, ổn định và chính xác hơn.
Đặt vấn đề cho đề tài
Trong bối cảnh hiện nay, tiết kiệm năng lượng và nâng cao mức độ tự động hóa trong sinh hoạt hàng ngày đang trở thành xu hướng tất yếu Một ứng dụng phổ biến và hiệu quả là hệ thống điều khiển đèn tự động dựa trên cảm biến, cho phép đèn tự động bật tắt theo điều kiện ánh sáng và sự có mặt của người dùng, từ đó tối ưu hóa nguồn sáng, giảm chi phí điện năng và nâng cao tiện nghi sống.
Phát hiện người là giải pháp cảm biến giúp tự động đóng mở đèn dựa trên sự có mặt của người trong không gian Thông thường, người dùng hay quên tắt đèn khi rời khỏi phòng, gây lãng phí điện năng không cần thiết, đặc biệt trong các môi trường công cộng như lớp học, văn phòng và nhà vệ sinh Áp dụng hệ thống phát hiện người giúp đèn tự động tắt khi không có người và bật sáng khi có người trở lại, từ đó tối ưu hóa sử dụng điện, giảm chi phí vận hành và bảo vệ môi trường Đây là giải pháp chiếu sáng thông minh, nâng cao tiện ích và tiết kiệm năng lượng cho các cơ sở giáo dục, văn phòng và công trình công cộng.
Từ thực tế, đề tài "Hệ thống bật tắt đèn tự động và đếm số người bằng cảm biến hồng ngoại" nhằm xây dựng một mô hình hoạt động hiệu quả, tiết kiệm điện và dễ dàng ứng dụng thực tế Hệ thống sẽ dùng cảm biến hồng ngoại để nhận diện sự có mặt của người trong vùng đo, tự động bật đèn khi có người và tắt đèn khi vắng, giúp tối ưu hóa tiêu thụ điện năng và tăng tiện ích cho các không gian như văn phòng, cửa hàng hoặc hành lang Bên cạnh đó, chức năng đếm số người được tích hợp để cung cấp dữ liệu giám sát lưu lượng người, cải thiện quản lý chiếu sáng và an toàn Thiết kế chú trọng độ nhạy của cảm biến, ổn định tín hiệu và khả năng tích hợp với hệ thống điều khiển hiện đại, nhằm mang lại một hệ thống tiết kiệm điện, tin cậy và dễ triển khai trên thực tế.
Mục tiêu
❖ Thiết kế và xây dựng hệ thống sử dụng cảm biến hồng ngoại để phát hiện người ra vào phòng
❖ Xây dựng thuật toán đếm số lượng người trong phòng để điều khiển việc bật/tắt đèn một cách chính xác
❖ Sử dụng vi điều khiển để xử lý dữ liệu từ cảm biến và điều khiển các thiết bị đầu ra như LED
❖ Hiển thị số người trong phòng lên màn hình LCD để tiện theo dõi
❖ Mô phỏng hệ thống để kiểm nghiệm tính chính xác và ổn định của hệ thống.
Phạm vi nghiên cứu
❖ Kiến thức đã học trong học phần Kỹ thuât cảm biến và Kỹ thuật số
❖ Các tài liệu từ internet, datasheet thiết bị và sự hỗ trợ từ giảng viên, bạn bè
❖ Phạm vi phần cứng: sử dụng Arduino Nano, cảm biến IR, LCD 16x2, LED.
Nội dung nghiên cứu
❖ Chương 2: Cơ sở lí thuyết
❖ Chương 3: Thiết kế và triển khai
❖ Chương 4: Kết quả và nhận xét
Giới thiệu hệ thống
Hình 1.1: Tổng quan hệ thống
Nguồn 5V được cấp cho mạch cùng với khối cảm biến, mạch dùng vi xử lí Arduino Nano cùng LCD hiện thị số người và đèn led chiếu sáng
CƠ SỞ LÍ THUYẾT
Khối nguồn
2.1.1 Khái niệm và vai trò
Khối nguồn là phần cung cấp năng lượng cho toàn bộ hệ thống nhúng Trong các hệ thống nhúng sử dụng vi điều khiển như Arduino, khối nguồn đóng vai trò cực kỳ quan trọng, giúp duy trì điện áp ổn định cho các linh kiện như cảm biến, vi điều khiển, LCD và đèn LED để hệ thống hoạt động chính xác.
2.1.2 Nguồn cung cấp trong hệ thống
Trong đề tài này, nguồn điện được cấp trực tiếp từ cổng USB của máy tính Khi kết nối cáp USB cấp nguồn cho Arduino Nano, board mạch sẽ lấy điện áp 5V từ cổng USB và phân phối đến toàn hệ thống, giúp các thành phần hoạt động ổn định và đồng bộ.
Arduino Nano có mạch ổn áp tích hợp bên trong, nhận điện áp từ cổng USB
Thiết bị cấp nguồn 5V được phân phối đến các chân VCC hoặc 3.3V tùy theo nhu cầu của linh kiện, đảm bảo đúng mức điện áp cho từng thành phần Cổng USB vừa dùng để nạp chương trình vừa cấp nguồn, mang lại sự tiện lợi cho các mô hình nhỏ vì không yêu cầu nguồn điện ngoài phức tạp.
2.1.3 Một số lưu ý khi sử dụng
Đảm bảo nguồn từ cổng USB đủ dòng cho toàn bộ hệ thống là yếu tố then chốt, nhất là khi kết nối nhiều linh kiện tiêu thụ điện như LCD hoặc nhiều LED Để tránh sụt áp và quá tải, tính toán tổng công suất tiêu thụ và chọn cổng USB hoặc nguồn cấp có dòng tối đa đáp ứng yêu cầu của toàn bộ phần cứng Trong trường hợp gắn nhiều thiết bị tiêu thụ cao, nên cân nhắc sử dụng hub USB có nguồn cấp riêng hoặc nguồn ngoài có công suất đủ lớn để phân phối ổn định cho tất cả linh kiện Việc kiểm tra và kiểm soát dòng cấp cho từng thiết bị giúp đảm bảo nguồn ổn định, tối ưu hiệu suất và bảo vệ các thành phần như LCD và LED khỏi hỏng hóc do nguồn không ổn định.
Arduino Nano nên được cấp nguồn đúng cách: không nên cắm đồng thời nguồn ngoài và nguồn USB vào Arduino Nano khi chưa có mạch chuyển nguồn hợp lý, để tránh xung đột nguồn và hư hỏng vi điều khiển Khi cần hoạt động độc lập, có thể dùng pin hoặc adapter 5V cắm qua chân 5V.
VIN thay cho cổng USB.
Khối cảm biến
2.2.1 Cơ sở lý thuyết về cảm biến a Nguyên lý hoạt động chung
Tùy vào nguyên lý vật lý mà cảm biến áp dụng, chúng có thể chia thành các nhóm:
- Cảm biến điện trở: thay đổi điện trở theo điều kiện môi trường (LDR, RTD)
- Cảm biến điện dung: thay đổi điện dung (cảm biến tiệm cận điện dung)
- Cảm biến điện áp: tạo điện áp khi chịu tác động (cảm biến nhiệt điện)
- Cảm biến từ: dựa vào hiện tượng Hall hoặc cảm ứng điện từ
- Cảm biến quang: sử dụng ánh sáng (hồng ngoại, laser, photodiode) b Một số công thức thường gặp
❖ 1 Cảm biến ánh sáng LDR:
- A, γ: hằng số đặc trưng của cảm biến
❖ 2 Cảm biến nhiệt độ RTD (Resistance Temperature Detector):
- R(T): điện trở tại nhiệt độ T
- R₀: điện trở tại nhiệt độ chuẩn T₀ (thường là 0°C)
- α: hệ số nhiệt điện trở (đối với platinum: α ≈ 0.00385/°C)
❖ 3 Cảm biến khoảng cách siêu âm: d = (v × t) / 2
- d: khoảng cách đến vật thể
- v: vận tốc âm trong không khí (~343 m/s ở 25°C)
- t: thời gian sóng đi và phản hồi
❖ 4 Cảm biến điện dung (capacitive sensor):
- d: khoảng cách giữa hai bản cực
6 c Đặc trưng quan trọng của cảm biến
- Độ nhạy (Sensitivity): sự thay đổi tín hiệu ra khi đại lượng vào thay đổi một đơn vị
- Tuyến tính (Linearity): mức độ tín hiệu ra tỉ lệ tuyến tính với đầu vào
- Độ trễ (Hysteresis): sự khác biệt tín hiệu ra khi đại lượng vào tăng và giảm
- Sai số (Error): chênh lệch giữa giá trị đo và thực tế
- Thời gian đáp ứng (Response time): thời gian từ khi tác động đến khi tín hiệu ổn định d Một số loại cảm biến nâng cao
- Cảm biến IMU (Inertial Measurement Unit): kết hợp gia tốc kế và con quay hồi chuyển để đo chuyển động 3 chiều
- Cảm biến Hall: phát hiện từ trường, dùng trong đo tốc độ quay hoặc vị trí
- Cảm biến áp suất (Pressure Sensor): đo lực tác động lên bề mặt
- Cảm biến dòng và điện áp: dùng đo điện năng tiêu thụ (ACS712, INA219)
2.2.2 Khái niệm và vai trò
Khối cảm biến là đầu vào của hệ thống, có nhiệm vụ phát hiện sự hiện diện hoặc chuyển động của con người ở gần khu vực cửa ra vào Khi phát hiện có người, cảm biến sẽ gửi tín hiệu tới khối điều khiển trung tâm để kích hoạt đèn Trong hệ thống đèn tự động, cảm biến được lắp đặt ở những vị trí có khả năng nhận diện rõ sự di chuyển của người qua lại, ví dụ như trên cửa ra vào, hành lang hoặc cầu thang, nhằm tối ưu hóa ánh sáng và tiết kiệm năng lượng.
❖ Phát hiện chuyển động hoặc vật cản
Cảm biến liên tục giám sát khu vực được giám sát Khi có người đi vào vùng cảm ứng, cảm biến sẽ tạo ra sự biến đổi trong tín hiệu điện và gửi thông tin này đến vi điều khiển để xử lý.
❖ Chuyển đổi tín hiệu sang dạng số
Thông tin đầu ra của cảm biến thường ở dạng tín hiệu điện áp ở mức cao hoặc thấp, tạo thành một tín hiệu nhị phân dễ đọc và xử lý bởi vi điều khiển Dạng tín hiệu digital – ON/OFF cho phép vi điều khiển xác định nhanh trạng thái cảm biến và thực hiện xử lý dữ liệu một cách hiệu quả Với đặc tính này, thiết kế mạch đọc tín hiệu trở nên đơn giản, ổn định và giảm thiểu nhiễu, từ đó tối ưu hóa hiệu suất hệ thống.
❖ Ổn định và giảm nhiễu
Cảm biến có thể tích hợp thêm các mạch lọc để giảm nhiễu tín hiệu do ánh sáng mạnh, rung động nhỏ và các tác nhân nhiễu khác, từ đó cải thiện độ ổn định và độ chính xác của dữ liệu đo trong những điều kiện môi trường phức tạp.
❖ Giao tiếp đơn giản với hệ thống
Phổ biến và dễ tiếp cận, hầu hết các loại cảm biến hiện nay đều có giao tiếp đơn giản chỉ với 2 hoặc 3 chân, cho phép kết nối dễ dàng với các chân I/O của vi điều khiển như Arduino và STM32 Thiết kế này giúp người dùng nhanh chóng tích hợp cảm biến vào các dự án nhờ khả năng đọc dữ liệu và điều khiển hiệu quả, tiết kiệm thời gian lắp đặt và tối ưu hóa chi phí hệ thống.
2.2.4 Cảm biến vật cản hồng ngoại là gì ? a Khái niệm
An infrared obstacle avoidance sensor is an active device that uses infrared radiation to detect obstacles ahead It works by emitting IR light and sensing reflections to determine whether an object is in the path, enabling autonomous systems to steer clear of collisions Commonly used sensor types include reflective IR sensors, which detect objects by measuring reflected IR light from a nearby target, through-beam (or interruption) IR sensors, which rely on a separate receiver aligned with the emitter to detect a break in the beam, and single-point IR obstacle sensors, designed for precise front-facing obstacle detection These sensors are widely used in robotics, automation, and safety systems to improve navigation and obstacle avoidance.
- Cảm biến hồng ngoại thụ động (PIR): Phát hiện chuyển động thông qua thay đổi nhiệt độ trong môi trường
Cảm biến hồng ngoại phát – thu (IR) hoạt động theo nguyên lý phát tia hồng ngoại và nhận phản xạ từ vật thể quanh bạn Khi có vật cản như người hoặc tay xuất hiện trước cảm biến, tín hiệu IR sẽ thay đổi đáng kể, cho phép nhận diện sự hiện diện hoặc di chuyển của vật thể ấy Với độ nhạy cao và chi phí thấp, cảm biến IR được ứng dụng rộng rãi trong hệ thống an ninh, tự động hóa gia đình và các thiết bị đo khoảng cách dựa trên sự biến đổi của tín hiệu phản xạ.
Ngoài ra, hệ thống có thể tích hợp cảm biến ánh sáng để bảo đảm đèn chỉ bật vào ban đêm hoặc khi trời tối, từ đó tối ưu hóa tiêu thụ điện năng và tăng tuổi thọ hệ thống Nguyên lý hoạt động của chúng là cảm biến nhận diện mức độ sáng xung quanh và gửi tín hiệu đến vi xử lý hoặc mạch so sánh; tại đây ngưỡng sáng được thiết lập để quyết định trạng thái bật/tắt đèn Khi ánh sáng giảm xuống dưới ngưỡng đã định, mạch sẽ kích hoạt đèn và ngược lại sẽ tắt đèn khi mức sáng trở về mức tối ưu, giúp hệ thống hoạt động tự động và ổn định Thông số ngưỡng có thể được điều chỉnh tùy theo vị trí, môi trường và yêu cầu chiếu sáng, để đảm bảo hiệu quả chiếu sáng mà không lãng phí năng lượng Bên cạnh đó, có thể bổ sung chế độ điều chỉnh độ sáng theo điều kiện ánh sáng ngoài trời hoặc thời gian để tối ưu hóa hiệu suất.
Cảm biến vật cản hồng ngoại là một hệ thống gồm một cặp phát và nhận tia hồng ngoại Tia hồng ngoại được phát ở một tần số nhất định; khi gặp vật cản, tia sẽ bị phản xạ trở lại và được đèn thu hồng ngoại nhận lại Sau khi tín hiệu được đưa về IC so sánh, đèn xanh trên bo mạch sẽ sáng lên và tạo ra tín hiệu đầu ra số tương ứng để xử lý bởi các phần tử khác của hệ thống.
Hình 2.1: Mắt phát hồng ngoại là TX, mắt thu hồng ngoại là RX
Bộ phát hồng ngoại thường dùng đèn LED có bước sóng từ 940 nm đến 950 nm để truyền ánh sáng và dữ liệu bằng công nghệ hồng ngoại Đèn LED hồng ngoại này cho phép truyền dữ liệu từ đầu này sang đầu kia và đi kèm bộ thu hồng ngoại ở đầu nhận để nhận dữ liệu.
❖ Bộ thu hồng ngoại TSOP1738 Ở đầu thu, bộ thu IR nhận dữ liệu ở tần số sóng mang 38kHz
Bộ thu TSOP chủ yếu được sử dụng để nhận dữ liệu hỗ trợ nhiều loại mã truyền khác nhau
Tốc độ dữ liệu của TSOP1738 lên tới 2400 bps
Hình 2.2: Nguyên lý hoạt động của mắt thu phát hồng ngoại
Mắt phát hồng ngoại hoạt động trong phạm vi giới hạn và chỉ đi tới một khoảng cách nhất định khi không có đối tượng phản xạ Vì vậy, mắt thu hồng ngoại sẽ không thể phát hiện vật cản khi ánh sáng hồng ngoại không bị phản xạ Ngược lại, khi gặp vật cản và ánh sáng hồng ngoại bị phản xạ lại, mắt thu sẽ nhận tín hiệu và từ đó phát hiện vật cản và xuất tín hiệu báo hiệu.
Hình 2.3: Ảnh hưởng của đối tượng tới việc phát hiện của cảm biến
Độ nhạy của cảm biến phụ thuộc vào tính chất của vật cản gặp phải, đặc biệt là sự phản xạ ánh sáng hồng ngoại Các vật có màu trắng có xu hướng phản xạ ánh sáng hồng ngoại mạnh hơn, từ đó tăng khả năng cảm biến nhận diện so với các vật cản màu tối Ngược lại, các vật màu tối hấp thụ ánh sáng hồng ngoại nhiều và phản xạ lại ít hơn, khiến mắt thu của cảm biến có thể khó phát hiện.
2.2.5 Cảm biến vật cản hồng ngoại IR Infrared Obstacle Avoidance
Hình 2.4: Cảm biến vật cản hồng ngoại
Cảm biến vật cản hồng ngoại (IR Sensor) là mô-đun tích hợp sẵn bộ phát và thu tia hồng ngoại, dùng để phát hiện vật cản nhờ phản xạ tia IR Nó hoạt động tốt trong môi trường ánh sáng mạnh hoặc tối hoàn toàn Mô-đun có đèn LED chỉ báo trạng thái phát hiện vật cản, cùng biến trở điều chỉnh khoảng cách phát hiện Tín hiệu đầu ra là dạng số (1 hoặc 0) a Cấu tạo và sơ đồ chân
❖ Sơ đồ chân Cảm biến Hồng ngoại (IR Sensor Pinout)
Thông thường, một cảm biến hồng ngoại sẽ có ba chân – VCC (nguồn cấp điện), GND (nối đất), và OUT (tín hiệu đầu ra)
- Chân VCC: kết nối với cực dương của nguồn điện
- Chân GND: kết nối với cực âm (nối đất)
- Chân OUT: nơi nhận tín hiệu đầu ra từ cảm biến dựa trên việc phát hiện bức xạ hồng ngoại
Ngoài ra, module còn tích hợp chiết áp (potentiometer) để điều chỉnh khoảng cách phát hiện vật cản
Hình 2.5: Sơ đồ chân cảm biến hồng ngoại (IR sensor)
❖ Mô tả các chân (Pin Description)
Chân linh kiện Mô tả
Vcc Ngõ vào cấp nguồn 3.3V đến 5V DC
GND Ngõ vào nối đất
Out Ngõ ra tín hiệu, sẽ xuống mức thấp khi phát hiện vật cản
Power LED Đèn LED báo nguồn: sáng khi cấp nguồn
Obstacle LED Đèn LED vật cản: sáng khi phát hiện vật cản
IR Emitter Đèn LED phát tia hồng ngoại (IR)
IR Receiver Bộ thu tín hiệu hồng ngoại phản xạ từ vật thể
Bảng 2.1: Mô tả chức năng các chân cảm biến hồng ngoại
Hình 2.6: Sơ đồ chân LM393
Chân Tên chân Chức năng
1 OUT1 Ngõ ra của bộ so sánh 1
2 IN1- Ngõ vào đảo (−) của bộ so sánh 1
3 IN1+ Ngõ vào không đảo (+) của bộ so sánh 1
5 IN2+ Ngõ vào không đảo (+) của bộ so sánh 2
6 IN2− Ngõ vào đảo (−) của bộ
7 OUT2 Ngõ ra của bộ so sánh 2
8 VCC Nguồn dương (thường 5V hoặc 3.3V)
Bảng 2.2: Sơ đồ chân LM399 b Nguyên lý hoạt động của cảm biến vật cản hồng ngoại
Cảm biến vật cản hồng ngoại IR Infrared Obstacle Avoidance hoạt động như một bộ so sánh điện áp: nếu điện áp tại ngõ không đảo cao hơn ngõ đảo, nó cho
Đầu ra của hệ thống được duy trì ở mức cao nhờ điện trở kéo lên; khi tín hiệu xuống thấp, đầu ra sẽ bị kéo xuống ở mức thấp Trong module cảm biến, cơ chế kéo lên này cho phép nhận diện tín hiệu từ vật phản xạ và từ đó đưa ra quyết định logic nhanh chóng và ổn định, tối ưu hóa quá trình xử lý tín hiệu cảm biến.
Khối xử lí trung tâm
2.3.1 Khái niệm và vai trò
Khối xử lí trung tâm là bộ phận xử lý chính trong hệ thống bật đèn tự động
Nó nhận tín hiệu từ cảm biến phát hiện chuyển động, sau đó xử lý và điều khiển bật/tắt đèn theo điều kiện đã lập trình
Khối này đóng vai trò “bộ não” của hệ thống, thực hiện việc:
❖ Đọc và xử lý tín hiệu đầu vào từ cảm biến
❖ Kích hoạt đèn bật lên khi có người đi qua
❖ Duy trì đèn sáng trong một khoảng thời gian cố định (ví dụ 30 giây), sau đó tắt nếu không phát hiện chuyển động mới
❖ Có thể thực hiện thêm các chức năng nâng cao như đếm số người vào/ra, điều khiển nhiều đèn cùng lúc hoặc điều chỉnh độ nhạy
Một số vi điều khiển phổ biến được dùng làm khối điều khiển trung tâm cho các dự án nhúng gồm Arduino (Uno, Nano), STM32 và ESP32, tùy thuộc vào yêu cầu về số chân kết nối, bộ nhớ và độ phức tạp của hệ thống Việc chọn vi điều khiển phù hợp giúp tối ưu hóa hiệu suất, tiết kiệm năng lượng và dễ dàng tích hợp với cảm biến, actuator và các giao thức giao tiếp Arduino nổi bật với tính dễ sử dụng и cộng đồng hỗ trợ rộng, STM32 mang lại hiệu năng xử lý cao và bộ nhớ lớn, còn ESP32 bổ sung khả năng kết nối không dây Bluetooth/Wi‑Fi cho các ứng dụng IoT.
2.3.2 Chức năng chính a Tiếp nhận và xử lý tín hiệu cảm biến
Khối xử lý nhận tín hiệu từ cảm biến hồng ngoại PIR hoặc IR và thực thi các hành động tương ứng Khi có người đi qua vùng phát hiện, cảm biến sẽ gửi tín hiệu mức cao hoặc mức thấp tới vi điều khiển, cho phép hệ thống nhận diện sự kiện và bắt đầu điều khiển đèn Quá trình xử lý thời gian bật đèn được thiết kế để đèn sáng đúng thời điểm sau mỗi lần phát hiện, tối ưu hóa tiêu thụ năng lượng và đảm bảo an toàn cho khu vực được giám sát.
Khi nhận tín hiệu từ cảm biến, vi điều khiển sẽ kích hoạt đèn sáng và đồng thời bắt đầu một bộ đếm thời gian để duy trì đèn ở trạng thái sáng trong khoảng thời gian đã được định trước; sau khoảng thời gian này, nếu không phát hiện thêm chuyển động mới, đèn sẽ tự động tắt Quá trình lọc nhiễu và kiểm tra điều kiện hoạt động được thực hiện để đảm bảo hệ thống hoạt động ổn định, giảm thiểu báo động giả và tối ưu hóa hiệu suất của thiết bị.
Khối xử lý được lập trình để lọc bỏ tín hiệu nhiễu, như rung động nhỏ hoặc biến đổi ánh sáng không liên quan, từ đó cải thiện độ ổn định và độ chính xác của hệ thống Hệ thống cũng có thể được cấu hình để chỉ hoạt động vào ban đêm nhờ cảm biến ánh sáng tích hợp và các thuật toán nhận diện tối ưu cho điều kiện ánh sáng yếu Giao tiếp hiệu quả và khả năng mở rộng chức năng là các yếu tố trọng tâm, cho phép tích hợp với thiết bị khác, bổ sung module mới và hỗ trợ các giao thức truyền thông phổ biến.
Vi điều khiển có thể giao tiếp với các linh kiện ngoại vi như màn hình hiển thị, đèn báo hoặc còi báo để hiển thị thông tin và cảnh báo cho người dùng Trong các hệ thống mở rộng, vi điều khiển còn có thể giao tiếp không dây qua Wi‑Fi và Bluetooth, cho phép gửi dữ liệu và điều khiển từ xa, đồng thời dễ dàng tích hợp với các thiết bị IoT và mạng cảm biến.
2.3.3 Cấu trúc khối điều khiển trung tâm
Là thành phần chính thực hiện các tác vụ xử lý tín hiệu, tính toán và điều khiển
Thông dụng: Arduino Uno (ATmega328P), STM32, hoặc ESP32
Lưu trữ chương trình và dữ liệu
Bao gồm bộ nhớ Flash (chương trình) và RAM (xử lý tạm thời)
Cấp điện áp ổn định cho vi điều khiển và các thành phần khác
Giao tiếp với cảm biến (Analog hoặc Digital) Điều khiển động cơ qua Driver (PWM hoặc tín hiệu số)
❖ Mạch điều chỉnh xung nhịp: Đảm bảo vi điều khiển hoạt động ổn định với tần số thích hợp
2.3.4 Lựa chọn khối điều khiển trung tâm a Chip vi điều khiển Atmega328P
Trong phần cơ sở lý thuyết, tồn tại nhiều dòng vi điều khiển phổ biến có thể đáp ứng được như ARM Cortex (STM32), AVR ATmega và ESP, nhưng trong cuộc thi này chỉ sử dụng một số chức năng cơ bản nên ATmega328P được ưu tiên vì dễ tiếp cận và có nhiều nguồn tài liệu ATmega328P đóng gói dạng SMD là một chip vi điều khiển thuộc họ MegaAVR do Atmel sản xuất, mạnh hơn ATmega8, và là một bộ vi điều khiển 8-bit dựa trên kiến trúc RISC, với bộ nhớ chương trình 32KB flash có thể ghi xóa hàng nghìn lần, 1KB EEPROM và 2KB RAM, cho phép một mức RAM tương đối lớn so với nhiều vi xử lý 8-bit khác.
Với 23 chân có thể sử dụng cho các kết nối vào hoặc ra i/O, 32 thanh ghi, 3 bộ timer/counter có thể lập trình, có các gắt nội và ngoại (2 lệnh trên một vector ngắt), giao thức truyền thông nối tiếp USART, SPI, I2C Ngoài ra có thể sử dụng bộ biến đổi số tương tự 10 bít (ADC/DAC) mở rộng tới 8 kênh, khả năng lập trình được watchdog timer, hoạt động với 5 chế độ nguồn, có thể sử dụng tới 6 kênh điều chế độ rộng xung (PWM), hỗ trợ bootloader
Hình 2.8: Chip vi điều khiển Atmega328P b Arduino Nano
Arduino Nano là một bảng vi điều khiển thân thiện, nhỏ gọn, đầy đủ Arduino Nano nặng khoảng 7g với kích thước từ 1,8cm - 4,5cm
Nano được tích hợp vi điều khiển ATmega328P, giống như Arduino UNO
Sự khác biệt chính giữa hai dòng Arduino là UNO có dạng PDIP (Plastic Dual-In-Line Package) với 30 chân, còn Nano có dạng TQFP (Plastic Quad Flat Pack) với 32 chân UNO có 6 cổng ADC trong khi Nano có 8 cổng ADC Nano không có giắc nguồn DC như các bo mạch Arduino khác mà thay vào đó dùng cổng mini-USB.
Hình 2.9: Hình ảnh Arduino Nano
Chân Tên Pin Kiểu Chức năng
1 D1 / TX I / O Ngõ vào/ra số, Chân TX-truyền dữ liệu
2 D0 / RX I / O Ngõ vào/ra số, Chân Rx-nhận dữ liệu
3 RESET Đầu vào Chân reset, hoạt động ở mức thấp
4 GND Nguồn Chân nối mass
17 3V3 Đầu ra Đầu ra 3.3V (từ FTDI)
18 AREF Đầu vào Tham chiếu ADC
19 A0 Đầu vào Kênh đầu vào tương tự kênh 0
20 A1 Đầu vào Kênh đầu vào tương tự kênh 1
21 A2 Đầu vào Kênh đầu vào tương tự kênh 2
22 A3 Đầu vào Kênh đầu vào tương tự kênh 3
23 A4 Đầu vào Kênh đầu vào tương tự kênh 4
24 A5 Đầu vào Kênh đầu vào tương tự kênh 5
25 A6 Đầu vào Kênh đầu vào tương tự kênh 6
26 A7 Đầu vào Kênh đầu vào tương tự kênh 7
27 +5V Đầu ra hoặc đầu vào Đầu ra 5V (từ bộ điều chỉnh On-board) hoặc + 5V (đầu vào từ nguồn ngoài)
28 RESET Đầu vào Chân đặt lại, hoạt động ở mức thấp
29 GND Nguồn Chân nối mass
30 VIN Nguồn Chân nối với nguồn vào
Bảng 2.8: Chức năng của các chân của Arduino Nano Các chân: 1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 và 16
Arduino Nano có 14 ngõ vào/ra số để điều khiển và đọc tín hiệu từ cảm biến và thiết bị Các chân làm việc ở điện áp tối đa 5V, cho phép cấp nguồn hoặc nhận tín hiệu ở mức logic cao hoặc thấp Mỗi chân có thể cung cấp hoặc nhận dòng điện lên tới 40 mA và có điện trở kéo lên khoảng 20–50 kΩ để đảm bảo trạng thái ổn định khi ở chế độ ngắt Các chân có thể được sử dụng làm đầu vào hoặc đầu ra tùy bài toán và được lập trình bằng các hàm pinMode(), digitalWrite() và digitalRead() để thiết lập chế độ và đọc dữ liệu.
Ngoài các chức năng đầu vào và đầu ra số, các chân này cũng có một số chức năng bổ sung
Hai chân RX và TX được dùng để truyền dữ liệu nối tiếp ở chuẩn TTL Các chân RX và TX được kết nối với các chân tương ứng của chip USB-to-TTL để thực hiện giao tiếp dữ liệu giữa thiết bị và máy tính hoặc hệ thống khác thông qua giao tiếp nối tiếp TTL.
Mỗi chân số này cung cấp tín hiệu điều chế độ rộng xung 8 bit Tín hiệu PWM có thể được tạo ra bằng cách sử dụng hàm analogWrite ()
Khi chúng ta cần cung cấp một ngắt ngoài cho bộ xử lý hoặc bộ điều khiển khác, ta có thể dùng các chân này Các chân này cho phép bật ngắt INT0 và INT1 tương ứng bằng cách sử dụng hàm attachInterrupt() Đồng thời, các chân này có thể kích hoạt ba loại ngắt: ngắt trên giá trị thấp, ngắt theo sự tăng hoặc giảm mức ngắt và ngắt khi giá trị ngắt thay đổi.
Chân 13, 14, 15 và 16: Giao tiếp SPI
Khi bạn muốn dữ liệu được truyền đi đồng bộ thay vì không đồng bộ, bạn có thể sử dụng các chân ngoại vi nối tiếp này, chúng hỗ trợ giao tiếp đồng bộ với SCK Dù phần cứng có tính năng này, phần mềm Arduino hiện tại lại chưa tích hợp sẵn, nên bạn phải sử dụng thư viện SPI để có thể tận dụng tính năng này.
Khi bạn sử dụng chân 16, đèn led trên bo mạch sẽ sáng
Chân 18, 19, 20, 21, 22, 23, 24, 25 và 26: Ngõ vào/ra tương tự
UNO có 6 đầu vào analog (A0–A5) tương tự Arduino Nano, nhưng Nano có 8 đầu vào analog (A0–A7) Mỗi chân analog này được trang bị một ADC có độ phân giải 1024 cấp độ (giá trị trả về từ 0 đến 1023) Theo mặc định, các chân này đo điện áp từ 0V đến 5V.
Chân 23, 24 như A4 và A5: chuẩn giao tiếp I2C
SPI có nhược điểm là cần 4 chân và giới hạn trong một thiết bị, khiến nó không phù hợp cho các hệ thống yêu cầu kết nối ở khoảng cách dài Đối với truyền thông đường dài, nên sử dụng giao thức I2C, một chuẩn chỉ dùng hai dây: SCL (dòng xung đồng bộ) và SDA (dữ liệu) Để tận dụng tính năng I2C trên nền tảng Arduino hoặc các nền tảng tương tự, chúng ta cần nhập thư viện có tên Wire.
Chân 18: AREF Điện áp tham chiếu cho đầu vào dùng cho việc chuyển đổi ADC
Chân 28: RESET Đây là chân reset mạch khi chúng ta nhấn nút rên bo Thường được sử dụng để được kết nối với thiết bị chuyển mạch để sử dụng làm nút reset
Khối hiển thị
2.4.1 Khái niệm và vai trò
Khối hiển thị là bộ phận giúp người dùng dễ dàng quan sát trạng thái làm việc của hệ thống bật đèn tự động, từ đó tăng khả năng giám sát và điều khiển thiết bị Trong đề tài này, khối hiển thị được mô tả như một giao diện người dùng trực quan, cung cấp thông tin về trạng thái hoạt động, các chế độ làm việc và các cảnh báo khi có sự cố, từ đó người vận hành có thể nhận diện nhanh nhạy và đưa ra hành động phù hợp để tối ưu hệ thống.
LED trạng thái (một bóng LED): Dùng để báo hiệu khi hệ thống phát hiện có người đi qua, giúp kiểm tra trực quan hoạt động bật đèn
Màn hình LCD tích hợp giao tiếp I2C là giải pháp hiển thị thông tin chi tiết cho hệ thống, cho phép trình bày trạng thái đèn bật/đèn tắt và thời gian đếm ngược để giữ sáng, ví dụ còn lại bao nhiêu giây trước khi hệ thống tự động tắt Nhờ giao tiếp I2C, thiết bị dễ tích hợp với bo mạch, tối ưu hóa số chân kết nối và đơn giản hóa việc cấu hình, phù hợp cho các dự án nhúng và IoT Nội dung hiển thị trên LCD giúp người dùng nắm bắt nhanh trạng thái hoạt động và thời gian còn lại, từ đó tối ưu vận hành và trải nghiệm người dùng.
30 giây trước khi đèn tắt)
Việc tích hợp khối hiển thị giúp hệ thống trở nên thân thiện với người dùng và nâng cao trải nghiệm giao diện người dùng Khối hiển thị cung cấp một giao diện trực quan cho việc giám sát trạng thái vận hành, cho phép kiểm tra và theo dõi hệ thống một cách dễ dàng Điều này hỗ trợ quá trình bảo trì định kỳ và đánh giá tình trạng hoạt động một cách chính xác và kịp thời Nhờ đó, hiệu suất hoạt động được tối ưu hóa và các bước xử lý sự cố được thực hiện nhanh chóng, đảm bảo hệ thống hoạt động ổn định và tin cậy.
Khi hệ thống phát hiện có người, vi điều khiển sẽ bật LED để báo hiệu rằng đèn đang được bật
Khi không có người hoặc hết thời gian giữ sáng, LED tắt cùng lúc với đèn
❖ Màn hình LCD (giao tiếp I2C):
Hiển thị trạng thái hệ thống như: “Đèn đang bật”, “Đèn đã tắt”
Có thể hiển thị thời gian đếm ngược giữ đèn sáng, ví dụ: “Tắt sau: 25s”
Có thể mở rộng hiển thị thông báo lỗi nếu cảm biến không hoạt động
2.4.3 Giao tiếp với vi điều khiển
• LED trạng thái: Được điều khiển trực tiếp bởi một chân digital output của vi điều khiển Khi chân này ở mức cao, LED sẽ sáng và ngược lại
LCD I2C giao tiếp với vi điều khiển qua chuẩn I2C, chỉ cần hai dây kết nối SDA và SCL, giúp tiết kiệm chân GPIO và đơn giản hóa lập trình Thư viện LCD I2C rất phổ biến và được hỗ trợ mạnh mẽ, đặc biệt khi làm việc với Arduino, cho phép tích hợp hiển thị dễ dàng và nhanh chóng.
2.4.4 Giới thiệu về LCD a Cấu tạo của LCD
Màn hình LCD cơ bản gồm nhiều lớp chồng lên nhau, từ trên xuống dưới gồm:
• Lớp kính cực trên (Top Polarizer Filter): Là lớp lọc phân cực, chỉ cho ánh sáng phân cực theo một hướng đi qua
• Lớp kính trên (Glass Substrate): Có chứa các điện cực trong suốt (thường là ITO – Indium Tin Oxide), tạo thành các điểm ảnh (pixel)
Lớp tinh thể lỏng là vật liệu trung tâm của hệ thống, đóng vai trò chủ đạo trong quá trình kiểm soát hiển thị Khi có điện áp, hướng sắp xếp của các phân tử tinh thể lỏng sẽ thay đổi, từ đó điều chỉnh đặc tính truyền sáng và góc phản xạ của lớp Sự biến đổi này làm nền tảng cho chức năng hiển thị của màn hình tinh thể lỏng, cho phép điều khiển hình ảnh bằng cách thay đổi cấu trúc phân tử theo điện áp được áp dụng.
• Lớp kính dưới (Glass Substrate): Cũng chứa các điện cực điều khiển pixel
• Lớp lọc màu (Color Filter - chỉ với LCD màu): Tạo ra các màu cơ bản Đỏ – Lục – Lam (RGB) cho từng pixel
• Lớp kính cực dưới (Bottom Polarizer Filter): Một lớp lọc phân cực khác, vuông góc với lớp trên
• Nguồn sáng nền (Backlight): Thường là đèn LED, cung cấp ánh sáng trắng từ phía sau
Hình 2.11: Sơ đồ chân của LCD
Chân Kí hiệu I/O Mô tả
3 Vee - Chỉnh độ tương phản
4 RS I RS=0 ghi lệnh, RS=1 ghi dữ liệu
Bảng 2.9: Sơ đồ chân của LCD
Hình 2.12: Sơ đồ khối bên trong của bộ điều khiển LCD b Nguyên lý hoạt động chung của LCD
LCD không tự phát sáng mà dựa vào nguồn sáng nền Nguyên lý hoạt động gồm các bước:
• Ánh sáng từ đèn nền (backlight) phát ra, đi qua lớp lọc phân cực đầu tiên
Ở trạng thái không có điện áp trên màn hình LCD, các phân tử tinh thể lỏng sắp xếp theo một cấu trúc xoắn 90 độ khiến phân cực ánh sáng bị đổi hướng Do sự đổi hướng này, ánh sáng có thể qua lớp lọc phân cực thứ hai và làm pixel sáng lên trên màn hình LCD.
Khi có điện áp, điện trường làm cho các phân tử tinh thể lỏng thẳng hàng Ánh sáng đi qua sẽ không bị đổi hướng phân cực, bị chặn bởi lớp lọc thứ hai và khiến pixel tối.
• Tùy theo mức điện áp áp vào, mức sáng của pixel có thể điều chỉnh, từ đó tạo ra hình ảnh
Màn hình LCD tích hợp I2C là một dạng nâng cao của màn hình LCD thông dụng, tối ưu cho giao tiếp giữa vi điều khiển và màn hình bằng giao thức I2C Với kết nối I2C, hệ thống chỉ cần hai dây cấp dữ liệu và đồng hồ (SDA và SCL), giúp giảm số dây dẫn so với giao tiếp song song và tiết kiệm không gian vỏ hộp Việc truyền nhận dữ liệu diễn ra đồng bộ, thuận tiện cho việc cấu hình và điều khiển nội dung hiển thị, từ chữ số đến chuỗi ký tự và các chế độ hiển thị Nhiều thư viện phần mềm hỗ trợ I2C LCD giúp thiết lập địa chỉ, cỡ chữ và định dạng hiển thị dễ dàng, phù hợp cho các dự án nhúng, thiết bị đo lường, điều khiển tự động và bảng hiển thị thông tin thời gian thực Màn hình LCD I2C thường có thể tương thích với nhiều loại vi điều khiển như Arduino, ESP32, ESP8266 và các nền tảng tương tự, mang lại sự linh hoạt và tiết kiệm tài nguyên hệ thống.
Inter-Integrated Circuit (I2C) là một giao thức giao tiếp nối tiếp được thiết kế để thay thế giao tiếp song song như ở các màn hình LCD truyền thống, giúp giảm thiểu số lượng chân cần thiết từ vi điều khiển và đơn giản hóa việc kết nối giữa các thiết bị Với I2C, các thiết bị có thể giao tiếp trên chỉ hai dây dữ liệu và đồng hồ, cho phép kết nối nhiều thiết bị cùng lúc mà vẫn gọn gàng và tiết kiệm nguồn lực Giao thức I2C (I2C protocol) quản lý địa chỉ thiết bị và điều phối dữ liệu một cách hiệu quả, phù hợp cho việc kết nối cảm biến, bộ nhớ EEPROM và các module phụ trợ khác trong các dự án nhúng.
Hình 2.13 giới thiệu I2C (Inter-Integrated Circuit), một giao thức truyền thông nối tiếp đồng bộ được Philips Semiconductor phát triển vào năm 1982 Giao thức này cho phép các thiết bị điện tử như vi điều khiển, cảm biến, bộ nhớ và màn hình LCD giao tiếp với nhau trên một bus hai dây (SDA và SCL), giúp đơn giản hóa kết nối và tiết kiệm số lượng dây dẫn trong các hệ thống nhúng.
28 tiếp với nhau thông qua chỉ hai dây tín hiệu, giúp đơn giản hóa việc kết nối và tiết kiệm không gian trên mạch
• Cấu trúc bus: I2C sử dụng hai dây tín hiệu:
SDA Dữ liệu nối tiếp
SCL Xung clock đồng bộ dữ liệu
Kiến trúc Master–Slave là một thiết kế hệ thống trong đó một thiết bị Master, thường là vi điều khiển, đảm nhiệm vai trò điều khiển quá trình truyền dữ liệu, trong khi một hoặc nhiều thiết bị Slave, chẳng hạn như màn hình LCD hoặc cảm biến, sẽ nhận dữ liệu hoặc gửi dữ liệu theo lệnh từ Master Thiết kế này giúp tối ưu hóa giao tiếp giữa vi điều khiển và các thiết bị ngoại vi, đảm bảo sự đồng bộ và kiểm soát truy cập dữ liệu một cách rõ ràng và hiệu quả trong các ứng dụng nhúng và hệ thống điều khiển.
• Địa chỉ hóa thiết bị: Mỗi thiết bị Slave có một địa chỉ duy nhất, cho phép
Master giao tiếp chính xác với từng thiết bị trên cùng một bus
Hình 2.14: Cách hoạt động của giao thức I2C
❖ Ứng dụng trong hệ thống LCD:
Trong hệ thống sử dụng màn hình LCD tích hợp I2C, vi điều khiển giao tiếp với màn hình thông qua giao thức I2C, giúp giảm số chân kết nối và đơn giản hóa việc lập trình Vi điều khiển gửi các lệnh và dữ liệu hiển thị qua bus I2C, để màn hình hiển thị thông tin tương ứng Kết nối với Arduino cũng được thực hiện dễ dàng nhờ I2C, cho phép triển khai nhanh chóng các ứng dụng hiển thị từ vi điều khiển sang board Arduino.
Bảng 2.11: Bảng kết nối LCD với Arduino c Hoạt động
Trong đề tài “đèn cảm biến sử dụng Arduino”, LCD I2C được dùng để hiển thị trạng thái cảm biến PIR một cách rõ ràng, trực quan
• Khi PIR phát hiện có người vào: o Hiển thị: Đang vào
Khi cảm biến PIR (Passive Infrared) phát hiện có người, hệ thống sẽ hiển thị trạng thái “Đang có người” trên giao diện người dùng, giúp người dùng dễ dàng theo dõi tình trạng hệ thống và vận hành một cách chuyên nghiệp hơn Cảm biến PIR hoạt động dựa trên sự thay đổi mức nhiệt và chuyển động trong vùng quét, mang lại ưu điểm như nhạy bén với sự có mặt của con người, tiết kiệm năng lượng do chỉ kích hoạt khi có người và cải thiện an ninh bằng cách ghi nhận sự hiện diện rõ ràng; nhược điểm gồm có khả năng nhầm lẫn với động vật nhỏ hoặc khi điều kiện môi trường và nhiệt độ biến đổi, đòi hỏi vị trí lắp đặt và hiệu chuẩn đúng cũng như bảo trì định kỳ để duy trì độ chính xác.
Tiết kiệm chân Arduino: Chỉ dùng 2 chân (I2C) thay vì 6–10 chân
Khó nhìn ngoài trời hoặc ánh sáng mạnh
Dễ đi dây, gọn gàng: Giảm rối nối dây khi lắp mạch
Thời gian phản hồi chậm (ở nhiệt độ thấp) Tương thích cao: Dùng được cho nhiều loại vi điều khiển
Dễ hỏng hoặc xuống cấp theo thời gian
Hỗ trợ thư viện sẵn: Lập trình đơn giản, dễ bảo trì
Bảng 2.12: Ưu và nhược điểm của LCD tích hợp I2C e Thông số kỹ thuật LCD tích hợp I2C
Thông số Giá trị/Chi tiết
Loại màn hình LCD alphanumeric 16x2
Số dòng / cột 2 dòng, mỗi dòng 16 ký tự
30 Điện áp hoạt động 5V DC
Dòng tiêu thụ Khoảng 1 – 2 mA (không bật đèn nền),
Kích thước tổng thể ~80mm x 36mm
Ký tự hiển thị Ký tự ASCII chuẩn, hỗ trợ tạo ký tự tùy chỉnh (CGRAM)
Giao tiếp I2C (qua module chuyển đổi từ giao tiếp song song)
IC giao tiếp I2C PCF8574 hoặc PCF8574T Địa chỉ I2C mặc định 0x27 hoặc 0x3F (có thể thay đổi bằng jumper A0-A2)
Số chân kết nối 4 chân: VCC, GND, SDA, SCL
Tốc độ truyền I2C Mặc định ~100 kHz, có thể tăng đến 400 kHz Độ tương thích Hỗ trợ hầu hết các bo mạch Arduino,
STM32, ESP8266,… Đèn nền Có thể bật/tắt bằng phần mềm
Bảng 2.13: Thông số kỹ thuật LCD tích hợp I2C 2.4.6 LED
LED (Light Emitting Diode – điốt phát quang) là linh kiện bán dẫn phát sáng khi có dòng điện chạy qua Vì LED chỉ cho dòng điện theo một chiều nên cần mắc đúng cực âm (-) và cực dương (+) Trong các mô hình mạch điện đơn giản, LED thường được dùng để báo hiệu trạng thái hoạt động như bật/tắt hoặc hiển thị kết quả, và nguyên lý hoạt động của LED giải thích tại sao nó sáng khi có dòng điện một chiều.
Khi dòng điện chạy từ cực dương (anode) sang cực âm (cathode) của
LED,các điện tử và lỗ trống kết hợp với nhau, phát ra năng lượng dưới dạng ánh sáng LED chỉ phát sáng khi được phân cực thuận
❖ Chân dài là Anode (cực dương)
❖ Chân ngắn là Cathode (cực âm)
Lưu ý: Cần nối điện trở hạn dòng nối tiếp với LED để tránh dòng quá lớn gây hư hại LED b Ứng dụng trong đề tài
Trong hệ thống cảm biến đèn tự động, LED được dùng để:
Bật đèn khi có người trong phòng
Tăng tính trực quan cho mô hình, hỗ trợ kiểm tra, giám sát hoạt động của hệ thống.
Giới thiệu các linh kiện khác
Breadboard (còn gọi là bảng thử nghiệm) là công cụ được sử dụng rất nhiều để thiết kế và thử nghiệm mạch điện Với breadboard, bạn không cần phải hàn dây và các linh kiện để tạo mạch, giúp việc lắp ráp và tái sử dụng linh kiện dễ dàng Vì không hàn các linh kiện điện tử nên bạn có thể thay đổi thiết kế mạch tại bất kỳ điểm nào một cách tiện lợi.
Cấu tạo của breadboard rất đơn giản:
❖ Khu vực trung tâm chính của breadboard là một khối gồm hai cột
❖ Mỗi cột được tạo thành từ nhiều hàng
❖ Mỗi hàng được nối điện theo từng hàng
❖ Dọc hai bên là hai bus dọc để cấp điện vào cột bên trong
Dây cắm test board, hay còn gọi là jumper wire, là loại dây dẫn chuyên dụng để nối các linh kiện điện tử trên breadboard hoặc giữa breadboard với vi điều khiển như Arduino, ESP32 và các nền tảng khác Nhờ có đầu cắm sẵn, chúng rất tiện cho việc thử nghiệm và thiết kế mạch Trên thị trường có 3 loại chính của jumper wire, phù hợp với nhiều ứng dụng và yêu cầu kết nối khác nhau.
- Dây đực - đực (male to male): Dùng để nối giữa các lỗ trên breadboard
- Dây đực - cái (male to female): Nối từ chân board ra các module ngoài
- Dây cái - cái (female to female): Dùng trong một số mạch đặc biệt
Hình 2.17 trình bày dây cắm test board và giới thiệu điện trở ở mục 2.5.3 Điện trở là một linh kiện điện tử có chức năng cản trở dòng điện, từ đó cho phép chia điện áp và bảo vệ các linh kiện khác trên mạch Nhờ đặc tính cản trở, điện trở đóng vai trò thiết yếu trong thiết kế để điều chỉnh dòng điện và ổn định hoạt động của toàn bộ hệ thống điện tử.
=> Dùng trở 1k để giới hạn dòng đi qua LED, giúp bảo vệ LED không bị cháy.
Tính toán trong thiết kế
2.6.1 Tính công suất tiêu thụ của LED
Sử dụng 1 LED thông thường:
- Dòng điện định mức: 20(mA)
Công suất tiêu thụ của LED:
2.6.2 Tính dòng tiêu thụ toàn mạch
Thành phần tiêu thụ điện chính trong hệ thống:
- Arduino Nano: ~ 19(mA) (khi hoạt động bình thường)
- Cảm biến hồng ngoại: ~ 5(mA)
- LCD I2C: ~ 1(mA) (hiển thị đơn giản)
→ Tổng dòng tiêu thụ (xấp xỉ):
I_total = 19mA + 5mA + 1mA + 20mA = 45(mA) Điện áp cấp qua USB là 5V → Công suất toàn hệ thống:
2.6.3 Thời gian từ lúc cảm biến phát hiện đến khi đèn bật
Thành phần thời gian gồm:
❖ Thời gian phản ứng cảm biến IR: ~50 ms (trung bình)
❖ Thời gian truyền tín hiệu qua dây: t = 0.2/(2.10^8) = 1 ns ≈ 0
❖ Thời gian Arduino xử lý tớn hiệu: ~20 às = 0.02 ms
TTổng= 50ms + 0.02ms + 1ns ≈ 50.02 (ms)
=> Hệ thống có thể phản hồi rất nhanh, chỉ sau khoảng 50 mili giây khi phát hiện vật thể
- Hệ thống tiêu thụ dòng điện nhỏ, có thể cấp qua cổng USB của máy tính hoặc sạc điện thoại
- Việc bật LED chỉ khi có người đi qua giúp tiết kiệm điện năng
- Công suất tiêu thụ toàn bộ hệ thống < 0.3W, rất phù hợp cho các ứng dụng mô hình nhỏ
THIẾT KẾ VÀ TRIỂN KHAI
Sơ đồ khối của hệ thống
Sơ đồ khối của hệ thống mô tả cấu trúc tổng thể và mối quan hệ giữa các khối chức năng chính: nguồn điện cung cấp cho toàn bộ mạch qua khối nguồn, hai cảm biến hồng ngoại (IR sensor) phát hiện vật cản và gửi tín hiệu về vi điều khiển, vi điều khiển xử lý dữ liệu và điều khiển các thiết bị hiển thị như LCD và LED để phản hồi người dùng theo chương trình Sơ đồ khối giúp hình dung rõ các tương tác giữa các thành phần và đóng vai trò quan trọng trong thiết kế phần cứng và phần mềm, đồng thời hỗ trợ tối ưu hóa luồng tín hiệu, chi phí và hiệu suất của hệ thống.
Lưu đồ thuật toán
Lưu đồ thuật toán thể hiện trình tự hoạt động của hệ thống qua các bước xử lý logic Ban đầu, hệ thống được khởi tạo và kiểm tra các cảm biến; nếu phát hiện vật cản, vi điều khiển xác định vị trí và hiển thị thông tin lên LCD đồng thời điều khiển LED để báo hiệu; ngược lại, khi không có vật cản, hệ thống tiếp tục vòng lặp kiểm tra Lưu đồ thuật toán không chỉ hỗ trợ lập trình viên tuân thủ đúng quy trình xử lý mà còn là cơ sở để kiểm tra, đánh giá và tối ưu hóa hệ thống trong giai đoạn triển khai.
Thiết kế mạch mô phỏng trên Proteus
Để kiểm tra và đánh giá hoạt động của hệ thống trước khi tiến hành lắp ráp thực tế, mô phỏng mạch trên phần mềm Proteus đóng vai trò thiết yếu Quá trình này cho phép xác nhận chức năng, tối ưu tham số và phát hiện sớm các lỗi thiết kế trước khi chế tạo Các linh kiện như vi điều khiển, cảm biến hồng ngoại, LCD, LED và các linh kiện phụ trợ được lựa chọn và lắp đặt đúng theo sơ đồ mạch nguyên lý đã thiết kế Việc mô phỏng giúp đánh giá tính khả thi của hệ thống và giảm thiểu rủi ro trong quá trình triển khai thực tế.
Quá trình mô phỏng giúp kiểm tra tính chính xác của sơ đồ, khả năng tương tác giữa các linh kiện, cũng như đảm bảo chương trình nạp vào vi điều khiển hoạt động đúng theo yêu cầu Nhờ đó, các lỗi có thể được phát hiện và khắc phục sớm, tiết kiệm thời gian và chi phí trong giai đoạn thi công mạch thật
Hình 3.3: Mô phỏng mạch trên Proteus.
Thiết kế mạch thực tế
Sau khi hoàn tất việc mô phỏng, quá trình thiết kế mạch thực tế được thực hiện nhằm kiểm tra khả năng hoạt động của hệ thống khi lắp ráp ngoài đời thực, đảm bảo tính chính xác trước khi đưa vào ứng dụng
❖ Bước 1: Thực hiện lắp mạch dựa vào sơ đồ nguyên lý:
Cần đảm bảo đúng chân kết nối giữa các linh kiện để tránh lỗi trong quá trình hoạt động
❖ Bước 2: Tiến hành kết nối kit Arduino với máy tính bằng dây cáp Đây là bước trung gian để nạp chương trình điều khiển vào vi điều khiển
Bước 3: Mở Arduino IDE trên máy tính và thiết lập đúng board Trong Tools chọn Arduino Nano làm board và chọn đúng cổng COM để IDE nhận diện và giao tiếp với thiết bị Arduino Nano.
❖ Bước 4 : Nhập và nạp code
Sau khi kiểm tra không có lỗi, tiến hành upload code lên kit để hệ thống bắt đầu hoạt động
LiquidCrystal_I2C lcd(0x27, 16, 2); int cho=0; int cb1; int cb2; int doi=0; int songuoi=0; void setup() {
Serial.begin(9600); lcd.begin(16,2); lcd.backlight(); pinMode(A0, INPUT_PULLUP); pinMode(A1,INPUT_PULLUP); pinMode(3,OUTPUT); lcd.setCursor(5, 0); lcd.print("Nhom 11"); lcd.setCursor(5,1); lcd.print("Xin chao"); delay(2000); lcd.clear();
} void loop() { readsensor(); if(cb1==0){ cho=1; lcd.setCursor(0,1); lcd.print("Dang vao"); while(cb2==1&&cho==1){readsensor();Serial.println("Đang vào"); } cho=2; while(cho==2&&cb2==0){readsensor();} cho=0; songuoi++;
} if(cb2==0){ doi=1; lcd.setCursor(0,1);lcd.print("Dang ra"); while(cb1==1&&doi==1){readsensor();Serial.println("Đang ra"); } doi=2; while(doi==2&&cb1==0){readsensor();} doi=0; songuoi ;
} lcd.clear(); songuoi=constrain(songuoi,0,1023); if(songuoi>0){digitalWrite(3,HIGH);} else{digitalWrite(3,0);}
This Arduino snippet outputs the values of cho and songuoi to the serial monitor with a space between them and a newline after songuoi It then updates a two-line LCD: line 0 shows "So nguoi", line 1 prints "trong phong:" and, starting at column 13, the value of songuoi to display the number of people currently in the room After a 200-millisecond delay it moves the cursor to column 13, row 1 and clears the display.
KẾT QUẢ VÀ NHẬN XÉT
Kết quả
Hình 4.1: Số người trong phòng bằng 0, led tắt
Hình 4.2: Cảm biến 1 nhận trước, người đang vào
Khi người qua cảm biến 2, người sẽ ở trong phòng, bộ đếm số người ++, Arduino sẽ kích tín hiệu để bật LED
Hình 4.3: Số người trong phòng lớn hơn 0, LED bật
Hình 4.4: Cảm biến 2 nhận trước, người đang ra
Khi người qua cảm biến 1, người sẽ ra khỏi phòng, bộ đếm số người , khi số người trong phòng bằng 0, Arduino sẽ ngắt tín hiệu để tắt LED.
Nhận xét
Qua quá trình triển khai và kiểm tra, hệ thống hoạt động đúng như yêu cầu đề ra Cảm biến hồng ngoại hoạt động ổn định và phân biệt rõ ràng chiều người vào và người ra LCD hiển thị chính xác số lượng người có mặt trong phòng theo thời gian thực, cung cấp dữ liệu lưu lượng người cho công tác quản lý và bảo mật.
42 thời gian thực Đèn LED tự động bật khi trong phòng có người và tắt khi không còn ai, đảm bảo đúng nguyên lý tiết kiệm năng lượng
Việc sử dụng breadboard giúp lắp ráp và kiểm tra mạch một cách nhanh chóng và dễ dàng Khi kết nối các linh kiện như cảm biến, vi điều khiển và LCD, toàn bộ hệ thống hoạt động đồng bộ, cho thấy thiết kế mạch hợp lý và phần mềm điều khiển chính xác.
Hệ thống chiếu sáng thông minh phù hợp để ứng dụng trong các không gian như phòng họp, phòng học và nhà vệ sinh công cộng, nơi cần quản lý đèn tự động dựa trên số người ra vào Hệ thống sử dụng cảm biến để đo lưu lượng người và tự động điều chỉnh công suất đèn, giúp tiết kiệm điện năng, tăng tiện ích và an toàn cho người dùng Với ứng dụng linh hoạt cho văn phòng, trường học và các khu vực công cộng khác, ánh sáng sẽ được bật đúng khi có người và tự động tắt khi vắng người, tối ưu hoá chi phí vận hành và bảo vệ môi trường.
Ưu điểm và hạn chế
❖ Không cần bật/tắt đèn thủ công
❖ Dễ ứng dụng thực tế
❖ Có thể mở rộng (thêm còi, cảm biến nhiệt, kết nối IoT )
❖ Nhận diện sai nếu hai người đi cùng lúc
❖ Phạm vi phát hiện phụ thuộc vào vị trí đặt cảm biến
❖ Chỉ phù hợp với không gian có một lối ra/vào.
Hướng phát triển 42 TÀI LIỆU THAM KHẢO
❖ Kết nối hệ thống với app điện thoại để theo dõi từ xa
❖ Tích hợp cảm biến ánh sáng để đèn chỉ bật khi trời tối
❖ Phát triển trên PCB thật thay vì breadboard.