当前位置: 首页 > news >正文

北京网站定制建设地图网站模板

北京网站定制建设,地图网站模板,北京的网页设计,做网站什么码在完成《让Pegasus天马座开发板用上OLED屏》后,我觉得可以把超声波测距功能也在Pegasus天马座开发板上实现。于是在箱子里找到了,Grove - Ultrasonic Ranger 这一超声波测传感器。 官方地址: https://wiki.seeedstudio.com/Grove-Ultrasonic_Ranger 超声…

在完成《让Pegasus天马座开发板用上OLED屏》后,我觉得可以把超声波测距功能也在Pegasus天马座开发板上实现。于是在箱子里找到了,Grove - Ultrasonic Ranger 这一超声波测传感器。

官方地址: https://wiki.seeedstudio.com/Grove-Ultrasonic_Ranger

 超声波传感器使用

Grove - Ultrasonic Ranger测距模块一般配备有一个标准的Grove接口,使得接线变得简单。通常,这个模块有4个引脚:

  1. VCC:供电引脚,通常连接到5V。
  2. GND:地引脚,连接到微控制器的GND。
  3. SIG:信号引脚,用于传输数据。
  4. NC:未连接(No Connection),通常不用

 其中SIG信号引脚,是触发信号引脚,也是发送测距时长反馈引脚(高电平的时长为超声波往返距离所以使用的时间)。

  • 触发信号: 发送一个大于10us的脉冲信号到SIG引脚
  • 回复信号: 接收脉冲及得到高电平时间长度

按照初中物理声音传播公式:

S = \frac{\frac{}{}T * 340m/s}{2}

我们只要测出公式中T所用的时间,即可得到距离。

硬件接线

为了方便捕获SIG信号高脉冲的宽度,为使用芯片的TIMER2的通道3作为输入捕获口。此通道对应的是PA3这个IO口。如下图所示:

功能实现思路 

  1. 发送出发信号到SIG引脚
    配置PA3推挽输出口,并拉高10us的高电平
  2. 接收SIG引脚并检测高电平时间
    配置PA3为悬浮输入并将TIMER2配置为在通道3启用输入捕获模式。然后,先后捕获上升沿及下降沿时的时间点。通过这两个参数,即可计算得到超声波往返点时间。
  3. 通过得到时间后,套用物理公式即可得到转换后的距离
  4. 得到距离数据后,即可将数值显示到OLED上,实现动态测距

 main.c代码

#include "config.h"
#include "delay.h"
#include "ultrasonic.h"
#include "oled.h"#define LED_GPIO_PORT       GPIOD
#define LED_PIN  			GPIO_PIN_4#define BUTTON_GPIO_PORT    GPIOD
#define BUTTON_PIN  		GPIO_PIN_3static void init_gpio()
{GPIO_Init(LED_GPIO_PORT, LED_PIN, GPIO_MODE_OUT_PP_LOW_FAST);GPIO_Init(BUTTON_GPIO_PORT, BUTTON_PIN, GPIO_MODE_IN_PU_NO_IT); OLED_Init();   
}
void set_screen_color_and_display(uint8_t cfg)
{// BIT0作为屏幕颜色控制  0: 正常显示, 1: 反色显示OLED_ColorTurn(cfg & 0x01);// BIT1作为屏幕颜色控制  0: 正常显示   1: 屏幕翻转显示  OLED_DisplayTurn((cfg >> 1) & 0x01);
}void main(void)
{static uint8_t testBuffer[32] = {0};static uint8_t k = 0;bool isKeyDown = FALSE;uint8_t screenCfg = 0;uint8_t t = ' ';uint32_t range = 0;disable_interrupts();for (uint16_t i = 0; i < sizeof(testBuffer); i++){testBuffer[i] = i;}enable_interrupts();LOG("Startup...\r\nss");DUMP(testBuffer,sizeof(testBuffer));init_gpio();OLED_ColorTurn(0);//0正常显示,1 反色显示OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示  while (1){             GPIO_WriteReverse(LED_GPIO_PORT,LED_PIN);isKeyDown = GPIO_ReadInputPin(BUTTON_GPIO_PORT,BUTTON_PIN) == RESET;range = ultrasonic_get_range_in_centimeters();LOG("<OLED Test> app_sdcc == %u key %s , range == %lu cm\r\n",k++, isKeyDown ? "down" : "up",range);if (isKeyDown == TRUE){if (++screenCfg > 3){screenCfg = 0;}set_screen_color_and_display(screenCfg);OLED_Clear();       }OLED_ShowString(25,0,"Pegasus Board",8);OLED_ShowString(35,2,"2023/09/20",8);OLED_ShowString(20,4,isKeyDown ? "Button Down" : "Button Up  ",8);OLED_ShowNum(90,4,range,3,8);OLED_ShowString(108,4," cm",8);  OLED_ShowString(0,6,"ASCII:",8);  OLED_ShowString(63,6,"CODE:",8);OLED_ShowChar(48,6,t,8);t++;if(t>'~')t=' ';OLED_ShowNum(103,6,t,3,8);   delay(500);}
} #ifdef USE_FULL_ASSERT/*** @brief  Reports the name of the source file and the source line number*   where the assert_param error has occurred.* @param file: pointer to the source file name* @param line: assert_param error line source number* @retval None*/
void assert_failed(uint8_t* file, uint32_t line)
{ /* User can add his own implementation to report the file name and line number,ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */LOG("Wrong parameters value: file %s on line %d\r\n", file, line);	/* Infinite loop */while (1){}
}
#endif

运行效果

让Pegasus天马座开发板实现超声波测距

工程分享

工程下载路径

    

http://www.yayakq.cn/news/237587/

相关文章:

  • 怎么才能搜索到自己做的网站wordpress给tag增加字段
  • 做企业网站多企业网址一般怎么设置
  • wordpress安装在windows上长春seo代理
  • 网站增值服务网页搜索能力属于什么素养
  • 国外ps设计图网站企业网络工程建设方案
  • 茂南手机网站建设公司江苏网站建设推广
  • 云南省建设厅专家注册网站外国游戏概念设计网站
  • 手机网站页面大小广州棋牌软件开发公司
  • 做网站用什么平台小程序科技有限公司
  • 建个什么网站吗吉安工商注册官方网站
  • 上海南建设培训执业中心网站申请电子邮箱免费注册
  • 网站推广软文引擎搜索对人类记忆的影响
  • 成都航空公司官方网站tp网站建设开源代码
  • 成立一个网站需要多少钱html模板网站模板下载
  • 中学生做的网站广西南宁建设银行最新招聘网站
  • 官网网站建设公司wordpress 读取数据库配置文件
  • jsp做的网站带数据库电子商务和网络营销的区别
  • 河南做酒店网络系统网站wordpress 相册浏览
  • 阿里云可以做几个网站重庆市建设工程信息网成绩查询
  • 域名如何解析别人网站有没有专门招代理的网站
  • 做胃肠科医院网站费用python做网站方便么
  • 网站联系方式要素seo排名培训
  • 建设银行纪检监察网站租赁服务器做电影网站
  • 凌源网站优化电商网页美工设计
  • 仓库管理系统网站建设电子商务网站建设的技术综述
  • 无锡建设银行网站即墨市网站建设
  • 如何登录中国建设银行河北分行网站山东网站建设排行榜
  • 岳阳网站平台设计学做网站需要买什么书
  • 电子商务网站建设模块注册的空间网站
  • 成都建设网站首页中文网站开发工具