686|9

538

帖子

0

资源

一粒金砂(高级)

【CH579M-R1】+ 串行通讯模式下的超声波距离检测

本帖最后由 jinglixixi 于 2020-10-13 21:52 编辑

前面介绍过,CH579M 有4组独立的UART,利用好它并增强系统的功能。这里就再介绍一种它的用法。

JSN-SR04T-V3.0 是一款一体化超声波测距模块,它有多种使用模式,其中最主要的有2种,即触发方式测距和通讯方式测距。

所谓“通讯方式测距”,就是通过串口向测距模块发送一个采集指令,即可接收到模块反馈来的

十六进制数据,经转换即可以十进制的形式进行显示。

该测距模块的收发界面如图1所示,其中“55”是模块的采集指令,而接收到的则为4字节的反馈信息。

image-20201013010201-1.png

图1 收发界面

 

以“FF 00 E6 E5”为例,其中的FF为引导码,E5为校验码(校验码E5=FF+00+E6),00 E6则为检测值(00 E6 = 230),即检测值为230,单位为mm。

若改为OLED屏显示,则主程序为:

int main()
{
    UINT8 len,m;
    UINT16 n;
    GPIOA_SetBits(GPIO_Pin_9);
    GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);
    GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);
    UART1_DefInit();
    GPIOB_ModeCfg( GPIO_Pin_8, GPIO_ModeIN_PU );
    GPIOB_ModeCfg( GPIO_Pin_16, GPIO_ModeIN_PU );
    GPIOA_ModeCfg( GPIO_Pin_7, GPIO_ModeIN_PU );
    OLED_Init();
    OLED_Clear();
    OLED_ShowString(0,0,"CH579M  TEST",16);
    OLED_ShowString(0,2,"OLED HC-04",16);
    UART1_SendString( TxBuff, sizeof(TxBuff)-1);
    mDelaymS(200 );
    UART1_SendString( COM, sizeof(COM) );
    while(1)
    {
        len = UART1_RecvString(RxBuff);
        if( len==4 )
        {
               OLED_ShowString(0,2,"L=      mm",16);
               m=RxBuff[0]+RxBuff[1]+RxBuff[2];
               if((RxBuff[0]==0xff)&&(RxBuff[3]==m))
               {
                    n=RxBuff[1]*256+RxBuff[2];
                    OLED_ShowNum(24,2,n,4,16);
               }
        }
        mDelaymS(1000 );
        UART1_SendString( COM, sizeof(COM) );
    }
}

 

1.jpg 图2 运行效果图

 

此外,如使用上位机的专用软件来收发,则可得到图3所示的效果。

image-20201013010201-2.png

图3 测距值得波形显示


回复

299

帖子

0

资源

版主

感谢分享,测量精度还是不错的,希望以后能够多分享一下经验~有开发板图片更好~

点评

哈哈,上张双色双味儿的,不用该程序只需换个屏。 [attachimg]505278[/attachimg]  详情 回复 发表于 2020-10-13 22:02
有时间补一个  详情 回复 发表于 2020-10-13 20:37

回复

538

帖子

0

资源

一粒金砂(高级)

w494143467 发表于 2020-10-13 11:46 感谢分享,测量精度还是不错的,希望以后能够多分享一下经验~有开发板图片更好~

有时间补一个


回复

538

帖子

0

资源

一粒金砂(高级)

图已添加


回复

538

帖子

0

资源

一粒金砂(高级)

w494143467 发表于 2020-10-13 11:46 感谢分享,测量精度还是不错的,希望以后能够多分享一下经验~有开发板图片更好~

哈哈,上张双色双味儿的,不用改程序只需换个屏。

1.jpg


回复

1118

帖子

6

资源

版主

这样一发一收好把握,如果是发一次自动采集命令,模块每隔一段时间发一次距离,这时候就该考虑下是否粘包或者分包情况了

 

点评

是这样  详情 回复 发表于 2020-10-15 09:26
个人签名

加油,一切皆有可能。


回复

538

帖子

0

资源

一粒金砂(高级)

RCSN 发表于 2020-10-13 22:05 这样一发一收好把握,如果是发一次自动采集命令,模块每隔一段时间发一次距离,这时候就该考虑下是否粘包或 ...

是这样


回复

1万

帖子

133

资源

管理员

个人签名

玩板看这里:

http://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!


回复

7576

帖子

20

资源

版主

楼主手里好玩的模块真不少

点评

也不太多,家底都抖搂出来了,该攒银子再续点了!  详情 回复 发表于 4 天前
个人签名虾扯蛋

回复

538

帖子

0

资源

一粒金砂(高级)

littleshrimp 发表于 2020-10-23 21:24 楼主手里好玩的模块真不少

也不太多,家底都抖搂出来了,该攒银子再续点了!


回复
您需要登录后才可以回帖 登录 | 注册

关闭
站长推荐上一条 1/5 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表