m0_60782512 2021-08-08 10:28 采纳率: 0%
浏览 32

为什么超声波要检测的物体都在前面了,舵机还是不动?


#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度后不动?(请忽略第一行的两杠)

  • 写回答

1条回答 默认 最新

  • 咸鱼弟 领域专家: 嵌入式与硬件开发技术领域 2021-08-08 11:23
    关注

    t==cm;;
    这条语句是不是有问题?t=cm?

    评论

报告相同问题?

问题事件

  • 创建了问题 8月8日