|
我用舵机控制超声波
超声波读取都有没有问题
肯定我的程序有问题
我是10cm转90度,可是为啥 读到一个10cm就会执行三个if,肯定if那里错了,就是不知道咋改。谢谢了
#include <Servo.h>
Servo myservo;
int pos = 0;
const int TrigPin = 2;
const int EchoPin = 3;
float cm;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
myservo.attach(9);
}
void loop()
{
digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
cm = pulseIn(EchoPin, HIGH) / 58.0;
cm = (int(cm * 100.0)) / 100.0;
if(cm<10)
{
myservo.write(90);
delay(1000);
if(cm<10)
{
myservo.write(0);
delay(1000);
if(cm<10)
{ myservo.write(180);
delay(1000);
}
}
}
delay(1000);
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(1000);
} |
|