Giỏ hàng hiện tại chưa có sản phẩm nào!
Giỏ hàng hiện tại chưa có sản phẩm nào!
Giao tiếp arduino với cảm biến siêu âm là phương pháp đo khoảng cách với công nghệ siêu âm. Hiện nay công nghệ siêu âm đang được sử dụng nhiều trong cuộc sống. Bản chất của cảm biến là tính thời gian tín hiệu đến gặp vật cản. Từ đó nhân với tốc độ âm thanh truyền dẫn trong môi trường sẽ đo được khoảng cách. Bài viết hôm nay chúng ta sẽ nghiên cứu đến cách giao tiếp arduino với cảm biến siêu âm.
NỘI DUNG BÀI VIẾT
|
GIỚI THIỆU VỀ CẢM BIẾN SIÊU ÂM
Cảm biến siêu âm trên thị trường có rất nhiều loại. Tuy nhiên cho dù loại nào thì cũng đều có chung một phương pháp điều khiển. Chung ta sẽ sử dụng lệnh để xuất tin hiệu ping (tín hiệu dẫn đường), sau đó chờ tín hiệu trả về. Chúng ta sẽ đo kiểm thời gian tín hiệu đi và về mà cảm biến nhận được. Từ đó chúng ta sẽ biết được thời gian tín hiệu đi đến vật cản mà bạn cần đo khoảng cách.
Cấu tạo của cảm biến siêu âm HY-SRF05
Cảm biến siêu âm HY-SRF05 được sử dụng để nhận biết khoảng cách từ vật thể đến cảm biến nhờ sóng siêu âm. Cảm biến có thời gian phản hồi nhanh, độ chính xác cao, phù hợp cho các ứng dụng phát hiện vật cản.
Cảm biến siêu âm có hai chân sử dụng là chân Echo/ Trigger để nhận và phát tín hiệu ping. Và 2 chân cấp nguồn là Vcc và GND.
Thông số kỹ thuật
LỆNH ĐỌC TÍN HIỆU PING – pulseIn
Là lệnh đọc tín hiệu chu kỳ xung. Mục đích của lệnh là phát hiện tín hiệu xung, kể cả xung tích cực mức cao hoặc tích cực mức thấp. Xung tích cực mức cao là tín hiệu từ LOW – HIGH, tích cực mức thấp là từ HIGH – LOW.
Cú pháp: pulseIn(<Chân đọc tín hiệu>, <Dạng tín hiệu phát hiện>);
pulseIn(<Chân đọc tín hiệu>, <Dạng tín hiệu phát hiện>, <Thời gian cho phép chờ tín hiệu>);
Trong đó:
NGUYÊN LÝ ĐỂ ĐIỀU KHIỂN CẢM BIẾN
Cảm biến này khá dễ sử dụng. Cấp nguồn 5VDC cho chân Vcc của cảm biến, cấp GND vào chân GND cảm biến. Chân Trig để phát tín hiệu ping và chân Echo nhận lại tín hiệu ping đã phát.
Các bạn cần thực hiện những câu lệnh để điều khiển theo nguyên lý điều khiển như sau. Bạn xuất tín hiệu LOW, sau đó delay tạm dừng. Tiếp tục xuất tín hiệu mức HIGH, dùng delay tạm dừng, rồi lại xuất tín hiệu LOW ra chân Trig. Tín hiệu ping sẽ bao gồm trạng thái LOW-HIGH-LOW này tạo ra âm siêu âm cao độ hay còn gọi là ping, được phát ra từ cảm biến. Tín hiệu ping này sẽ đi ra ngoài và gặp vật cản sau đó phản hồi trở lại cảm biến. Cảm biến sẽ tạo ra một xung HIGH trên chân phản xạ của nó. Thời gian xung ping phát đi và phản hồi lại tính bằng micro giây cho biết thời gian tín hiệu đi đến mục tiêu và quay trở lại.
Chúng ta sử dụng lệnh pulseIn để phát hiện tín hiệu ping phản hồi lại trên cảm biến. Cú pháp và chức năng của lệnh pulseIn đã được trình bày ở trên.
Giá trị cảm biến đọc được là giá trị là thời gian với đơn vị là micro giây. Do đó, chúng ta cần chuyển đổi lại thời gian sang đơn vị met.
thời gian (giờ) = thời gian (micro giây) / 1000000 / 3600
Khi bạn thực hiện phép đo tín hiệu ping và biết thời gian cần thiết để tín hiệu ping di chuyển đến mục tiêu và quay trở lại. Bạn sử dụng nó để tính toán tốc độ âm thanh bằng công thức:
Khoảng cách (miles) = tốc độ * thời gian (giờ).
Trong đó:
Khoảng cách này là khoảng cách tín hiệu ping đi đến mục tiêu và quay lại cảm biến. Do đó, để tính khoảng cách từ cảm biến đến mục tiêu thì chúng ta phải chia 2 giá trị khoảng cách đo được.
Hiện tại khoảng cách đo được là đơn vị miles, chúng ta muốn đổi lại đơn vị inch thì nhân với 63360. Còn nếu muốn đổi sang đơn vị centimet thì nhân thêm 2.54.
Khoảng cách (cm) = Khoảng cách (miles) * 63360 * 2.54
ỨNG DỤNG ĐIỀU KHIỂN CẢM BIẾN SIÊU ÂM
Trong đoạn chương trình này, chúng ta sẽ thực hiện đo khoảng cách và hiển thị kết quả lên màn hình serial.
Linh kiện cần thiết
Linh kiện | Số lượng |
Bo arduino UNO | 01 |
Cảm biến siêu âm | 01 |
Sơ đồ mạch
Đoạn code chương trình
int trigPin=12; //Khai báo chân 13 là chân Trig int echoPin=11; //Khai báo chân 11 là Echo float thoigian; float vantoc_amthanh=776.5; int khoang_cach; //Khoảng cách mong muốn là 6inch void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { // Xuất dữ liệu ping ra chân cảm biến siêu âm digitalWrite(trigPin, LOW); delayMicroseconds(2000); digitalWrite(trigPin, HIGH); delayMicroseconds(15); digitalWrite(trigPin, LOW); delayMicroseconds(10); thoigian = pulseIn(echoPin, HIGH); //đọc thời gian trả về microceconds thoigian = thoigian/1000000; //Chuyển đơn vị về second thoigian = thoigian/ 3600; // Chuyển đơn vị về giờ khoang_cach = vantoc_amthanh * thoigian; // Tính khoảng cách khoang_cach = khoang_cach/2; khoang_cach = khoang_cach * 63360; //Đổi đơn vị inches khoang_cach = khoang_cach * 2.54; //Đổi sang đơn vị cm Serial.print("Khoảng cách: "); Serial.print(khoang_cach); Serial.println(" cm"); delay(1000); }
Ngoài những kiến thức về cảm biến siêu âm mà bạn đã xem trong bài viết này. Chúng ta hãy xem những cảm biến khác trong chuỗi bài viết về chuyên đề arduino.
Để lại một bình luận