树莓派-传感器篇

前言

在之前的【树莓派-进阶篇】中已经讲解了最简单的红外避障传感器的使用。主线任务还在更新,传感器篇准备讲解下树莓派的常用传感器,实例代码将放在 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 协议》,转载必须注明作者和本文链接

死磕渴望的知识,不要放弃,终将会有所收获。

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!