查看: 6790|回复: 10

[原创] 自平衡小车+超声波部分测试

[复制链接]
  • TA的每日心情
    开心
    2025-1-21 08:52
  • 签到天数: 861 天

    连续签到: 1 天

    [LV.10]以坛为家III

    75

    主题

    2523

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5867
    最后登录
    2025-1-22
    发表于 2017-10-3 17:02:47 | 显示全部楼层 |阅读模式
    本帖最后由 leo121_3006061 于 2017-10-10 21:38 编辑

    前期准备硬件用了点时间,小车硬件终于有了雏形,这几天弄mpu6050,头昏脑涨,dmp一直没有数据,只有温度和加速度什么的都有数据反馈,先放下,搞下超声波,弄出点眉目,分享出来,有个问题,只有当物体很接近(大概10cm的样子)HC-SR04才会有数据反馈出来,不知道是不是我哪里搞错了。Pin的连接

    lpc54110
                pio0.11-->trig
                pio0.12-->echo
    vcc 5.0----->vcc
    GND------>GND
    代码:app_HC_SR04.H
    1. #ifndef _APP_HC_SR04_H_
    2. #define _APP_HC_SR04_H_


    3. extern void hc_sr04_init();
    4. extern void    hc_sr04_on();
    5. extern void    hc_sr04_off();
    6. extern float echo_read();
    7. #endif
    复制代码
    app_HC_SR04.c
    1. /*

    2. HC-SR04

    3. Author: Leo


    4. */
    5. #include "fsl_device_registers.h"
    6. #include "fsl_debug_console.h"
    7. #include "board.h"

    8. #include "pin_mux.h"

    9. #include "fsl_common.h"
    10. #include "fsl_iocon.h"



    11. #include "app_interrupt.h"
    12. #include <stdbool.h>
    13. #include "app_HC_SR04.h"

    14. #define HC_SR04_GPIO_CFG IOCON_MODE_PULLUP | IOCON_FUNC0 | IOCON_GPIO_MODE | IOCON_DIGITAL_EN | IOCON_INPFILT_OFF

    15. const uint8_t trig_port=0;
    16. const uint8_t trig_pin=11;

    17. const uint8_t echo_port=0;
    18. const uint8_t echo_pin=12;

    19. void hc_sr04_init()
    20. {
    21.         //trig
    22.                 GPIO->DIR[trig_port] |= 1U << trig_pin;
    23.                 GPIO->B[trig_port][trig_pin] = 0;
    24.                 IOCON_PinMuxSet(IOCON, trig_port, trig_pin, HC_SR04_GPIO_CFG);
    25.                
    26.         
    27.         //echo
    28.                 //GPIO->DIR[echo_port] &= ~(1U << echo_pin);
    29.         GPIO->DIR[echo_port] &= ~(1U << echo_pin);
    30.         
    31.                 GPIO->B[echo_port][echo_pin] = echo_pin;
    32.                 IOCON_PinMuxSet(IOCON, echo_port, echo_pin, HC_SR04_GPIO_CFG);
    33.         //GPIO_ReadPinInput
    34. //        IOCON_PinMuxSet(IOCON, 0,  12, IOCON_MODE_INACT | IOCON_FUNC5 | IOCON_DIGITAL_EN | IOCON_INPFILT_OFF);



    35. }
    36. void    hc_sr04_on()
    37. {
    38.          
    39.                 GPIO->B[trig_port][trig_pin]=1;

    40. }
    41. void    hc_sr04_off()
    42. {

    43.                 GPIO->B[trig_port][trig_pin]=0;
    44. }

    45. float echo_read()
    46. {
    47.          uint32_t cntTime=0;
    48.          while(GPIO_ReadPinInput(GPIO, echo_port, echo_pin))//当echo高电平开始计时(时间长度*340/s(声速)得到的结果再/2,即为距离)
    49.                  
    50.          {
    51.                  //
    52.                 // delay_us(1);
    53.                 // PRINTF("echo is high %d\r\n",cntTime);
    54.                  cntTime++; //仅仅计数了
    55.          }
    56.          return cntTime;
    57.          
    58. }
    复制代码
    主函数main代码
    1. //系统初始化部分略,以下部分是我根据网上查到的资料,按顺序写的
    2. hc_sr04_init();

    3. while (1)
    4.         {

    5. hc_sr04_off(); //首先置位trig 为低电平
    6.                 delay_us(2);
    7.                 hc_sr04_on();然后置位trig 为高电平
    8.                 delay_us(15);延时至少10秒
    9.                 hc_sr04_off();置位低电平,此时,echo应该开始反馈高电平信号,
    10.                
    11.                         PRINTF("Currently Distance is below:\r\n");
    12.                         PRINTF("==================================================\r\n");
    13.                         PRINTF("%d\r\n",echo_read()); //读取echo的高电平信号的时长,用于计算距离
    14.                         PRINTF("==================================================\r\n");
    15.                
    16.                
    17.         }
    复制代码


    最后附上串口显示的数据

    sr04.jpg

    代码 software_6050.zip (2.95 MB, 下载次数: 15)
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情

    2018-2-28 16:09
  • 签到天数: 65 天

    连续签到: 1 天

    [LV.6]常住居民II

    8

    主题

    238

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    488
    最后登录
    2019-9-18
    发表于 2017-10-9 09:08:48 | 显示全部楼层
    谢谢,参考下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-2-28 16:09
  • 签到天数: 65 天

    连续签到: 1 天

    [LV.6]常住居民II

    8

    主题

    238

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    488
    最后登录
    2019-9-18
    发表于 2017-10-9 10:38:56 | 显示全部楼层
    整个工程能否贴上来
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-1-21 08:52
  • 签到天数: 861 天

    连续签到: 1 天

    [LV.10]以坛为家III

    75

    主题

    2523

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5867
    最后登录
    2025-1-22
     楼主| 发表于 2017-10-9 22:42:32 来自手机 | 显示全部楼层
    gujiamao 发表于 2017-10-9 10:38
    整个工程能否贴上来

    好的,我明天贴,社区里有个lpc824的,那个写的比较好,你可以搜下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-1-21 08:52
  • 签到天数: 861 天

    连续签到: 1 天

    [LV.10]以坛为家III

    75

    主题

    2523

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5867
    最后登录
    2025-1-22
     楼主| 发表于 2017-10-10 21:39:53 | 显示全部楼层
    gujiamao 发表于 2017-10-9 10:38
    整个工程能否贴上来

    加到你的工程里了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-2-28 16:09
  • 签到天数: 65 天

    连续签到: 1 天

    [LV.6]常住居民II

    8

    主题

    238

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    488
    最后登录
    2019-9-18
    发表于 2017-10-11 09:15:49 | 显示全部楼层

    谢谢呀,一会试下!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-2-28 16:09
  • 签到天数: 65 天

    连续签到: 1 天

    [LV.6]常住居民II

    8

    主题

    238

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    488
    最后登录
    2019-9-18
    发表于 2017-10-11 16:03:41 | 显示全部楼层

    我直接用你上传的工程,mpu6050的地址读出来是68,不过超声波的计数值没变,我研究下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-10-8 22:37
  • 签到天数: 116 天

    连续签到: 1 天

    [LV.6]常住居民II

    1

    主题

    327

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1487
    最后登录
    2020-2-16
    发表于 2017-10-11 16:42:52 | 显示全部楼层
    学习学习,嘻嘻嘻
    顶顶顶
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-2-28 16:09
  • 签到天数: 65 天

    连续签到: 1 天

    [LV.6]常住居民II

    8

    主题

    238

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    488
    最后登录
    2019-9-18
    发表于 2017-10-11 17:38:16 | 显示全部楼层
    哈哈,你的串口显示的值其实不对的,这个是整形转成浮点的值(一个错误的)....
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-1-21 08:52
  • 签到天数: 861 天

    连续签到: 1 天

    [LV.10]以坛为家III

    75

    主题

    2523

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5867
    最后登录
    2025-1-22
     楼主| 发表于 2017-10-12 20:47:23 | 显示全部楼层
    gujiamao 发表于 2017-10-11 17:38
    哈哈,你的串口显示的值其实不对的,这个是整形转成浮点的值(一个错误的).... ...

    被你发现了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-28 15:34 , Processed in 0.102357 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表