【arduino】超声波垃圾桶

这篇具有很好参考价值的文章主要介绍了【arduino】超声波垃圾桶。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🎊专栏【Arduino】

🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。

🎆音乐分享【勋章】

大一同学小吉,欢迎并且感谢大家指出我的问题🥰

目录

⭐效果

⭐所需器材 

⭐连线图片 

⭐程序代码

⭐代码分析

✨引入所需的库文件

✨定义引脚 

✨定义变量并且初始化 

 ✨程序初始化

✨pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);  函数

✨digitalWrite(trigPin, HIGH)函数 

✨digitalWrite(trigPin, LOW)函数

🍔注意

✨delayMicroseconds(2)函数 

✨pulseIn() 函数 

✨Serial.println(distance)函数

✨关于舵机的操作


 文章来源地址https://www.toymoban.com/news/detail-524204.html

 

⭐效果

自制超声波垃圾桶(硬件设施细节还要完善)

⭐所需器材 

超声波传感器,跳线,舵机,小垃圾桶外壳,arduino uno开发板

⭐连线图片 

【arduino】超声波垃圾桶,Arduino,单片机,嵌入式硬件

⭐程序代码

#include <Arduino.h>
#include <Servo.h>
#define echoPin 2  
#define trigPin 3  
Servo duoji; 

long duration; 
int distance;  
int angle = 0; //舵机角度

void setup()
{
  pinMode(trigPin, OUTPUT);                         
  pinMode(echoPin, INPUT);                          
  duoji.attach(9);                            
  Serial.begin(9600);                               
}
void loop()
{
  //先清空触发脚状态,准备发送下一次的超声波信号
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  duration = pulseIn(echoPin, HIGH);
  
  distance = duration * 0.034 / 2; //测距

  Serial.println(distance);

  if (distance > 20)//20厘米
  {
    if (duoji.read() == 90)
    {
      delay(1000);
    }
    else
    {
      angle = duoji.read();
      while (angle < 90)  //打开垃圾桶
      {
        angle+=10;
        duoji.write(angle);
        delay(10);
      }
      delay(1000);
    }
  }
  else 
  {
      angle = duoji.read();
      while (angle > 0)  //关闭垃圾桶
      {
        angle-=10;
        duoji.write(angle);
        delay(10);
      }
      duoji.write(0);
  }
  
}

⭐代码分析

 

✨引入所需的库文件

#include <Arduino.h>
#include <Servo.h>

✨定义引脚 

#define echoPin 2  //将Echo引脚连接到D2
#define trigPin 3  //将Trig引脚连接到D3

✨定义变量并且初始化 

long duration = 0;
int distance = 0;
int angle = 0;

 ✨程序初始化

void setup()
{
  pinMode(trigPin, OUTPUT);     
  pinMode(echoPin, INPUT);      
  duoji.attach(9);              //将舵机信号引脚连接到数字引脚9
  Serial.begin(9600);           //设置波特率
}

✨pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);  函数

        这两行代码用于初始化 HC-SR04 超声波传感器连接的两个引脚,即将触发脚(Trig Pin)设置为输出模式,使其能够发送超声波信号,并将回波脚(Echo Pin)设置为输入模式,用于接收回波信号。

        在使用 HC-SR04 进行测距时,需要通过触发引脚发送一定时间的超声波信号,然后等待该信号的回波,测量回波的行程时间,最终通过行程时间和声波在空气中的传播速度计算出测距结果。因此,在这段代码中需要将引脚初始化为相应的输入输出模式,以便进行后续的超声波测距操作。

✨digitalWrite(trigPin, HIGH)函数 

  digitalWrite(trigPin, HIGH) 用于将触发引脚 trigPin 的电平设置为高电平,以激活 HC-SR04 超声波传感器并发送超声波信号。

        在 HC-SR04 进行测距时,需要向触发引脚发送一定时间的高电平信号才能启动传感器,并在一定时间后自动停止发射传感器,开始接收回波信号,该函数用于实现发送触发信号的操作,从而开始一次超声波测距操作。

✨digitalWrite(trigPin, LOW)函数

  digitalWrite(trigPin, LOW) 用于将触发引脚 trigPin 的电平设置为低电平,以实现清空触发脚状态,准备发送下一次的超声波信号。

        在 HC-SR04 测距过程中,需要向触发引脚发送一定时间的高电平信号才能激活传感器并发送超声波信号,因此在每次测距结束后,需要调用该函数将触发引脚的电平设置为低电平,以便准备下一次的超声波测距。

🍔注意

        要先使用digitalWrite(trigPin, LOW),以实现清空触发脚状态,准备发送下一次的超声波信号。然后再使用digitalWrite(trigPin, HIGH)

        如果不明白的话,分析一下上面的完整代码

✨delayMicroseconds(2)函数 

   delayMicroseconds(2) 是一个延时函数,用于在超声波传感器触发引脚电平由低电平变为高电平后延迟 2 微秒的时间,以满足 HC-SR04 的触发要求。

        在 HC-SR04 进行测距时,需要将触发引脚电平设置为高电平并保持至少 10 微秒的时间,才能激活传感器并发送超声波信号。而本函数的作用就是在设置触发引脚为高电平后,等待一段时间(这里为 2 微秒)后再继续执行下一步操作,从而满足 HC-SR04 触发的要求。

✨pulseIn() 函数 

   pulseIn() 是Arduino内置的一个函数,它用于测量数字引脚上的高或低脉冲的持续时间,通常用于接收超声波传感器(如 HC-SR04)的回波信号的持续时间。在这个代码中,它被用于读取echoPin引脚输入的声波行程时间,从而计算距离。

        具体来说,pulseIn() 函数接收两个参数,第一个是要测量的引脚,第二个是脉冲电平(HIGH或LOW)。在这里,我们需要测量接收到的高电平的持续时间,因此第二个参数是 HIGH。该函数将等待引脚上产生与给定电平相同的脉冲,并返回脉冲持续的时间,单位是微秒。因此,这个代码中,通过pulseIn(echoPin, HIGH) 读取到的值为声波从发送出去到接收到回波的总时间,即行程时间(单位:微秒)。最后将计算后的距离除以58.0,得到测量距离的结果(单位:厘米)。

需要注意的是,由于pulseIn()函数要等待接收到指定电平的脉冲,因此会阻塞代码执行。此外,在pulseIn()函数中还可以设置超时时间,避免因为某些原因导致函数一直等待而无法返回。

✨Serial.println(distance)函数

方便在串口监视器来查看测量的距离是多少 

✨关于舵机的操作

请看:【Arduino】舵机的连线和基本操作-CSDN博客  

 

到了这里,关于【arduino】超声波垃圾桶的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Arduino单片机超声波测距仪设计

    文章目录 摘  要 1.课程设计任务 1.1课程设计题目 1.2设计的要求 2.设计总体方案 2.1初步设计方案 2.2各个单元电路的设计要求 2.3主要性能指标 2.4总体方案 3.单元模块设计 3.1显示模块 3.2超声波测距模块 3.3蜂鸣器模块 3.4电机模块 3.5 LED二极管模块 4.软件流程图 5.设计代码 5.1核

    2024年02月11日
    浏览(35)
  • 【arduino】HC-SR04超声波测距模块的驱动与使用

    超声波是振动频率高于20KHZ的机械波。它具有频率高、波长短、绕射现象小、方向性好、能够成为射线而定向传播等特点应用广泛,适合大学生、工程师、技术人员以及电子爱好者等操作。 首先超声波测距模块长这个样 硬件名称:HC-SR04超声波传感器 工作电压:直流(DC):

    2024年02月09日
    浏览(43)
  • Arduino开发实例-DIY超声波传感器避障机器人

    在本应用中,我们将使用一个超声波传感器与两个直流电机和一个伺服电机相结合,Arduino作为主控板创建一个简单的避障机器人。 超声波传感器发送和接收信号以确定物体的距离。 如果距离小于 15 厘米有物体,机器人将停止。 然后它环顾四周,转向一个它什么都感觉不到

    2023年04月08日
    浏览(53)
  • 智能语音识别垃圾桶

    主要采用Arduino单片机与LD3320语音模块结合,实现垃圾分类。 目录 设计方案 详细设计 总结 简介:传统垃圾桶都是采用不封口,手动或者脚踩的方式打开桶盖投递垃圾,不但操作麻烦,而且对人体的卫生健康有不利的影响,对空气环境也会造成污染。针对以上存在的问题,本

    2023年04月27日
    浏览(40)
  • 智能垃圾分类垃圾桶(K210+stm32mp157)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 有需要源码参考的可以点赞在评论区留邮箱 K210识别垃圾 k210识别2 文章目录 前言 一、垃圾分类识别+舵机控制(K210) 二、语音控制(K210+ld3320)(UART通信) 三、满溢度距离传感器数据获取(STM32MP157)

    2024年02月03日
    浏览(44)
  • C语言:void*概述(垃圾桶)

      目录 1. void*概述 2. 限制与注意事项 2.1 不能进行解引用 2.2 不能进行加减整数操作 3. 示例程序 4. 总结  void* 类型时,我们通常是在处理一种特殊的指针类型,它可以存储任何数据类型的地址。在本文中,我们将深入探讨 void* 的特性以及在实际编程中如何使用它。 void* 是

    2024年02月03日
    浏览(31)
  • 智能垃圾桶项目【课程设计】【全套开源】

    1.1 功能描述 当物体接近垃圾桶时,垃圾桶自动打开,并有\\\" 嘀\\\"的一声;当远离垃圾桶后,自动关闭; 当按下按键时,垃圾桶也可以自动打开,并有\\\" 嘀\\\"的一声; 当感受到震动时,也自动打开,(同上) 垃圾桶开时,led1 灯开,led2 灯关;当垃圾桶关时,led1 灯关,led2 灯开

    2024年01月16日
    浏览(39)
  • 智能垃圾桶丨悦享便捷生活

           垃圾桶是人们日常生活所必不可少的必需品,它让生活中所产生的垃圾有了一个正确的存放地方。随着生产技术的迅速发展,垃圾桶也得以更新换代。由最初的简单式的圆筒式垃圾桶,到现在出现的感应式垃圾桶、智能语音控制垃圾桶,垃圾桶也变得越来越智能,让

    2024年02月07日
    浏览(46)
  • HDFS中的Trash垃圾桶回收机制

    回收站(垃圾桶)是windows操作系统里的一个系统文件夹,主要用来存放用户历史删除的文档文件资料,存放在回收站的文件可以恢复 回收站的功能给了我们一剂“后悔药”。回收站保存了删除的文件,文件夹,图片等。这些项目将一直保留在回收站中,直到清空回收站 HDF

    2024年02月13日
    浏览(38)
  • 机器人制作开源方案 | 智能垃圾桶

           智能垃圾桶是一种利用物联网技术和智能感知能力的智能设备,旨在提高垃圾分类和处理的效率。通常具备以下特点和功能: ① 智能感知:智能垃圾桶配备各种传感器,如压力传感器、红外线传感器等,可以实时感知垃圾桶内垃圾的填充情况和类型。 ② 垃圾分类:

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包