"""
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Morse Code SOS with Raspberry Pi Pico and MicroPython ┃
┃ ┃
┃ This script demonstrates how to use a Raspberry Pi Pico ┃
┃ to display the SOS Morse code using an LED connected to ┃
┃ GPIO 25. The Morse code pattern will repeat every 5 ┃
┃ seconds. ┃
┃ ┃
┃ Copyright (c) 2023 Anderson Costa ┃
┃ GitHub: github.com/arcostasi ┃
┃ License: MIT ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
"""
# Morse Code patterns for SOS
data = [
(3, 150), # 3 short blinks
(3, 450), # 3 long blinks
(3, 130) # 3 short blinks
]
# Function to control the LED
def signal(blinks, duration):
for i in range(blinks):
led.value(1) # Turn on the LED (HIGH)
utime.sleep_ms(duration)
led.value(0) # Turn off the LED (LOW)
utime.sleep_ms(duration)
# Configure pin 8 as output
led = machine.Pin(8, machine.Pin.OUT)
# Main loop
while True:
for blinks, duration in data:
signal(blinks, duration)
utime.sleep_ms(1000) # Interval between Morse code parts
utime.sleep_ms(4000) # 4-second interval before repeating Morse code (1000 ms already considered in the loop above)
pico:GP0
pico:GP1
pico:GND.1
pico:GP2
pico:GP3
pico:GP4
pico:GP5
pico:GND.2
pico:GP6
pico:GP7
pico:GP8
pico:GP9
pico:GND.3
pico:GP10
pico:GP11
pico:GP12
pico:GP13
pico:GND.4
pico:GP14
pico:GP15
pico:GP16
pico:GP17
pico:GND.5
pico:GP18
pico:GP19
pico:GP20
pico:GP21
pico:GND.6
pico:GP22
pico:RUN
pico:GP26
pico:GP27
pico:GND.7
pico:GP28
pico:ADC_VREF
pico:3V3
pico:3V3_EN
pico:GND.8
pico:VSYS
pico:VBUS
r2:1
r2:2
bz1:1
bz1:2
led1:A
led1:C