#include<Servo.h>
int trigPin=7;
int echoPin=8;
int LedPin =5;
int buzzerpin=3;
long duration;
float distance;
Servo servo;
void setup()
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerpin,OUTPUT);
pinMode(LedPin,OUTPUT);
Serial.begin(9600);
servo.attach(9);
}
void loop()
{distance=calculateDistance();
if (distance<=100)
{
digitalWrite(buzzerpin,HIGH);
digitalWrite(LedPin,LOW);
}
else{
digitalWrite(LedPin,LOW);
digitalWrite(buzzerpin,LOW);
}
digitalWrite(buzzerpin, LOW);
for(int i=15;i<=165;i++)
{
servo.write(i);
delay(300);
distance=calculateDistance();
Serial.print(i);
Serial.print(",");
Serial.print(distance);
Serial.print(";");
}
for(int i=165;i>=1;i--)
{
servo.write(i);
delay(300);
distance=calculateDistance();
Serial.print(i);
Serial.print(",");
Serial.print(distance);
Serial.print(";");
}
}
int calculateDistance()
{
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
duration=pulseIn(echoPin,HIGH);
distance=duration*0.034/2;
return distance;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/20430.html
標籤:其他硬件開發
