0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Arduino和HCSR04构建超声波悬浮装置

科技观察员 来源:circuitdigest 作者:Nilanjan Roy 2022-08-11 16:36 次阅读

看到一些东西漂浮在空中或自由空间中,这正是反重力项目的意义所在,这是非常令人兴奋的。物体(基本上是一小块纸或热胶)放置在两个产生声波的超声波换能器之间。由于这些似乎是反重力的波浪,物体漂浮在空中。这不仅是一个看起来很酷的Arduino 悬浮项目,而且还有许多实际应用。

所需组件

Arduino Uno / Arduino Nano ATMEGA328P

超声波模块 HC-SR04

IC 或 L239d H 桥模块 L239D

Vero 板点缀 Vero

二极管 4007

电容器 (PF) 104

8v 至 12v 电源的附加要求

稳压器 LM 7809

LED驱动电源12V 2Amp

附加材料:一些连接线、公头、母对母跳线

超声波悬浮电路图

完整的Arduino悬浮电路如下图所示,电路的工作原理非常简单。该项目的主要组件是一个Arduino,L239D电机驱动IC,以及从超声波传感器模块HCSR04收集的超声波换能器。一般超声波传感器发射25khz到50kHz之间频率信号的声波,在本项目中,我们使用的是HCSR04超声波换能器。我们之前做过很多超声波传感器项目,其中HCSR04主要用于测量距离。在这个项目中,我们将换能器从模块中焊接出来。

pYYBAGL0vgyAF3nWAAJXrVUkenk735.png

根据数据表,该超声波换能器的工作频率为 40 kHz。因此,使用 Arduino 和这段小代码的目的是为我的超声波传感器或换能器生成40KHz 高频振荡信号,并将此脉冲应用于双电机驱动器 IC L239D 的输入(来自 Arduino 的引脚 2 和 6 A0 & A1 引脚)来驱动超声波换能器。最后,我们将这个高频 40KHz 振荡信号与驱动电压一起通过超声换能器上的驱动 IC(通常在 L239D IC 的第 8 引脚上给出的 8 到 12 电压,Vcc2)施加。因此,超声波换能器产生声波。 我们将两个换能器以相反方向面对面放置,这样它们之间就会留出一些空间。声波在两个换能器之间传播,使物体漂浮。

请注意,L293D 有双电压输入,一个是为 IC 本身供电,在这个项目中由 Arduino 5v 供电,另一个 Vcc2 (8 th ) 用于输出组件驱动电压,该 VCC 引脚可以接受高达 36v 的电压。该 IC 有 2 个使能引脚、4 个输入输出引脚、4 个接地引脚。使用该 IC 的概念来自使用微控制器和该芯片的概念,我们可以通过从微控制器提供逻辑或数字信号来单独改变 2 个电机的方向和速度。

在该电路中,我们仅使用 IC L293D 的两个输入,输入引脚 1 (2) 和输入引脚 2 (7)。要启用这两个引脚,我们必须保持 IC Enable PIN 1 为高电平,因此我们将此引脚发射到 IC 引脚 16,即输入 Vcc 1,要了解更多信息,请遵循L293D 数据表。

使用 100nf 电容器是可选的,仅用于保持 IC 电源,作为电源,我们使用 12V 2Amp LED 驱动器,然后使用稳压器 IC LM7809 将电压降至 9v,并提供给 L139D 的第 8引脚与公共接地。 根据 Arduino、Cc 和 Arduino 论坛,Arduino UNO 板支持 7 到 12 伏的输入,但放置 9V Max 更安全。

为超声波悬浮编程 Arduino

代码非常简单,只有几行。在定时器和中断功能的帮助下使用这个小代码,我们正在制作高或低 (0 / 1) 并为 Arduino A0 和 A1 输出引脚生成 40Khz 的振荡信号。

首先,从相移阵列开始。

字节 TP = 0b10101010;

每隔一个端口就会接收到这个相反的信号。之后在 void 设置下,我们使用这行代码将所有模拟端口定义为输出。

DDRC = 0b11111111;

然后我们初始化定时器 1 并禁用所有中断设置为零。

通过这段代码,

无中断();

TCCR1A = 0;

TCCR1B = 0;

TCNT1 = 0;

然后,将定时器 1 配置为在 80KHZ 触发比较中断时钟。Arduino 以 16000000 MHZ ÷ 200 = 80,000 kHz 的频率运行,使用此函数生成方波。

OCR1A = 200;TCCR1B |=

(1 《《 WGM12);

TCCR1B |= (1 《《 CS10);

之后,这条线激活,比较定时器中断。

TIMSK1 |= (1 《《 OCIE1A);

最后,使用这段代码激活中断。

中断();

每个中断都会反转模拟端口的状态,这会将 80 kHz 方波信号转换为 40Khz 的全波循环信号。然后我们将值发送到 Arduino 输出 A0 和 A1 端口。

ISR(TIMER1_COMPA_vect)

{

端口C = TP;

TP = ~TP; // 为下一次运行反转 TP

}

并且没有任何东西可以放置或需要在循环下运行。

构建超声波悬浮装置

请注意,对于这个项目,正确安装超声波换能器很重要。它们应该在相反的方向上彼此面对,这一点非常重要,它们应该在同一条线上,这样超声波就可以在相反的方向上传播和相交。为此,您可以取两小块木头或 MD 板、螺母螺栓和胶水。您可以通过钻机制作两个孔以完美地安装换能器。在支架上,您可以悬挂超声波换能器装置。

poYBAGL0vgWAUoWVAAW-9Uk-Bsk302.png

在这种情况下,我使用了两块纸板,然后在胶枪的胶水的帮助下固定了超声波换能器。后来,为了制作支架,我使用了一个简单的接线盒,并用胶水固定了所有东西。

pYYBAGL0vf-AP7fEAAzvGscPR8U553.png

这是一些超声波悬浮的图片,展示了该项目的工作情况。

pYYBAGL0vfuAdljxAAozYK1rgXM191.png

如果一侧安装有超声波换能器,超声波悬浮或声学悬浮也可以工作,但在这种情况下需要一个反射器作为障碍物,以便它可以在未来的悬浮滑板和反重力运输中使用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 超声波
    +关注

    关注

    63

    文章

    2808

    浏览量

    136700
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184826
  • 超声波换能器

    关注

    2

    文章

    43

    浏览量

    7374
收藏 人收藏

    评论

    相关推荐

    求msp430f149与hcsr04程序,

    各位大神,我才学430不久,想做一个超声波测距,但是写的程序一直调试不出来,希望你们有这个程序的发给我一下,msp430f149与hcsr04程序,用12864显示,我的邮箱1306372242@qq.com,
    发表于 06-18 00:14

    单片机hcsr04超声波对射测距

    求教,两个单片机相隔一段距离怎么通过hcsr04超声波模块和蓝牙来测距
    发表于 03-11 15:13

    浅析TM32F1系列超声波测距程序

    STM32F1系列超声波测距程序因为自己做毕设的缘故,用到超声波HCSR04模块,在网上查找了相关的代码,发现关于超声波测距大体上有两种写法。在自己调试改进后,想把这两种方法都贴出来,
    发表于 08-16 06:10

    STM32F103ZET6超声波测距hcsr04模块

    STM32F103ZET6超声波测距(hcsr04模块)实验一、硬件连线图接线描述:1.供电采+5V,我试了下+3V也是可以的2. 注意Trig引脚跟Echo引脚不要接错;二、hcrs04模块测距
    发表于 08-24 07:36

    怎样去编写HCSR04模块超声波测距程序呢

    超声波测距原理是什么?怎样去编写HCSR04模块超声波测距程序呢?
    发表于 11-17 06:45

    STM32F103超声波HCSR04模块串口输出距离代码分享

    STM32F103超声波HCSR04模块串口输出距离代码分享
    发表于 12-14 08:01

    超声波HCSR-04的驱动及开发讲解

    文章目录1、超声波HCSR-04的驱动及开发本次的超声波主要是用于测试小车前方与障碍物之间的距离的,本次主要是通过获取到超声波的距离后,然后通过OLED将距离显示出来,所以本次需要将前
    发表于 01-05 07:32

    如何利用HCSR04实现超声波测距

    利用HC—SR04实现超声波测距并且通过1602显示距离主函数部分#include "reg52.h" #include "lcd.h"#include
    发表于 01-14 07:10

    基于单片机的HCSR04超声波测距传感器设计有哪些注意事项

    基于单片机的HCSR04超声波测距传感器设计有哪些注意事项?
    发表于 01-20 06:52

    HCSR04超声波驱动

    HC_SR04HC_SR04.h超声波驱动头文件#ifndef __HC_SR04_H_#define__HC_SR04_H_//---包含头文件---//#include "
    发表于 02-22 08:06

    超声波HCSR04模块的工作原理是什么

    代码是基于STC89C52RC单片机芯片写的,有些地方引脚定义不同根据情况更换即口HCSR04模块超声波HCSR04模块的工作原理其实还是较为简单的,我们只需要通过IO口给超声波模块的
    发表于 03-02 07:20

    用lcd1602显示超声波hcsr04测出的距离

    单片机stm32发送消息启动HCSR04超声波模块发出超声波超声波模块通过测量发出超声波和接收超声波
    发表于 09-22 07:26

    如何构建Arduino超声波测速装置

    电子发烧友网站提供《如何构建Arduino超声波测速装置.zip》资料免费下载
    发表于 10-31 10:06 1次下载
    如何<b class='flag-5'>构建</b><b class='flag-5'>Arduino</b><b class='flag-5'>超声波</b>测速<b class='flag-5'>装置</b>

    使用Arduino UNO进行超声波悬浮

    电子发烧友网站提供《使用Arduino UNO进行超声波悬浮.zip》资料免费下载
    发表于 11-14 10:12 3次下载
    使用<b class='flag-5'>Arduino</b> UNO进行<b class='flag-5'>超声波</b><b class='flag-5'>悬浮</b>

    使用HCSR04超声波传感器DIY测距仪

    电子发烧友网站提供《使用HCSR04超声波传感器DIY测距仪.zip》资料免费下载
    发表于 11-16 09:33 3次下载
    使用<b class='flag-5'>HCSR04</b><b class='flag-5'>超声波</b>传感器DIY测距仪