Hướng dẫn chế bộ đếm người ra vào bằng đèn Lazer sử dụng Arduino

Bạn đã từng quên tắt đèn khi không có ai ở trong phòng, điều này gây ra phiền toái khi hóa đơn tiền điện ngày một tăng. Vậy giải pháp là ở đâu?
Trong chuyên đề tự học Arduino, Arduino KIT giới thiệu với các bạn một dự án sẽ giúp bạn giải quyết vấn đề này, khi không có ai trong phòng tự động, nó cũng có thể được sử dụng cho đèn của phòng tắm, nhà vệ sinh, nhà bếp…
Để hiểu hơn về cấu tạo và cách hoạt động của tất cả Cảm biến có trong dự án .Các bạn có thể tìm đọc bài viết về Khóa học Arduino miễn phí dành cho người mới nhập môn.
Sơ đồ đấu nối

Các linh kiện cần thiết cho dự án
Tên linh kiện | Số lượng | Shopee |
Arduino Uno R3 | 1 | Mua ngay |
Cáp nạp | 1 | Mua ngay |
Cảm biến ánh sáng | 2 | Mua ngay |
Relay 5V/1 kênh | 1 | Mua ngay |
Dây cắm (Đực – Cái) | 1 | Mua ngay |
Dây cắm (Đực – Đực) | 1 | Mua ngay |
LCD16X2 | 1 | Mua ngay |
Board I2C LCD16X2 | 1 | Mua ngay |
Diode laser | 2 | Mua ngay |
Bread Board (Bo test) | 1 | Mua ngay |
Nguồn 12V/2A DC | 1 | Mua ngay |
Code
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F, 16, 2); #define in 11 #define out 12 #define relay 13 int count=0; void IN() { count++; lcd.clear(); lcd.print("Person In Room:"); lcd.setCursor(0,1); lcd.print(count); delay(1000); } void OUT() { count--; lcd.clear(); lcd.print("Person In Room:"); lcd.setCursor(0,1); lcd.print(count); delay(1000); } void setup() { lcd.begin(); lcd.print("Visitor Counter"); delay(2000); pinMode(in, INPUT); pinMode(out, INPUT); pinMode(relay, OUTPUT); lcd.clear(); lcd.print("Person In Room:"); lcd.setCursor(0,1); lcd.print(count); } void loop() { if(digitalRead(in)) IN(); if(digitalRead(out)) OUT(); if(count<=0) { lcd.clear(); digitalWrite(relay, LOW); lcd.clear(); lcd.print("Nobody In Room"); lcd.setCursor(0,1); lcd.print("Light Is Off"); delay(200); } else digitalWrite(relay, HIGH); }
Cảm biến kia săp xếp như thế nào ah b. 1 cái vị trí người ra 1 cái vị trí người vào?
Có 2 vấn đề mình chưa thấy xử lý:
1: Trường hợp người đứng trong cảm biến quá thời gian delay thì số người sẽ bị tự động dc cộng thêm.
2: Trờng hợp người chạm cảm biến xong quay lại mạch vẫn nhận là thêm người.