DIY声悬浮


今天,我将告诉并展示如何用自己的双手来重复超声波悬浮的作用。

在先前的文章中, 。 我展示了伪悬浮。 这次都是真实的。 我将从理论开始。

声音振动


要了解悬浮效应的全部本质,您需要了解声波和驻波是什么。

因此,我将从它们开始。 声波向各个方向传播,由正负两个半波组成。 正半波是压缩区或高压,将来我将其称为压缩,负半波称为排放区,我们将其称为减压。

图片

在实践中,它看起来像这样:扬声器扩散器向外移动时会产生压缩,而向内移动时会释放出压缩。 在图像中清楚地显示了这一点。

图片

最大波功率是在动态头扩散器附近产生的,随着它远离发射器,它逐渐失去功率,离扬声器越远,功率越弱。

驻波是将两个反向传播,相位一致且频率相同的波叠加在一起形成的波。 如果普通波在空间传播过程中失去了功率,则小距离处的驻波会形成功率近似相等的节点。 这是通过折叠多向波来实现的。 衰减波被来波放大。 要了解这种情况的发生,请看下面的图片。 驻波中的节点或本例中的货架以灰色突出显示。 在这些架子(节点)和存放的物品上。

图片

波长是声音的速度除以振荡频率。 在20°C的温度和50%的湿度下,声音在这种环境中以340 m / s的速度传播。 我们的压电发射器的谐振频率约为40,000 Hz。 结果,我们获得了340,000 mm / 40,000 Hz = 8.5 mm的波长。 驻波波长将为8.5毫米。

发射器可以位于彼此不同的距离处,但应始终是波长的倍数。 发射器之间的距离越小,驻波的节点越强大。 声发射器之间的空间越大,它们之间的节点越多,但是节点的功率会减弱,反之亦然。 您还需要了解,要在波的节点中保持大量物体,并且在超声波发射器之间保持更大的距离,则需要更强大的压电头。 例如,来自停车雷达或家用加湿器。 在本文中,我考虑了最经济实惠的超声波发射器。 可以从HC-SR04测距仪中卸下

接线图 -我使用了Arduino nanoMX1508电动机驱动器 ,我可以使用NE555发生器来完成,并且作为发射器的放大器,使用HC-SR04测距仪上安装的MAX232芯片,但是我为自己选择了一条更简单的路径,从而节省了我的时间。 因为组装我的电子leveviron只花了不到5分钟的时间。 我用杜邦线束进行了连接。

图片

素描Arduino的描述


该代码没什么特别的。 一切都归结为设置计时器和抽空D Arduino端口。 为此,将Timer1置于巧合的复位模式(CTC),现在,当帐户寄存器TCNT1的值与比较寄存器OCR1A中的指定数字一致时,将触发一个中断,在该中断中,处理器的整个端口D将被反转,然后,计数寄存器将被复位,并退出之后处理器将开始新的计数过程。

我们需要的OCR1A寄存器的值计算如下:由于TCCR1B寄存器中的分频器已关闭,因此我们采用16,000,000 Hz的时钟频率并除以所需的中断频率80,000 Hz,结果得到数字200,这就是我们的值。用于寄存器OCR1A。

您问为什么是80 kHz,而不是40 kHz? 因为处理程序中的周期由两个中断操作组成。 在第一个操作中,输出形式为D3 = 0和D4 = 1,在第二个操作中,D3 = 1和D4 = 0。

Arduino的代码


volatile uint8_t portD3_D4 = 8; //   D3    D4 void setup() { pinMode(3, OUTPUT); pinMode(4, OUTPUT); //  Timer1 TCNT1 = 0; TCCR1A = 0; TCCR1B = 0; OCR1A = 199; //    16  / 80  = 200 TCCR1B = (1 << WGM12)|(1 << CS10); //  CTC,   TIMSK1 |= (1 << OCIE1A); //    } void loop () {} ISR (TIMER1_COMPA_vect) //     { PORTD = portD3_D4; //     portD3_D4 = 255-portD3_D4;//        } 

Source: https://habr.com/ru/post/zh-CN461527/


All Articles