Sep-26-2022, 09:47 PM
Made this timer to go with my son's BattleBots Arena (this one) and intend to build it into the housing of the motorized auger on one side. I got all that hardware figured out, but the code is kinda long. It works, but I just want to see if I can make it simpler.
Here is a video of what I have so far. The duration of the green LED on is going to be changed to a more realistic duration of a fight (line 82). I would watch the video first so you can see what it is doing. The video is this one: here
Here is a video of what I have so far. The duration of the green LED on is going to be changed to a more realistic duration of a fight (line 82). I would watch the video first so you can see what it is doing. The video is this one: here
from machine import Pin, PWM
import time
from time import sleep
#import urequests
ledgreen = Pin(2, Pin.OUT)
ledamber = Pin(5, Pin.OUT)
ledred = Pin(6, Pin.OUT)
buzzerPIN=17
BuzzerObj=PWM(Pin(buzzerPIN))
button = Pin(15, Pin.IN, Pin.PULL_UP)
def buzzer(buzzerPinObject,frequency,sound_duration,silence_duration):
buzzerPinObject.duty_u16(int(65536*0.2))
buzzerPinObject.freq(frequency)
sleep(sound_duration)
buzzerPinObject.duty_u16(int(65536*0))
sleep(silence_duration)
ledgreen.on()
time.sleep(.1)
ledred.on()
time.sleep(.1)
ledamber.on()
time.sleep(.2)
ledgreen.off()
time.sleep(.1)
ledred.off()
time.sleep(.1)
ledamber.off()
time.sleep(.2)
ledgreen.on()
time.sleep(.1)
ledred.on()
time.sleep(.1)
ledamber.on()
time.sleep(.2)
ledgreen.off()
time.sleep(.1)
ledred.off()
time.sleep(.1)
ledamber.off()
time.sleep(.2)
ledgreen.on()
time.sleep(.1)
ledred.on()
time.sleep(.1)
ledamber.on()
time.sleep(.1)
time.sleep(.2)
ledgreen.off()
time.sleep(.1)
ledred.off()
time.sleep(.1)
ledamber.off()
while True:
if not button.value():
# Start the timer
print('Go!')
ledgreen.off()
ledred.off()
ledamber.on()
buzzer(BuzzerObj,523,0.5,0.0)
ledamber.off()
time.sleep(.2)
ledamber.on()
buzzer(BuzzerObj,523,0.5,0.0)
ledamber.off()
time.sleep(.2)
ledamber.on()
buzzer(BuzzerObj,523,0.5,0.0)
time.sleep(.2)
ledamber.off()
# Match starts
ledgreen.on()
buzzer(BuzzerObj,987,1.5,0.1)
# Start power to the relay here
time.sleep(20)
ledamber.on() # Match ends soon!
time.sleep(5)
#ledgreen.off()
# Match ends
ledamber.on()
buzzer(BuzzerObj,523,0.8,0.0)
ledamber.off()
time.sleep(.2)
ledamber.on()
buzzer(BuzzerObj,523,0.8,0.0)
ledamber.off()
time.sleep(.2)
ledamber.on()
buzzer(BuzzerObj,523,0.8,0.0)
ledamber.off()
time.sleep(.2)
ledamber.on()
buzzer(BuzzerObj,523,0.8,0.0)
ledamber.off()
time.sleep(.2)
ledamber.on()
buzzer(BuzzerObj,523,0.8,0.0)
time.sleep(.2)
#ledamber.on()
ledgreen.off()
ledred.on()
# Stop power to the relay here
buzzer(BuzzerObj,987,3.5,0.1)
#time.sleep(10)
ledamber.off()
time.sleep(5)
ledred.off()
