'''
Fuente: https://wokwi.com/projects/312236827469677121
'''
from machine import Pin
import time
import rp2
from rp2 import PIO
'''
--CÓDIGO EXTRA--
Para que el buzzer suene en la simulación
No es necesario en la implementación real
Fuente: https://wokwi.com/projects/312236827469677121
'''
@rp2.asm_pio(out_init=[PIO.OUT_LOW])
def echo():
wrap_target()
mov(pins, isr)
mov(isr, invert(isr))
pull(noblock)
mov(x, osr)
mov(y, x)
label("loop")
jmp(y_dec, "loop")
wrap()
sm = rp2.StateMachine(0, echo, freq=1_000_000, out_base=Pin(22))
sm.active(1)
def play(freq):
if freq:
sm.put(1_000_000//freq)
else:
sm.put(0)
#-------------------------
#buzzer = machine.Pin(22, machine.Pin.OUT)
time.sleep(1)
#Prender el buzzer por un segundo
play(500)
print("Buzz")
time.sleep(1)
play(0)
#Sonido del dot del código morse
def dot():
time.sleep(0.25)
play(500)
print(".")
time.sleep(0.25)
play(0)
#Sonido del dash del código morse
def dash():
time.sleep(0.25)
play(500)
print("_")
time.sleep(0.75)
play(0)
#Loop que hace sonar SOS en código morse
while True:
time.sleep(0.25)
dot()
dot()
dot()
time.sleep(0.25)
dash()
dash()
dash()
time.sleep(0.25)
dot()
dot()
dot()
print("\n\n")
time.sleep(0.5)