Arduino 入门教程(十一)使用超声波和Servo实时显示测量的距离

Potential diagram:

Arduino 入门教程(十一)使用超声波和Servo实时显示测量的距离_第1张图片

schematic diagram :

Arduino 入门教程(十一)使用超声波和Servo实时显示测量的距离_第2张图片

Mathematical formula:

Arduino 入门教程(十一)使用超声波和Servo实时显示测量的距离_第3张图片

Arduino Code:

#include 
int trigPin = 13;
int echoPin = 11;
int servoControlPin = 6;
float pingTime;
float targetDistance;
float speedOfSound = 776.5;
float servoAngle;
Servo myPointer;
void setup(){
  Serial.begin(9600);
  pinMode(servoControlPin,OUTPUT);
  pinMode(trigPin,OUTPUT);
  pinMode(echoPin,INPUT);

  myPointer.attach(servoControlPin);
}

void loop(){
  digitalWrite(trigPin,LOW);
  delayMicroseconds(2000);
  digitalWrite(trigPin,HIGH);
  delayMicroseconds(15);
  digitalWrite(trigPin,LOW);
  delayMicroseconds(10);

  pingTime = pulseIn(echoPin,HIGH);
  pingTime = pingTime/1000000;
  pingTime = pingTime/3600;
  targetDistance = speedOfSound*pingTime;
  targetDistance = targetDistance/2;
  targetDistance *= 63360;

  Serial.print("The Distance to Target is:  ");
  Serial.print(targetDistance);
  Serial.println(" inches");

  servoAngle = (106./7.)*targetDistance + 37;
  myPointer.write(servoAngle);
  Serial.println(servoAngle);
  delay(100);
}

 

你可能感兴趣的:(Arduino,Arduino)