打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】定时器用于超声波传感器

[复制链接]
19329|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 南来之风 于 2022-8-7 13:48 编辑

之前的测评提及了Timer0超级方便的使用方法,这次把手头的超声波传感器模块拿来与PIC18F57Q43搭配一下。看看能否获取距离?此次使用的超声波传感器型号是:HC-SR04,其内部模块原理图如下:

与PIC单片机相连供电Vcc与单片机的VTG相连,Trig与RD0,Echo与RD1相连接。




测距的原理是:


体现在程序中:
void DistanceMeasure(void){

        myCounterViaTimer = 0;
        int i = 0;
        for(i = 0; i < 10; i++){
            IO_RD0_Trigger_SetLow();        DELAY_microseconds(2);
            IO_RD0_Trigger_SetHigh();       DELAY_microseconds(15);
            IO_RD0_Trigger_SetLow();        
        
            /***/
            TMR0_StartTimer();
            TMR0_Reload();
        
            while(IO_RD1_Echo_GetValue() == 0);
            StartCounter = TMR0_ReadTimer();
            while(IO_RD1_Echo_GetValue() == 1);
            EndCounter = TMR0_ReadTimer();
            myCounterViaTimer += (uint16_t)(EndCounter - StartCounter);
            TMR0_StopTimer();
        }
        
        myCounterViaTimer /= 10;

}


其中定时器Timer0在MCC中进行配置,如下:

其中计数器选择的是16bit,TMR0H-TMR0L组合起来可以计数65535us。如果这个时间对应Echo接收到的高电平宽度,那么实际声波传输时间为65535/2 = 32ms,
340*100cm*32 /1000  = 1088cm,接近10m。所以我们做个小实验用这个计数器还是绰绰有余的。




附上项目,希望有时间有兴趣的朋友,可以给出优化建议:
CHAOSHENGBO.X.zip (1.59 MB)

超声波.png (243.45 KB )

超声波.png

使用特权

评论回复
评论
jy666 2022-9-10 12:07 回复TA
感谢 
沙发
南来之风|  楼主 | 2022-8-7 13:50 | 只看该作者
参考视频:https://www.bilibili.com/video/BV1x94y1Q7fV?spm_id_from=333.851.header_right.history_list.click&vd_source=06b417808f9325071f39e5fd55985221

使用特权

评论回复
板凳
xiaoyaodz| | 2022-8-17 15:55 | 只看该作者
CuriosityNano哪个芯片呢   

使用特权

评论回复
地板
earlmax| | 2022-8-17 16:44 | 只看该作者
定时器开发简单可靠一些   

使用特权

评论回复
5
timfordlare| | 2022-8-18 18:45 | 只看该作者
直接定时器捕获不行吗  

使用特权

评论回复
6
abotomson| | 2022-9-3 18:14 | 只看该作者
超声波传感器必须用中断吗?  

使用特权

评论回复
7
abotomson| | 2022-9-3 21:57 | 只看该作者
每计算完一次时间和距离时都要对定时器 T1 清零  

使用特权

评论回复
8
pmp| | 2022-9-5 13:17 | 只看该作者
   PWM脉宽捕获+超声波传感器测距

使用特权

评论回复
9
ulystronglll| | 2022-9-5 15:43 | 只看该作者
超声波传感器多少钱是比较合适的?  

使用特权

评论回复
10
rock00210| | 2022-9-7 06:54 | 只看该作者
麻烦问下楼主,0~10us的信号能读的到吗?谢谢

使用特权

评论回复
11
10299823| | 2022-10-13 15:25 | 只看该作者
PWM脉宽捕获+超声波传感器测距

使用特权

评论回复
12
nomomy| | 2022-10-13 15:45 | 只看该作者
超声波测距系统的工作原理是超声波发射器的超声波发送,向某一个确定的方向发射的同时进行计时,超声波在碰触到障碍物之后会返回给超声波接收器一个反射波,此时停止计时

使用特权

评论回复
13
wilhelmina2| | 2022-10-13 16:11 | 只看该作者
超声波测距仪是怎么定时的?               

使用特权

评论回复
14
loutin| | 2022-10-13 16:45 | 只看该作者
定时器可以完全有足够的回波检测时间同时也不会对其它三路超声波信号造成干扰。

使用特权

评论回复
15
janewood| | 2022-10-13 17:26 | 只看该作者
超声波传感器必须用中断吗?               

使用特权

评论回复
16
meeagle| | 2022-10-14 10:42 | 只看该作者
我前一段时间也做了个超声波模块,最大测距可达12米(墙面)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

250

帖子

2

粉丝