树莓派 | threading01 - 创建两个子线程同时运行,两个线程各负责控制一个LED灯以不同的频率闪烁
文章目录
- 一、前言
- 二、代码
- 三、运行
一、前言
Python | threading01 - 创建两个同时运行的子线程
上一次使用了python的多线程库threading创建了两个同时运行的子线程。在树莓派上用threading创建两个子线程同时运行,两个线程各负责控制一个LED灯以不同的频率闪烁。
二、代码
# python3.9
import time
import threading
import RPi.GPIO as GPIOdef thread1():"""线程1控制黄色LED灯,以0.5秒的时间间隔闪烁"""GPIO.setup(20,GPIO.OUT) # 设置GPIO20为输出GPIO.output(20,GPIO.LOW) # GPIO20输出低电平while True:# 打印信息,并打印性能计数器的值print("I am thread1,time is %f" % time.perf_counter())GPIO.output(20,GPIO.HIGH) # GPIO20输出高电平time.sleep(0.5) # 休眠0.5秒GPIO.output(20,GPIO.LOW) # GPIO20输出低电平time.sleep(0.5) # 休眠0.5秒def thread2():"""线程2控制红色LED灯,以0.5秒的时间间隔闪烁"""GPIO.setup(21,GPIO.OUT) # 设置GPIO21为输出GPIO.output(21,GPIO.LOW) # GPIO21输出低电平 while True:# 打印信息,并打印性能计数器的值print("I am thread2,time is %f" % time.perf_counter())GPIO.output(21,GPIO.HIGH) # GPIO21输出高电平time.sleep(0.3) # 休眠0.3秒GPIO.output(21,GPIO.LOW) # GPIO21输出低电平time.sleep(0.3) # 休眠0.3秒def main():"""主线程"""GPIO.setwarnings(False) # 关闭警告GPIO.setmode(GPIO.BCM) # BCM modet1 = threading.Thread(target=thread1,name="fun_thread1",daemon=True) # 创建thread1线程t2 = threading.Thread(target=thread2,name="fun_thread2",daemon=True) # 创建thread2线程t1.start() # 启动thread1线程t2.start() # 启动thread2线程print("t1的线程名字是 %s" % t1.getName()) # 打印t1线程的线程名字print("t2的线程名字是 %s" % t2.getName()) # 打印t2线程的线程名字t1.join() # 当前需要等待线程t1执行完毕后才能运行下一步t2.join() # 当前需要等待线程t2执行完毕后才能运行下一步GPIO.cleanup() # 清除GPIO的设置print("主线程执行完毕!")if __name__ == "__main__":main()
三、运行
在树莓派上运行代码:
树莓派 | threading01 - 创建两个子线程同时运行,两个线程各负责控制一个LED灯以不同的频率闪烁相关推荐
- 【归档】证明V的两个子空间的并是V的子空间当且仅当其中一个子空间包含另一个子空间
Note: 旧的wordpress博客弃用,于是将以前的笔记搬运回来. Question: Prove that the union of two subspaces of V V V is a su ...
- 实例2:树莓派GPIO控制外部LED灯闪烁
实例2:树莓派GPIO控制外部LED灯闪烁 实验目的 通过背景知识学习,了解四足机器人mini pupper搭载的微型控制计算机:树莓派. 通过树莓派GPIO操作的学习,熟悉GPIO的读写控制. 通过 ...
- 树莓派GPIO入门(一):点亮一个LED灯
一.实验要求 点亮一个LED灯是电子开发最常见的入门实验.本次实验分为三个小实验: (1)点亮单个LED灯,并让其亮暗闪烁 (2)通过脉宽调制(PWM)点亮单个LED灯,并让其亮暗闪烁 (3)让LED ...
- 观察多个线程同时运行|| 查看进程线程的方法——未完待续
观察多个线程同时运行:主要是理解,交替执行,谁先谁后,不由我们控制 查看进程线程的方法
- 【树莓派学习笔记】三、点亮一个LED灯(C语言 - WiringPi、Python - RPi.GPIO/GPIO Zero、bash脚本)
目录 C语言 WiringPi Python RPi.GPIO GPIO Zero bash脚本 平台:树莓派3B 版本: 2021-05-07-raspios-buster-armhf 若GPIO输 ...
- [树莓派 PICO(基于MicroPython)]基础教程02-按键测试、按键控制外设LED开关
最近入手了pico学习. 目录 〇.总的参考 一.函数说明 二.硬件准备 三.程序-按键测试.按键控制外设LED开关 1.按键测试 2.按键控制外设LED开关 四.可能出现的问题 〇.总的参考 ①视频 ...
- 树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)
若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...
- 第5章 用树莓派点亮LED灯
用树莓派点亮一个LED灯是非常简单的事情,但却非常重要,是利用GPIO控制外部硬件设备的基础,机器人的大部分功能都可以通过操纵GPIO来实现的.换句话说,能控制一个LED灯,就能让机器人动起来.本章将 ...
- Python | threading01 - 创建两个同时运行的子线程
文章目录 一.前言 二.创建两个同时运行的线程 2.1.代码 2.2.运行 三.threading库的函数 3.1.threading.Thread() 3.2.threading.join() 3. ...
最新文章
- 拍拍信微服务网关实践分享
- MongoDB 基础用法及学习笔记
- 仿windows关机对话框的提示框效果
- VMware NAT模式
- JAVA集合(笔记)
- 选址问题java_学习使用分治算法来解决邮局选址问题(Java实现)
- ubuntu 修改旋转屏幕显示方向 恢复正常模式
- 基于TableStore的物联网元数据管理
- 刚刚!6月榜单:JS跌惨,Python又霸榜,C++再无翻身可能!
- Map Reduce和流处理
- Java动态绑定与多态
- 模拟幅度调制系统抗干扰性能仿真分析[模板]
- sql 怎么获取系统时间
- java贪吃蛇_Java贪吃蛇游戏完善版
- java 多线程数组越界_越界java数组
- 您应该学习SwiftUI,UIKit还是同时学习两者?
- 【neon加速拆分/合并交叉数据】使用neon intrinsics加速合并/拆分uv的内存分布(交叉存储/分别存储)
- Go的Negroni库
- Linux设置防火墙
- 实例化对象是什么意思,什么是实例化,什么是对象。多态性