引言
在开始2章节时,我需要给大家补习一点专业知识!这样子我在讲的时候就可以使用专业名词了!
我看很多人都不说为什么引脚这么命名,我来讲讲哈。
引脚解释
trig引脚
trig引脚:触发信号引脚,说白了就是这个引脚能够接收一个触发信号(一般就是一段脉冲序列)这个信号可以被我们使用的模块接收,并根据脉冲的特征完成指定的操作!
例如:我们使用超声波测距模块时
当我们的trig引脚接收到了我们单片机给他发送的正脉冲,他就会开始工作!启动一次测距!
echo引脚
echo引脚叫做回声引脚。
我们观察这张图就可以很明显的看出来,一个测距周期就相当于一次回声!所以厂商将他这么使用。当我们trig引脚接收到一个完整的脉冲后,我们的模块进行一次应答告诉我们的单片机已经准备好开始测距,然后会将echo引脚拉成高电平,直到我们的测距完成后echo将引脚电平再次拉低!
剩下的VCC,GND谁都会接,我就不说了。
计算
我们测出来的其实并不是距离,而是echo引脚被拉高的时间,所以我们在使用时需要计算:
这里的V指的是声波在空气中的传播速度。340m/s
我们发现其实是约等于因为发射与接收之间存在一个夹角,所以就会出现距离障碍物越近夹角越大,越不准确。另外咱们的元件精度有限所以距离过远也会接收不到超声波返回导致测的不准。
HC-SRF05
我们以上分析适用于所有超声波测距模块,而对于编程,我们需要具体的工作值与工作时间参数,所以需要选购分析。
工作电压
对于好多电子元件他们的引脚上就标注了工作电压是多少(丝印上去了已经),但是我们会发现,这款上面只有一个VCC(元件的工作电压,具体多少需要工程师自行查看手册)。所以我们需要去看手册了,而不是直接接上3.3V。
所以我们应该接一个5V引脚。
工作参数
我们说过它如何工作!但是具体一点是什么呢!我们仍然需要看手册哦。
之前有人问我,他的超声波测距模块为什么无法使用,我一看型号我就知道他将别的型号的模块当成这个模块使用了,它使用的型号的超声波测距模块需要的触发时间与我们使用的时间相差很大!所以他的模块完全接收不到正确的启动信号,当然就是用不了呀!
图片我帮你翻译一下: (上面的文字也很有用,推荐你们自己翻译一下,显得咱们有参与感)
逻辑思考
所以当我们自动发送脉冲时开始测距,此时我们在拉高echo引脚的同时就需要打开我们的定时器计时,在我们的echo引脚拉低的同时关闭我我们的定时器计时。这样我们就得到了高低电平持续的时间,从而可以计算出距离。
所以我们需要进行高电平的捕获——打开捕获比较器
在电平变化时打开定时器——从模式中的门模式
从模式(触发模式)
我们的通用定时器打开时,配置的主模式就是对定时器的初始化(什么时候计数,什么时候置为)。而从模式就是我们的定时器仍然有能力在引脚处接收一个新的脉冲信号,但是这个信号也会控制到我们的定时器的计数,开始,置为。。。。因此就出现了一个是这样的表!!!
从模式可以使能,复位,计数,改变判断边沿!
我们只讲一下我们需要的这个门模式。
注意:TI1指的是定时器挂载的引脚,在使用时会出现延迟所以TI1与EN端的不平齐。这个例子是手册上讲的,我们在使用时可以自定义配置响应!!!!!
当引脚变为高电平时,我们的时钟使能端关闭,导致我们的时钟中断不会产生频率,所以CK_PSC消失,所以我们的计数寄存器检测不到时钟边沿变化,所以不会计数。当引脚电平拉低,定时器使能,其他正常工作!!!
捕获模式
说到捕获比较我首先想到定时器上(除基本定时器外都具备)挂载着专属的的通道!
首先我先说一下
IC1PS指的是:输入 捕获 预分频 器1
IC1指的是:输入 捕获 1通道 信号
OC1指的是:输出 捕获 1通道 信号
它的作用是什么呢!简单点说就和名字一样,捕获一段信号。具体如何使用需要查看手册!
一定要会看手册呀,不然别人给你说啥就是啥多冒昧呀。我总结一下:首先我们得选择有效输入端口,配置输入端信号,选择捕获边缘,配置预分频,使能寄存器,中断请求,计数寄存器使能,中断标志位操作 。具体如何操作后面讲!
因此我们会出现两种方式来使用我们的超声波测距模块!