Changed LED into Class, allowing multiple LEDs per script

This commit is contained in:
2020-11-14 01:03:48 +02:00
parent 8f45a5a387
commit 12a6024c4e

79
LED.py
View File

@@ -1,76 +1,49 @@
from machine import Pin from machine import Pin
from time import sleep from time import sleep
class LED:
"""Define a LED on a defined pin"""
def __init__(self,LEDPin=2):
LEDPin=Pin(2,Pin.OUT) self.LEDPin=Pin(2,Pin.OUT)
print ("New LED defined on Pin %s"%LEDPin)
def Blink(self,number,timeon=0.2,timeoff=0.2):
"""Blinks the LED (number) times, (timeon) and (timeoff) are self explanatory"""
for x in range (number):
self.LEDPin.off()
sleep(timeon) sleep(timeon)
def Blink(number,timeon=0.2,timeoff=0.2): self.LEDPin.on()
sleep(timeoff) sleep(timeoff)
n=0
while n<number: def Pulse(self,seconds,Speed=1):
"""Helper function for Morse Code"""
self.LEDPin.off()
sleep(seconds) sleep(seconds)
self.LEDPin.on()
sleep (0.1*Speed) sleep (0.1*Speed)
LEDPin.on() def Morse(self,text,Speed=1):
"""Blinks (text) in morse code. Speed is around 60 cpm at 1 and proportional"""
Speed=1/Speed Speed=1/Speed
Dot=0.1*Speed Dot=0.1*Speed
Dash=0.3*Speed Dash=0.3*Speed
SpaceInLetter=0.1*Speed SpaceInLetter=0.1*Speed
SpaceBetweenLetters=0.3*Speed SpaceBetweenLetters=0.3*Speed
Space=0.7*Speed Space=0.7*Speed
alphabet={' ':' ','a':'.-','b':'-...','c':'-.-.','d':'-..','e':'.','f':'..-.','g':'--.',
def Pulse(seconds,Speed): 'h':'....','i':'..','j':'.---','k':'-.-','l':'.-..','m':'--','n':'-.','o':'---',
'p':'.--.','q':'--.-','r':'.-.','s':'...','t':'-','u':'..-','v':'...-','w':'.--',
LEDPin.off() 'x':'-..-','y':'-.--','z':'--..','1':'.----','2':'..---','3':'...--','4':'....-',
'5':'.....','6':'-....','7':'--...','8':'---..','9':'----.','0':'-----',
sleep(seconds) '.':'.-.-.-',}
LEDPin.on()
sleep (0.1*Speed)
def Morse(text,Speed=1):
Speed=1/Speed
Dot=0.1*Speed
Dash=0.3*Speed
SpaceInLetter=0.1*Speed
SpaceBetweenLetters=0.3*Speed
Space=0.7*Speed
alphabet={' ':' ',
'a':'.-',
'b':'-...',
'c':'-.-.',
'd':'-..',
'e':'.',
print ("morsing %s"%text) print ("morsing %s"%text)
for c in text: for c in text:
for m in alphabet[c.lower()]: for m in alphabet[c.lower()]:
if m == '.': if m == '.':
'h':'....', self.Pulse(Dot,Speed)
if m == '-': if m == '-':
'i':'..', self.Pulse(Dash,Speed)
if m == ' ': if m == ' ':
sleep(Space) sleep(Space)
sleep(SpaceBetweenLetters) sleep(SpaceBetweenLetters)