# digi_io_v18 tlfong01 2021mar11hkt1618
# Piromoni Tiny2040
# *** Contents ***
# 01 Import
# 02 DigiOutput pins
# 03 DigiInput pins
# 04 AnaOutput pins
# 05 AnaInput pins
# *** Import ***
from machine import Pin
import time
# *** Logical/time/repetition variable/constant declarations ***
lowVal = 0
highVal = 1
onVal = lowVal # On board RGB led = Low active
offVal = highVal
highTime = 0.5 # seconds
lowTime = 0.5 # seconds
onTime = lowTime # Led on time
offTime = highTime # Led off time
totalCount = 2 # Repeat twice
# *** Digital output/LED pin configuration ***
# RGB led pin num ***
redLedPinNum = 18
greenLedPinNum = 19
blueLedPinNum = 20
rgbLedPinNumList = [redLedPinNum, greenLedPinNum, blueLedPinNum]
# *** Digital ouput Led pin functions ***
def initDigiOutPinNumList(digiOutPinNumList):
print('Begin initDigiOutPinNumList(), ...')
for digiOutPinNum in digiOutPinNumList:
digiOutPin = Pin(digiOutPinNum, Pin.OUT)
digiOutPin.value(onVal)
time.sleep(onTime)
digiOutPin.value(offVal)
print('End initDigiOutPinNumList().')
return
def initLedPinNumList(ledPinNumList):
print('Begin initLedPinNumList')
initDigiOutPinNumList(ledPinNumList)
print('End initLedPinNumList')
return
def blinkLedPinNumList(ledPinNumList, onTime, offTime, countTotal):
print('Begin blinkLedPinNumList')
# *** Init ***
ledPinList = []
for ledPinNum in ledPinNumList:
ledPin = Pin(ledPinNum, Pin.OUT)
ledPin.value(offVal)
ledPinList.append(ledPin)
#*** Blink ***
for count in range(countTotal):
for ledPin in ledPinList:
ledPin.value(onVal)
time.sleep(onTime)
ledPin.value(offVal)
time.sleep(offTime)
print('End blinkLedPinNumList')
return
def toggleDigiOutPinNumListActiveLow(digiOutPinNumList, lowTime, highTime, countTotal):
print('Begin toggleDigiOutpPinNumList(),...')
# *** Init digiOutPinList ***
digiOutPinList = []
for digiOutPinNum in digiOutPinNumList:
digiOutPin = Pin(digiOutPinNum, Pin.OUT)
digiOutPin.value(offVal)
digiOutPinList.append(digiOutPin)
#*** Toggle ***
for count in range(countTotal):
for digiOutPin in digiOutPinList:
digiOutPin.value(lowVal)
time.sleep(lowTime)
digiOutPin.value(highVal)
time.sleep(highTime)
print('End toggleDigiOutpPinNumList().')
return
def toggleDigiOutPinNumListActiveHigh(digiOutPinNumList, lowTime, highTime, countTotal):
print('Begin toggleDigiOutpPinNumList(),...')
# *** Init digiOutPinList ***
digiOutPinList = []
for digiOutPinNum in digiOutPinNumList:
digiOutPin = Pin(digiOutPinNum, Pin.OUT)
digiOutPin.value(offVal)
digiOutPinList.append(digiOutPin)
#*** Toggle ***
for count in range(countTotal):
for digiOutPin in digiOutPinList:
digiOutPin.value(highVal)
time.sleep(highTime)
digiOutPin.value(lowVal)
time.sleep(lowTime)
print('End toggleDigiOutpPinNumList().')
return
# *** Digital Input Pins ***
# *** Boot/Select button pin config ***
# *** Button state varaibles and constants ***
buttonNotPressed = True
buttonPressed = False
# *** Button config ***
bootSelectPinNum = 23
bootSelectButtonPin = Pin(bootSelectPinNum, Pin.IN, Pin.PULL_DOWN)
def readBootSelectButton():
print('\nBegin readBootSelectButton(),...')
print(' Press and hold 0.5 second Button pin 14 to toggle LED pin 15, <Ctrl F2> to exit program.')
for count in range(10):
print(' count =', count, end = '')
if bootSelectButtonPin.value() == buttonNotPressed:
print(' Button not pressed, ...')
else:
#led.toggle()
print(' Button pressed, ...')
time.sleep(1)
print('End readBootSelectButton(),...')
return
# *** main ***
# *** Toggle Tiny2040 on board RGB Leds ***
toggleDigiOutPinNumListActiveLow([18, 19, 20], 0.25, 0.5, 2)
# *** Toggle Mechanical buzzer at GPIO pin 28) ***
toggleDigiOutPinNumListActiveHigh([28], 0.5, 0.1, 4)
#initLedPinNumList(rgbLedPinNumList)
#readBootSelectButton()
# End ***
# *** Sample Output - tlfong01 2021feb10hkt2043 ***
'''
>>> %Run -c $EDITOR_CONTENT
Begin toggleDigiOutpPinNumList(),...
End toggleDigiOutpPinNumList().
>>>
'''
# *** End of sample output ***
Categories: Uncategorized