/** 超声波雷达引脚 **/
#define ULTRASONIC_IN_PIN 6 // 超声波接收脚 Echo
#define ULTRASONIC_OUT_PIN 7 // 超声波发射脚 T
//距离
float distance = 0;//数据类型 float浮点型 int整型 全局变量
void setup() {
Serial.begin(9600);//串口通讯函数 9600波特率
pinMode(ULTRASONIC_IN_PIN, INPUT); //定义传感器接收端的引脚模式
pinMode(ULTRASONIC_OUT_PIN, OUTPUT); //定义传感器发射端的引脚模式
Serial.println("-------------- setup ok -----------------");//串口通讯打印数据 print(不换行)println(打印并换行)
}
void loop() {
digitalWrite(ULTRASONIC_OUT_PIN, LOW); //LOW/HIGH 0/1
delayMicroseconds(2);
digitalWrite(ULTRASONIC_OUT_PIN, HIGH); //超声波发送一个不小于10us的高脉冲
delayMicroseconds(10);
digitalWrite(ULTRASONIC_OUT_PIN, LOW);
float Fdistance = pulseIn(ULTRASONIC_IN_PIN, HIGH); // 读取返回脉冲宽度(即高电平持续的时间长短),单位为ms
//distance = Fdistance / 3.4 / 10; // 时间转成距离 (单位:公分) 理论值340米/每秒,实际测试中并不准确
distance = Fdistance / 5.8 / 10; // 时间转成距离 (单位:公分)
Serial.print("检测结果:");
Serial.print(distance);//打印距离
Serial.println("cm");
delay(2000);//单位毫秒
}
arduino超声波传感器
发表评论
314 views