"""
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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)
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT