Cảm biến siêu âm SRF 05 dùng để xác định khoảng cách trong phạm vi nhỏ. Cảm biến tuy chính xác, nhưng ko tuyệt đối, nhiễu vẫn lớn. Bên cạnh đó cảm biến dễ dàng kết nối với các MCU (Arduino, DSP, AVR, PIC, ARM…)
Thông số | Giá trị |
---|---|
Điện áp hoạt động | 5 VDC |
Góc cảm biến | < 15° |
Phạm vi | 2cm - 450 cm |
Độ chính xác | ~0.5cm |
Kích thước | 20 *45 * 15mm |
Tín hiệu đầu ra | Digital ( 0V - 5V) |
Lưu ý: Cảm biến siêu âm càng xa thì càng bắt không chính xác, vì góc quét của cảm biến sẽ mở rộng dần theo hình nón, ngoài ra bề mặt xiên hay xù xì cũng làm giảm độ chính xác của cảm biến, thông số kỹ thuật ghi ở dưới đây là của nhà sản xuất test trong điều khiện lý tưởng, còn thực tế thì tùy theo môi trường làm việc của cảm biến
SRF-50 PIN | Uno X PIN |
---|---|
VCC | 5V |
Trig | GPIO13 |
Echo | GPIO12 |
Out | No Connect |
GND | GND |
const unsigned int TRIG_PIN=13;
const unsigned int ECHO_PIN=12;
const unsigned int BAUD_RATE=9600;
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.begin(BAUD_RATE);
}
void loop() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
const unsigned long duration= pulseIn(ECHO_PIN, HIGH);
int distance= duration/29/2;
if(duration==0){
Serial.println("Warning: no pulse from sensor");
}else {
Serial.print("distance to nearest object:");
Serial.println(distance);
Serial.println(" cm");
}
delay(100);
}
const unsigned int TRIG_PIN=13;
const unsigned int ECHO_PIN=12;
const unsigned int BAUD_RATE=9600;
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.begin(BAUD_RATE);
}
void loop() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
const unsigned long duration= pulseIn(ECHO_PIN, HIGH);
int distance= duration/29/2;
if(duration==0){
Serial.println("Warning: no pulse from sensor");
}
else{
Serial.print("distance to nearest object:");
Serial.println(distance);
Serial.println(" cm");
}
delay(100);
}
code test