#include <Servo.h>
Servo myservo;
const int TrigPin=8; //设置发射脚位
const int EchoPin=9; //设置接收脚位
float cm;//浮点型数据类型(加小数点,提高精准度)
int t=0;
void setup() {
Serial.begin(9600);
pinMode(TrigPin,OUTPUT);
pinMode(EchoPin,INPUT);
myservo.attach(3);
}
void loop() {
digitalWrite(TrigPin,LOW); //用低高低电平发送脉冲给Trigpin引脚
delayMicroseconds(2); //微秒级延时
digitalWrite(TrigPin,HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin,LOW);
cm=pulseIn(EchoPin,HIGH)/58.0; //读取脉冲宽度,换算成厘米
Serial.print(cm); //显示距离
Serial.print(cm); //显示单位
Serial.println(); //回车
t==cm;
if(t<5){
myservo.write(90);
delay(15);
}
}
写了一个超声波感应垃圾桶的程序,语法都正确,为什么舵机还是只能转到90度后不动?(请忽略第一行的两杠)
t==cm;;
这条语句是不是有问题?t=cm?