树莓派-传感器篇

前言#

在之前的【树莓派 - 进阶篇】中已经讲解了最简单的红外避障传感器的使用。主线任务还在更新,传感器篇准备讲解下树莓派的常用传感器,实例代码将放在 github 上供大家交流。

超声波测距模块#

HC-SR04超声波测距模块

工作原理#

 1. 采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号

  1. 模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回
  2. 有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离 =(高电平时间 * 声速(340M/S))/2
  3. 本模块使用方法简单,一个控制口发一个 10US 以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开时计时,当此口变为低电平时记录结束时间的值,此时就为此次测距的时间即可算出距离。如此不断的周期测,即可以达到你移动测量的值

接线方式#

将 GND 连接电池的负极,VCC 连接电池正极,TRIG 连接树莓派物理引脚 31,ECHO 连接树莓派物理引脚 33,配合以下代码即可完成测距。

示例代码#

import RPi.GPIO as GPIO
import time
# 设置引脚编码方式
GPIO.setmode(GPIO.BOARD)
# 设置31引脚为输出
GPIO.setup(31, GPIO.OUT)
# 设置31引脚为输入
GPIO.setup(33, GPIO.IN)
# 输出10us的高电平信号
GPIO.output(31, True)
time.sleep(0.00001)  # 10us
GPIO.output(31, False)
# 监听ECHO口输出信息,如果是低电平则忽略,反之记录高电平开始的时间
while GPIO.input(33) == 0:
    pass
start = time.time()
# 如果是高电平则忽略,反之记录高电平结束的时间
while GPIO.input(33) == 1:
    pass
end = time.time()
# 计算距离  
distance = round((end - start) * 343 / 2 * 100)
print(distance)

433MHZ/355MHZ 射频数据传输#

未完,容我续一杯咖啡~

本作品采用《CC 协议》,转载必须注明作者和本文链接
死磕,不要放弃,终将会有所收获。