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


#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?