您好,登錄后才能下訂單哦!
在做畢業設計的過程中,想對多個傳感器讓他們同時并發執行。之前想到
light_red()
light_blue()
分別在兩個shell腳本中同時運行,但是這樣太麻煩了。后來學到了Python多線程,讓程序并發執行。
下面具體介紹步驟:
兩個led燈,一個藍燈,一個紅燈
藍燈正極接13,負極接14
紅燈正極接12,負極接14
下面是代碼:
#!/usr/bin/python # -*- coding: UTF-8 -*- import RPi.GPIO as GPIO import threading import time class led_blue(threading.Thread): #繼承父類threading.Thread def __init__(self, threadID, name, counter): threading.Thread.__init__(self) self.threadID = threadID self.name = name self.counter = counter def run(self): #把要執行的代碼寫到run函數里面 線程在創建后會直接運行run函數 print "Starting " + self.name led_blue_on() print "Exiting " + self.name class led_red (threading.Thread): #繼承父類threading.Thread def __init__(self, threadID, name, counter): threading.Thread.__init__(self) self.threadID = threadID self.name = name self.counter = counter def run(self): #把要執行的代碼寫到run函數里面 線程在創建后會直接運行run函數 print "Starting " + self.name led_red_on() print "Exiting " + self.name def led_blue_on(): PIN_NO=13 GPIO.setmode(GPIO.BOARD) GPIO.setup(PIN_NO, GPIO.OUT) GPIO.output(PIN_NO,GPIO.HIGH) def led_red_on(): PIN=12 GPIO.setmode(GPIO.BOARD) GPIO.setup(PIN, GPIO.OUT) GPIO.output(PIN,GPIO.HIGH) # 創建新線程 thread1 = led_blue(1, "light_blue_on_on", 1) thread2 = led_red(2, "light_red_on", 2) # 開啟線程 thread1.start() thread2.start() print "Exiting Main Thread" time.sleep(20) GPIO.cleanup()
效果圖,像素很渣:
以上這篇python多線程并發讓兩個LED同時亮的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。