Trong bài viết này, Điện Tử Tương Lai sẽ chia sẻ hàm pulseInLong trong Arduino là gì, cú pháp, code mẫu và những lưu ý khi sử dụng hàm này.
Mô tả
pulseInLong() là một giải pháp thay thế cho pulseIn(), tốt hơn trong việc xử lý xung dài và các scenario bị ảnh hưởng gián đoạn.
Đọc một xung (CAO hoặc THẤP) trên một chân. Ví dụ, nếu giá trị là CAO, pulseInLong() sẽ đợi chân đi từ THẤP đến CAO, bắt đầu định thời gian, sau đó đợi chân chuyển sang THẤP và dừng định thời. Trả về độ dài của xung tính bằng micro giây hoặc từ bỏ và trả về 0 nếu không nhận được xung hoàn chỉnh nào trong thời gian chờ.
Thời gian của hàm này đã được xác định theo kinh nghiệm và có thể sẽ hiển thị lỗi trong các xung ngắn hơn. Hoạt động trên xung có độ dài từ 10 micro giây đến 3 phút. Quy trình này chỉ có thể được sử dụng nếu ngắt được kích hoạt. Hơn nữa, độ phân giải cao nhất thu được với khoảng thời gian lớn.
Cú pháp
pulseInLong (chân, giá trị)
pulseInLong (chân, giá trị, thời gian chờ)
Thông số
Chân: số chân Arduino mà bạn muốn đọc xung. Các kiểu dữ liệu được phép: int.
Giá trị: loại xung cần đọc: CAO hoặc THẤP. Các kiểu dữ liệu được phép: int.
Thời gian chờ (tùy chọn): số micro giây để chờ xung bắt đầu; mặc định là một giây. Các kiểu dữ liệu được phép: unsigned long.
Return
Độ dài của xung (tính bằng micro giây) hoặc 0 nếu không có xung nào bắt đầu trước thời gian chờ. Kiểu dữ liệu: unsigned long.
Code mẫu
Ví dụ xuất khoảng thời gian của một xung trên chân 7.
Lưu ý
Hàm này dựa vào micros() nên không thể được sử dụng trong ngữ cảnh noInterrupts().
Code: 7204-036 Còn hàng
Hotline: 0979 466 469