本文主要是介绍树莓派科学小实验4B--08_倾斜传感器、干簧管、震动传感器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
系列文章目录
树莓派科学小实验
001 点亮第一盏LED灯
002 点亮LED灯组
003_开关控制LED灯
004_获取温湿度
005_跑马灯(ws2812b))
006_数字温度传感器(PCF8591,LM393)
007_继电器
008_倾斜传感器、干簧管、震动传感器
文章目录
- 系列文章目录
- 前言
- 一、实验元件
- 二、代码
- 1.引入库
- 2. 管脚定义
- 3. 实现代码
前言
倾斜传感器、干簧管、震动传感器 这一类型传感器是一样的数字传感器,可以直接接在树莓派的GPIO端口上来获取高低电平值。
提示:以下是本篇文章正文内容,下面案例可供参考
一、实验元件
接口板一块
双色灯模块一个
倾斜传感器
震动传感器
二、接线原理
1) 传感器和双色灯的VCC和GND要共线,VCC供电选择3.3V
2)双色灯的控制线接在18脚上
3)传感器的输出接在17脚上
二、代码
1.引入库
代码如下(示例):
from gpiozero import LED, Button
import time,datetime
from signal import pause
2. 管脚定义
可以将传感器看做一个开关来定义直接调用gpiozero中的函数就可以了
led = LED(18)
SButton = Button(17)
3. 实现代码
第一种模式,直接读取传感器的高低电平来显示,通过pause()函数来实现不退出
# -*- coding: utf-8 -*-
"""倾斜传感器、干簧管、震动传感器实验
#
author = "Derek Tian"
version = '0.0.1'
make day=2/9/2022 6:44 PM
"""
__docformat__ = "restructuredtext en"__all__ = []__license__ = "MIT license"from gpiozero import LED, Button
import time,datetime
from signal import pauseled = LED(18)
SButton = Button(17)def SS():led.on()print(f"{datetime.datetime.now()}:发生倾斜")
def SS1():led.off()print(f"*"*20)if __name__ == '__main__':led.on()#loop()SButton.when_activated=SSSButton.when_deactivated=SS1print('This is Main start')pause()
程序启动
发生倾斜时,LED从绿色变成红色,同时程序有显示
第二种模式,通过循环来读取传感器的状态值
# -*- coding: utf-8 -*-
"""
#类说明文件
author = "Derek Tian"
version = '0.0.1'
make day=2/9/2022 6:44 PM
"""
__docformat__ = "restructuredtext en"__all__ = []__license__ = "MIT license"from gpiozero import LED, Button
import time,datetime
from signal import pauseled = LED(18)
SButton = Button(17)def SS():led.on()print(f"{datetime.datetime.now()}:发生倾斜")
def SS1():led.off()print(f"*"*20)def loop():while True:SBs=SButton.is_active # 获取开关的状态 1 为高电平 ;0为低电平print(f"Sbs:{SBs}")if SBs:led.on()print(f"{datetime.datetime.now()}:发生倾斜")else:led.off()print(f"~"*20)time.sleep(1)if __name__ == '__main__':led.on()loop()
实现的效果是一样的,但是固定延迟1秒
这篇关于树莓派科学小实验4B--08_倾斜传感器、干簧管、震动传感器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!