赞
踩
树莓派科学小实验
001 点亮第一盏LED灯
002 点亮LED灯组
003_开关控制LED灯
004_获取温湿度
005_跑马灯(ws2812b))
006_数字温度传感器(PCF8591,LM393)
007_继电器
008_倾斜传感器、干簧管、震动传感器
倾斜传感器、干簧管、震动传感器 这一类型传感器是一样的数字传感器,可以直接接在树莓派的GPIO端口上来获取高低电平值。
提示:以下是本篇文章正文内容,下面案例可供参考
接口板一块
双色灯模块一个
倾斜传感器
震动传感器
二、接线原理
1) 传感器和双色灯的VCC和GND要共线,VCC供电选择3.3V
2)双色灯的控制线接在18脚上
3)传感器的输出接在17脚上
代码如下(示例):
from gpiozero import LED, Button
import time,datetime
from signal import pause
可以将传感器看做一个开关来定义直接调用gpiozero中的函数就可以了
led = LED(18)
SButton = Button(17)
第一种模式,直接读取传感器的高低电平来显示,通过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 pause led = 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=SS SButton.when_deactivated=SS1 print('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 pause led = 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秒
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。