Hướng dẫn sử dụng arduino với cảm biến chuyển động

Cảm biến thân nhiệt chuyển động PIR HC-SR501. >>>>>Xem sản phẩm tại đây

Module relay 5V 1 kênh. >>>>>Xem sản phẩm tại đây.

Arduino Uno R3. >>>>>Xem sản phẩm tại đây.

Giới Thiệu Linh Kiện

Cảm biến thân nhiệt chuyển động PIR HC-SR501

Cảm biến thân nhiệt chuyển động PIR HC-SR501(Passive infrared sensor) HC-SR501 được sử dụng để phát hiện chuyển động của các vật thể phát ra bức xạ hồng ngoại (con người, con vật, các vật phát nhiệt,…), cảm biến có thể chỉnh được độ nhạy để giới hạn khoảng cách bắt xa gần cũng như cường độ bức xạ của vật thể mong muốn, ngoài ra cảm biến còn có thể điều chỉnh thời gian kích trễ (giữ tín hiệu bao lâu sau khi kích hoạt) qua biến trở tích hợp sẵn.

Cảm biến thân nhiệt chuyển động PIR HC-SR501 có cảm biến, thấu kính và board mạch chất lượng tốt cho độ nhạy và độ bền cao nhất.

Cảm biến PIR (HC - SR501) gồm có 3 chân trong đó VCC (3.8V - 5V) và GND (0V) dùng để làm chân cấp nguồn cho mô-đun, chân OUT cho ra mức logic cao dùng để phát hiện đối tượng.

Ngoài ra nó còn có 2 chiết áp (biến trở) dùng để điều chỉnh độ nhạy của cảm biến (Sensitivity) và thời gian (delay time 0.3s - 5mins) phát hiện đối tượng, thời gian này có thể điều chỉnh từ 0.3s đến 5 phút

Cảm biến dòng điện ACS712 là một IC cảm biến dòng tuyến tính dựa trên hiệu ứng Hall. ACS xuất ra 1 tín hiệu analog, Vout biến đổi tuyến tính theo sự thay đổi của dòng điện được lấy mẫu thứ cấp DC (hoặc AC), trong phạm vi đã cho. Tụ (Cf theo sơ đồ) được dùng với mục đích chống nhiễu và có giá trị tùy thuộc vào từng mục đích sử dụng.

II. Đặc điểm nổi bật

  • Thời gian tăng của đầu ra để đáp ứng với đầu vào là 5µs.
  • Điện trở dây dẫn trong là 1.2mΩ.
  • Nguồn vận hành đơn là 5V.
  • Độ nhạy đầu ra từ 63-190mV/A.
  • Điện áp ra cực kỳ ổn định.

III. Thông số kỹ thuật

Đường tín hiệu analog có độ nhiễu thấp

Thời gian chuyển đổi

5µs

Điện trở trong

1.2mΩ

Sử dụng nguồn điện

5V

Độ nhạy đầu ra

63 – 190 mV/A

Nhiệt độ hoạt động

-40 – 85 0C

Điện áp cách ly tối đa

2100V (RMS)

Độ nhạy đối với các loại module

  • ACS 712-05B (5Ampe): 180 – 190 mV/A
  • ACS 712-20A (20Ampe): 96 – 104 mV/A
  • ACS 712-30A (30Ampe): 64 – 68 mV/A

IV. Sơ đồ chân ACS712

Hướng dẫn sử dụng arduino với cảm biến chuyển động

V. Cách sử dụng module ACS712 5A

1. Đo dòng điện​​ DC​

Khi đo DC phải mắc tải nối tiếp Ip+ và Ip- đúng chiều, dòng điện đi từ Ip+ đến Ip- để Vout ra mức điện thế 2.5 - 5V tương ứng dòng 0 - 5A, nếu mắc ngược Vout sẽ ra điện thế 2.5V đến 0V tương ứng với 0A đến -5A.

Cấp nguồn 5v cho module khi chưa có dòng Ip (chưa có tải mắc nối tiếp với domino), thì Vout=2.5v. Khi dòng Ip( dòng của tải) bằng 5A thì Vout=5v, Vout sẽ tuyến tính với dòng Ip , trong khoản 2.5V đến 5V tương ứng với dòng 0 đến 5A.

Để kiểm tra dùng đồng hồ VOM thang đo DC đo Vout.

2. Đo dòng điện AC

Khi đo dòng điện AC, do dòng điện AC không có chiều nên không cần quan tâm chiều.

Cấp nguồn 5v cho module khi chưa có dòng Ip (chưa có tải mắc nối tiếp với domino) , thì Vout=2.5v. khi có dòng xoay chiều Ip(dòng AC) do dòng xoay chiều độ lớn thay đổi liên tục theo hàm sin, nên điện thế Vout sẽ là điện thế xoay chiều hình sin có độ lớn tuyến tính với dòng điện AC , 0 đến 5V(thế xoay chiều xoay chiều) tương ứng với -5A đến 5A (dòng xoay chiều).

Để kiểm tra dùng đồng hồ VOM thang đo AC đo Vout.

VI. Ưu điểm của ACS712

  • Đường tín hiệu analog có độ nhiễu thấp.
  • Thời gian tăng của đầu ra để đáp ứng với đầu vào là 5µs.
  • Điện trở dây dẫn trong là 1.2mΩ.
  • Nguồn : 5VDC.
  • Độ nhạy đầu ra từ 63-190mV/A.
  • Điện áp ra cực kỳ ổn định.
  • ACS 712 5A (x05B):
  • Ip: 5A đền -5A
  • Độ nhạy: 180 - 190 mV/A.

​Tài liệu tham khảo :

Datasheet ACS712

VII. Code đọc giá trị

int OutPin = A0; // Lưu chân ra của cảm biến void setup() { //Đối với một chân analog bạn không cần pinMode Serial.begin(9600);//Mở cổng Serial ở mức 9600 } void loop() { int value = analogRead(OutPin); // Ta sẽ đọc giá trị hiệu điện thế của cảm biến

                                  // Giá trị được số hóa thành 1 số nguyên có giá trị
                                  // trong khoảng từ 0 đến 1023
float volt = value / 5.0 * 20.0; // Bây giờ ta chỉ cần tính ra giá trị dòng điện
                                  // Với mạch 30A ta sửa lại thành * 30.0
Serial.println(volt);//Xuất ra serial Monitor. Nhấn Ctrl+Shift+M để xem delay(10); }

VIII. Kết luận

Chúc các bạn thành công. Đây là một bài chủ yếu về điện tử căn bản, nhưng khi đưa vào Arduino rất đơn giản, bạn có thấy thế không ? Rate node cho mình nhé!