用超声波模块控制舵机的开合

#include <Servo.h>

Servo myservo;  //定义舵机对象
int trig_pin = 2;  //定义超声波模块Trig脚连接的数字接口
int echo_pin = 3;  //定义超声波模块Echo脚连接的数字接口
float dist; //定义距离变量

void setup() {
  Serial.begin(9600); //初始化串口通信
  pinMode(trig_pin, OUTPUT); //设置Trig脚为输出状态
  pinMode(echo_pin, INPUT);  //设置Echo脚为输入状态
  myservo.attach(9); //将舵机连接到数字口9
}

void loop() {
  
  digitalWrite(trig_pin, LOW);
  delayMicroseconds(2);
  digitalWrite(trig_pin, HIGH); 
  delayMicroseconds(10);
  digitalWrite(trig_pin, LOW);
  
  dist = pulseIn(echo_pin, HIGH) / 58.0; //读取距离
  if (dist <= 1.0) {  //如果距离小于等于1厘米
    myservo.write(180); //打开舵机,将垃圾倒出来
    delay(1000);  //延时等待垃圾倒出
    myservo.write(0);  //关闭舵机
  }
  
}

可以使用激光测距仪进行垃圾深度的探测。在Arduino等控制板上编写程序,将激光测距仪的数据读取到控制板上,并根据读取数据判断垃圾深度是否小于一厘米。当垃圾深度小于一厘米时,控制舵机打开垃圾桶,将垃圾倾倒出来。其中,超声波探测模块的Trig脚连接数字口2,Echo脚连接数字口3;舵机的信号线连接数字口9。当距离小于等于1厘米时,舵机从初始位置旋转至倾倒位置,将垃圾倒出来;延时1秒后,舵机将再次回到初始位置。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值