2.1 Hello, LED!

Just as printing “Hello, world!” is the first step in learning to program, using a program to drive an LED is the traditional introduction to learning physical programming.

Required Components

In this project, we need the following components.

It’s definitely convenient to buy a whole kit, here’s the link:

Name

ITEMS IN THIS KIT

LINK

ESP32 Starter Kit

320+

ESP32 Starter Kit

You can also buy them separately from the links below.

COMPONENT INTRODUCTION

PURCHASE LINK

ESP32 WROOM 32E

BUY

ESP32 Camera Extension

-

Breadboard

BUY

Jumper Wires

BUY

Resistor

BUY

LED

BUY

Available Pins

Here is a list of available pins on the ESP32 board for this project.

Available Pins

IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23

Schematic

../../_images/circuit_2.1_led.png

This circuit works on a simple principle, and the current direction is shown in the figure. The LED will light up after the 220ohm current limiting resistor when pin26 outputs high level. The LED will turn off when pin26 outputs low level.

Wiring

../../_images/2.1_hello_led_bb.png

Run the Code

  1. Open the 2.1_hello_led.py file located in the esp32-starter-kit-main\micropython\codes path, or copy and paste the code into Thonny.

    # Import the necessary libraries
    import machine
    import time
    
    # Set up the LED on pin 26 as an output pin
    led = machine.Pin(26, machine.Pin.OUT)
    
    # Start an infinite loop
    while True:
        # Turn on the LED by setting its value to 1 (HIGH)
        led.value(1)
        # Wait for 1 second (1000 milliseconds) while the LED is on
        time.sleep(1)
    
        # Turn off the LED by setting its value to 0 (LOW)
        led.value(0)
        # Wait for 0.5 seconds (500 milliseconds) while the LED is off
        time.sleep(0.5)
    
  2. Connect the ESP32 WROOM 32E to your computer using a Micro USB cable.

    ../../_images/plugin_esp32.png
  3. Then click on the “MicroPython (ESP32).COMXX” interpreter in the bottom right corner.

    ../../_images/sec_inter.png
  4. Finally, click “Run Current Script” or press F5 to execute it.

    ../../_images/quick_guide2.png
  5. After the code runs, you will see the LED blinking.

How it works?

  1. It imports two modules, machine and time. The machine module provides low-level access to the microcontroller’s hardware, while the time module provides functions for time-related operations.

    import machine
    import time
    
  2. Then set up the pin26 as an output pin using the machine.Pin() function with the machine.Pin.OUT argument.

    led = machine.Pin(26, machine.Pin.OUT)
    
  3. In the While True loop, the LED is turned on for one second by setting the value of the pin26 to 1 using led.value(1) and then set to 0(led.value(0)) to turn it off for one second, and so on in an infinite loop.

    while True:
        # Turn on the LED by setting its value to 1 (HIGH)
        led.value(1)
        # Wait for 1 second (1000 milliseconds) while the LED is on
        time.sleep(1)
    
        # Turn off the LED by setting its value to 0 (LOW)
        led.value(0)
        # Wait for 0.5 seconds (500 milliseconds) while the LED is off
        time.sleep(0.5)
    

Learn More

In this project, we used MicroPython’s machine and time module, we can find more ways to use them here.