# Project objective: To test a passive buzzer to play an alarm sound at one second interval
#
# Hardware and connections used:
# Passive buzzer GND to Raspberry Pi Pico GND
# Passive buzzer + Pin to GPIO Pin 15
#
# Programmer: Adrian Josele G. Quional
# if passive buzzer is used, import the Speaker class from picozero
from picozero import Speaker
from time import sleep
import machine
from machine import Pin
# creating a Speaker object
speaker = Speaker(15)
redled = Pin(16, mode=Pin.OUT) # enable GP16 as output to drive the LED
greenled = Pin(17, mode=Pin.OUT)
def test(timer1):
print("Test print timer1")
redled.toggle()
def test2(timer2):
print("Test print timer2")
greenled.toggle()
#tim = machine.Timer(0) # create a timer object using timer 3
#tim.init(mode=Timer.PERIODIC) # initialize it in periodic mode
#tim_ch = tim.channel(Timer.A, freq=5) # configure channel A at a frequency of 5Hz
#tim_ch.irq(handler=lambda t:led.toggle(), trigger=Timer.TIMEOUT) # toggle a LED on every cycle of the timer
timer1 = machine.Timer()
delta_time = 500 # Time in milliseconds
timer1.init(period=delta_time, mode=machine.Timer.PERIODIC, callback=test)
timer2 = machine.Timer()
delta_time = 1000 # Time in milliseconds
timer2.init(period=delta_time, mode=machine.Timer.PERIODIC, callback=test2)
# continuously beep at 1 sec interval while the board has power
# note: a passive buzzer can also be used to play different tones
while True:
speaker.on()
sleep(1)
speaker.off()
sleep(1)