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()