超声雷达

【舵机的颜色】舵机引出三根线。一根是红色的,连+5V,一根是黑色或者棕色的,连GND,第三根可能是白色、黄色或者橘色,连数字引脚。

 

 线的颜色 连接
红色 +5V
黑色或棕色 GND
 白色、黄色或橘色 信号线

 

#include<Servo.h>
const int soundTriggerPin = 2;
const int soundEchoPin = 3;
const int motorSignalPin = 7;
const int startingAngle = 15;
const int minimumAngle = 15;
const int maximumAngle = 165;
const int rotationSpeed = 1;
Servo motor;  //这个库不使用引脚9、10的pwm功能
void setup(void) 
{
    pinMode(soundTriggerPin, OUTPUT);
    pinMode(soundEchoPin, INPUT);
    motor.attach(motorSignalPin);     //设置舵机接口
    Serial.begin(9600);
}
void loop(void)
{
    static int motorAngle = startingAngle;
    static int motorRotateAmount = rotationSpeed;
    motor.write(motorAngle);
    delay(30);
    SerialOutput(motorAngle, CalculateDistance());    
    motorAngle += motorRotateAmount;
    if(motorAngle <= minimumAngle || motorAngle >= maximumAngle) {
        motorRotateAmount = -motorRotateAmount;
    }}
int CalculateDistance(void)
{
    //digitalWrite(soundTriggerPin, LOW);
    //delayMicroseconds(2);
    digitalWrite(soundTriggerPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(soundTriggerPin, LOW);
      long duration = pulseIn(soundEchoPin, HIGH);
    float distance = duration * 0.017F;
    return int(distance);
}
void SerialOutput(const int angle, const int distance)
{
    String angleString = String(angle);
    String distanceString = String(distance);
    Serial.println(angleString + "," + distanceString);
}

 

posted @ 2020-10-27 10:03  左揽雀尾007  阅读(335)  评论(0编辑  收藏  举报