【超声波悬浮】
超聲波懸浮
刷短視頻時,看到了一個超聲波懸浮的視頻,覺得很好玩,就自己畫了一個。三十塊錢可以買兩套的零件。
實物展示效果如下:
小科普:超聲波懸浮是高強條件下的一種非線性效應,其基本原理是利用聲駐波與物體的相互作用產生豎直方向的懸浮力已克服物體的重量,同時產生水平方向的定位力將物體固定于聲波節處。
話不多說,上干貨啦!
硬件電路介紹
直流12v供電,通過1117降壓到5V,使用STC15W104單片機,用兩個引腳通過定時器輸出40Khz方波,加一個驅動芯片驅動超聲波探頭,初始狀態設置為一高一低,再定時翻轉即可。 原理圖是用立創EAD畫的,為了白嫖PCB打樣。
實際做出來的PCB是這樣的
一個底板,一個超聲波底座,之間用M2銅柱連接。兩個超聲波探頭是并聯的關系。
單片機程序
編程用KEIL和STC-ISP 燒錄軟件
準備一個CH340下載器
#include <REGX52.H>
#define u16 unsigned int
#define u8 unsigned char
sbit INA=P3^2; //超聲波發射
sbit INB=P3^3; //超聲波發射
sbit LED=P3^4; //LED
#define FOSC 24000000
//#define T1MS (65536-FOSC/1000000) //1us初值
#define T1MS 65236 //12.5us周期
sfr AUXR=0x8e;
void delay(u16 a)
{
u16 i,j;
for(i=0;i<a;i++)
for(j=0;j<2000;j++);
}
void Time0_Init()
{
AUXR|=0x80;
TMOD=0x00;
TL0=T1MS;
TH0=T1MS>>8;
ET0=1;
EA=1;
TR0=1;
}
void main()
{
Time0_Init();
INA=1;
INB=0;
LED=1;
while(1)
{
// LED=0; //測試用的指示燈,不加都可以
// delay(1000);
// LED=1;
// delay(1000);
}
}
void zd() interrupt 1
{
TL0=T1MS;
TH0=T1MS>>8;
INA=!INA;
INB=!INB;
}
主要就一個定時器,主程序都是空的。
調試組裝
1.使用兩個發射探頭
2.發射探頭在下,接收探頭在上(1,2均可)
3.超聲波懸浮只能懸浮比它波長小的物體,目前已知物體–小泡沫
4.超聲波探頭區分極性
5.調節探頭(兩個網面之間的距離)間距在23mm
暫時就這么多了,第一次給大家分享,希望可以幫助到有需要的人,感興趣的小伙伴來B站找我呀,謝謝支持。
總結
- 上一篇: C# 图片压缩处理
- 下一篇: 神经网络图用什么软件做,神经网络示意图怎