使用proteus仿真STM32超声波SRF04测距!Code+Proteus

本贴使用Proteus8.10,如低版本打不开可自行根据原理图绘制(很简单)
单片机型号为:stm32f103系列
使用timer3。运行稳定,示数距离有偏差,可在源程序处更改。
如有问题,评论区留言,看到回~

在这里插入图片描述
在这里插入图片描述

#include "sys.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "timer.h"
int main(void)
{
    float SRF04_Value = 123.45;
    uint8_t adcxxx[3] = {0, 0, 0};
    HAL_Init();                             
    Stm32_Clock_Init(RCC_PLL_MUL9);   
    delay_init(72);                              
    LCD_init();                                       
    SRF04_init();
    TIM3_Init(1000-1, 72-1);           
    while(1)
    {
        SRF04_Value = Hcsr04GetLength();
        adcxxx[0] = (uint16_t)SRF04_Value / 100 + 48;
        adcxxx[1] = (uint16_t)SRF04_Value % 100 / 10 + 48;
        adcxxx[2] = (uint16_t)SRF04_Value % 100 % 10 + 48;
        LCD_write_string(1, 0, "Distance:");
        LCD_write_string(11, 0, (char*)adcxxx);           
    }
}

资源下载链接

### SRF04超声波传感器模块电路原理图 SRF04超声波传感器模块主要由超声波发射器、接收器以及控制电路组成。该模块通过一个IO口触发超声波脉冲的发送,另一个IO口用于读取回响信号来判断超声波返回的时间[^4]。 #### 原理说明 当向Trig引脚输入至少10微秒的高电平信号时,模块会自动发出8个40kHz的方波并启动定时器。一旦接收到反射回来的超声波信号,Echo引脚就会输出一个高电平信号,其持续时间为超声波从发射到接收所花费的时间。利用这个时间差可以计算出目标物体的距离: \[ \text{Distance} = \left( \frac{\text{Time}}{2} \right) \times 34300\,(\text{cm/s}) \] 其中34300 cm/s是在空气中传播的速度近似值。 #### 接线方式 - VCC 连接到电源正极 (通常为5V) - GND 连接到电源负极 - Trig 控制端连接至MCU的一个GPIO口作为输出 - Echo 输出端连接至MCU的不同GPIO口作为输入等待中断或轮询检测 以下是简化版的SRF04内部结构框图表示形式: ```plaintext +-------------------+ | | | Control Unit |<---> MCU GPIO (Trig Pin) | | +--------+----------+ | v +--------v----------+ | | | Ultrasonic Transmitter| | | +--------+----------+ | v Air ^ | +--------+----------+ | | | Ultrasonic Receiver| | | +--------+----------+ | v +--------v----------+ | | | Timer/Counter |<---> MCU GPIO (Echo Pin) | | +-------------------+ ``` 对于更具体的PCB布局设计和元件配置细节,则需参照具体的产品手册或者官方提供的资料文档获取完整的电气特性参数表与物理尺寸规格等信息[^1]。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

amusen.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值