[修改] 增加LEd线程

This commit is contained in:
2023-07-02 00:07:40 +08:00
parent 3919b9a91a
commit 20dcf41bf4
3 changed files with 24 additions and 30 deletions

View File

@ -13,23 +13,3 @@ class LED(object):
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED,GPIO.OUT)
try:
while True:
GPIO.output(LED,GPIO.HIGH)
time.sleep(1)
GPIO.output(LED,GPIO.LOW)
time.sleep(1)
except:
print("except")
GPIO.output(LED,GPIO.HIGH)
GPIO.cleanup()
LED_GPIO_RED = 26
def main():
# 128x64 display with hardware SPI:
led = LED.LED(LED_GPIO_RED)
if __name__=='__main__':
main()

View File

@ -1,4 +1,4 @@
import spidev
import spidev
import RPi.GPIO as GPIO
import time
@ -40,7 +40,7 @@ SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL = 0x2A
class SSD1306(object):
"""class for SSD1306 128*64 0.96inch OLED displays."""
def __init__(self,rst,dc,spi):
self.width = 128
self.height = 64
@ -70,7 +70,7 @@ class SSD1306(object):
self.command(SSD1306_DISPLAYOFF) # 0xAE
self.command(SSD1306_SETDISPLAYCLOCKDIV) # 0xD5
self.command(0x80) # the suggested ra tio 0x80
self.command(SSD1306_SETMULTIPLEX) # 0xA8
self.command(0x3F)
self.command(SSD1306_SETDISPLAYOFFSET) # 0xD3
@ -82,7 +82,7 @@ class SSD1306(object):
else:
self.command(0x14)
self.command(SSD1306_MEMORYMODE) # 0x20
self.command(0x00) # 0x0 act like ks0108
self.command(0x00) # 0x0 act like ks0108
self.command(SSD1306_SEGREMAP | 0x1)
self.command(SSD1306_COMSCANDEC)
self.command(SSD1306_SETCOMPINS) # 0xDA
@ -156,7 +156,7 @@ class SSD1306(object):
self.command(contrast)
def dim(self, dim):
"""Adjusts contrast to dim the display if dim is True,
"""Adjusts contrast to dim the display if dim is True,
otherwise sets the contrast to normal brightness if dim is False."""
# Assume dim display.
contrast = 0
@ -166,7 +166,3 @@ class SSD1306(object):
contrast = 0x9F
else:
contrast = 0xCF

20
main.py
View File

@ -9,6 +9,7 @@ import spidev as SPI
import Pioneer600.Led.LED as LED
import Pioneer600.Oled.SSD1306 as SSD1306
from PIL import Image,ImageDraw,ImageFont
import threading
# Raspberry Pi pin configuration:
LED_GPIO_RED = 26
@ -18,16 +19,33 @@ OLED_GPIO_DC = 16
OLED_SPI_BUS = 0
OLED_SPI_CS = 0
# 新线程执行的代码:
def blink_loop(*args, **kwargs):
try:
while True:
GPIO.output(args, GPIO.HIGH)
time.sleep(1)
GPIO.output(args, GPIO.LOW)
time.sleep(1)
except:
print("except")
GPIO.output(args, GPIO.HIGH)
GPIO.cleanup()
def main():
# 128x64 display with hardware SPI:
led = LED.LED(LED_GPIO_RED)
try:
led_blink = threading.Thread(target=blink_loop, name='led_blink', args=(LED_GPIO_RED,))
led_blink.start()
while True:
time.sleep(1)
except:
print("except")
print("Except")
led_blink.join()
if __name__=='__main__':
main()