4

I was following this tutorial on connecting an external LED to a Pico W, but I've had no luck getting it to work.

This is the code I've been using:

import machine
from machine import Pin, Timer
timer = Timer()

led = Pin("LED", Pin.OUT)

def blink(timer): led.toggle()

timer.init(freq = 1, mode = Timer.PERIODIC, callback = blink)

Here's a picture of what I have on the breadboard: [

I've tried swapping out the resistor, the LED, the jumpers, and trying all of the GPIO pins 7-15. Forgive the lousy soldering job, I'm quite new at this. My hunch is that the header pins aren't quite on there right, but want to know if there's something else I'm missing. Appreciate any help or ideas.

3 Answers3

5

Your LED is wired to the GP13. So try Pin(13, Pin.OUT) instead of Pin("LED", Pin.OUT) GP13

Mert Aksoy
  • 176
  • 4
3

Question

The OP follows this blink LED tutorial but has no luck. How to debug his code?


Answer

Update 2022dec30hkt1534 - Part 3 Concurrently blink 2 Leds Appendix F, G


Part 1 - Try to first blink the onboard LED to make sure the basic pico W hardware/software setup is working OK. If blinking onboard OK, then we can move on checking an external LED connected to a GPIO pin (Appendix A).


Part 2 - Blink GPIO Pin 15 Led

Now that basic Pico hardware/software looks OK, next step is to blink GPIO pin 15 Led. (Appendix C, D)


Appendxi A - Rpi Pico W pinout

picow pinout


Appendix B - Blinking onboard LED

(1) For Pico W, the pin number for on board Led is "WL_GPIO0".

Yes, no longer number 25 for Pico.

(2) The following program blinks onboard LED. The correct statement to initialize the Led should be:

LED = Pin("WL_GPIO0", Pin.OUT)

Update: The following also looks OK:

LED = Pin("LED", Pin.OUT)

There is some confusion here: the first LED is an object, the second is the pin number for the onboard pin (same of WL+GPIO0) (Appendix H)

(3) Full listing of the folly debugged program:


# Name      - Rpi Pico W onboard LED v4.3  tlfong01  2022dec29hkt1502
# Function  - Blink onboard LED
# References -
#   (1) Blink onboard LED  https://projects.raspberrypi.org/en/projects/getting-started-with-the-pico/5
#   (2) Onboard LED pinout https://core-electronics.com.au/guides/raspberry-pi-pico/raspberry-pi-pico-w-overview-features-specs/

import machine from machine import Pin, Timer timer = Timer()

LED = Pin("WL_GPIO0", Pin.OUT)

def blink(timer): LED.toggle()

timer.init(freq = 1, mode = Timer.PERIODIC, callback = blink)


Appendix C - Blink GPIO Pin 15 Led

# Rpi Pico W Blink GPIO 15 LED v8.0  tlfong01  2022dec29hkt2022

*** Import modules ***

import machine from machine import Pin, Timer

*** Create objects ***

timer02 = Timer() gp15LedPin = Pin(15, Pin.OUT)

*** Define functions ***

def blinkGp15Led(dummy): gp15LedPin.toggle() return

*** Blink GP15 Led ***

timer02.init(freq = 2, mode = Timer.PERIODIC, callback = blinkGp15Led)

*** End of program ***


Appendix D - Blink GPIO Pin 15

enter Blink GPIO Pin 15


Appendix E - Pico W GPIO LED Blink

https://youtu.be/IhIeiG9_RWg


Appendix F - PicoW Concurrently Blink 2 LEDs

https://youtu.be/60gnZ8px3vg


picow blink 2 leds


Appendix G - PicoW Concurrently Blink 2 LEDs Complete Program Listing

# Pico W Concurrently Blink Two LEDs - tlfong01 2022dec30hkt1350

*** Modules ***

import machine from machine import Pin, Timer

*** Objects ***

redTimer = Timer() redLed = Pin(15, Pin.OUT)

greenTimer = Timer() greenLed = Pin(0, Pin.OUT)

*** Callback Functions ***

def blinkRedLed(dummy): redLed.toggle() return

def blinkGreenLed(dummy): greenLed.toggle() return

*** Main Functions***

redTimer.init(freq = 2, mode = Timer.PERIODIC, callback = blinkRedLed) greenTimer.init(freq = 4, mode = Timer.PERIODIC, callback = blinkGreenLed)

*** End of program ***


Appendix H - "LED" as pin number for onboard LED pin

The following code works OK.

# Name      - Rpi Pico W onboard LED v4.3  tlfong01  2022dec29hkt1502
# Function  - Blink onboard LED
# References -
#   (1) Blink onboard LED  https://projects.raspberrypi.org/en/projects/getting-started-with-the-pico/5
#   (2) Onboard LED pinout https://core-electronics.com.au/guides/raspberry-pi-pico/raspberry-pi-pico-w-overview-features-specs/

import machine from machine import Pin, Timer timer = Timer()

#LED = Pin("WL_GPIO0", Pin.OUT) LED = Pin("LED", Pin.OUT)

def blink(timer): LED.toggle()

timer.init(freq = 2, mode = Timer.PERIODIC, callback = blink)

tlfong01
  • 4,847
  • 3
  • 12
  • 24
2

A 10k resistor will not make the led light up! 10k is way to high!

Change it to a 100 ohm resistor if you have a red LED.

MatsK
  • 2,882
  • 3
  • 17
  • 22