LEDs and NeoPixel
Introduction
The ESP32 has 2 LEDs on board. The first one indicates power while the second one is user programmable. The user programmable built-in LED is connected to GPIO pin 2.
You can see the LEDs in the far left, bottom corner. The power LED is marked "ON" while the user programmable one is marked "L".
The NeoPixel is based on the WS2812 addressable RGB LED which is often used in LED chains. In our case we have 6 LEDs arranged in a ring with a 7th on placed in the center of the ring.
Again the LEDs are accessible, this time through a dedicate serial protocol, on a GPIO line. For the board we are using the GPIO line can be selected with solder jumpers.
Exercise 1: Switching the user LED with REPL
It is actually very easy to access the LED because all you need is already available in MicroPython. Just look it up at
https://docs.micropython.org/en/latest/esp32/quickref.html#pins-and-gpio 
and try the example using GPIO pin 2. Don't write a script just yet but switch the LED on and of with REPL
Exercise 2: The Embedded System's Hello World Program: The blinking LED
Write a script that makes the LED blink at 1 Hz (500ms on, 500 ms off).
Improve the program by capturing <ctrl> c, which stops the endless loop, switching off the LED before exiting the program.
Exercise 3: SOS
Probably the most well known Morse sequence is SOS (Save Our Souls) which consists of 3 long sounds (Morse "S") followed by 3 short ones (Morse "O") again followed by 3 long ones. Make the LED blink the SOS sequence. Pause for 1 s between 2 SOS sequences.
Exercise 4: Change the LED light intensity
The light intensity on the LED can be changed if we do not supply a fixed signal level to it but a frequency. The duty cycle of the signal determines the light intensity. Write a program that increases the intensity in a linear fashion and the decreases it again linearly.
--
Uli Raich - 2020-05-05
Comments