Tutorial Digital IO

From Sketching with Hardware at LMU Wiki
Jump to navigation Jump to search

Digital Input and Output with MicroPyton and ESP32/ESP8266

In this part of the tutorial, we explain how to control digital outputs and how to read digital inputs using MicroPyton on ESP32/ESP8266. This includes switching the state of the GPIOs (general purpose input output) and also how to create a pulse width modulation output for changing the brightness of an LED or for controlling a servo.

Success criteria

  • you can set a GPIO pin to on or off from the python prompt
  • you can write a loop to blink an external LED
  • you can use pulse width modulation to control the intensity of an LED
  • you can use pulse width modulation to control a servo that can be directly driven from the ESP Module
  • you can read in the status of a GPIO
  • you can connect a switch or a push-button and read its status into a variable

Related Components

The components are related to the LMUBox. For more components, see the Hardware List. Many of the pages on actuators and sensors include additional examples.

Microcontroller

Actuators

Sensors (and physical controllers)

Instructional Videos

The videos are a first test... the ones marked with ** will be replaced over the next months with new versions.

If you use the ESP8266_D1_Mini have a look at this file about which Pins to use: https://micropython-on-wemos-d1-mini.readthedocs.io/en/latest/basics.html


Digital Output: Adding an external LED to the controller

In this video on youtube (30:30) we show how to connect an LED and how to control it from MicroPython: https://youtu.be/0KGgYsEZcZM


Here is a short video of how to connect and control an LED on the ESP8266_D1_Mini.


If you use the ESP8266_D1_Mini have a look at this file about which Pins to use: https://micropython-on-wemos-d1-mini.readthedocs.io/en/latest/basics.html

Digital Output: Connectin an external LED (old version using WebREPL **)

In this video on youtube (16:54) we show how to connect an LED and how to control it from MicroPython: https://youtu.be/G6HZ1etMRbM


PWM Output: connecting a servo and and LED

In this video on youtube (45:39) we explain the concept of pulse width modulation (PWM) and how to program it in MicrpPython. We show how to use PWM to control a servo and the brightness of an LED: https://youtu.be/XovIHYo7s1A


PWM Output: connecting a servo (old version using WebREPL **, 14:40)

PWM Output: creating sounds

In this video on youtube (23:56) we explain how to create a sound on a digital output pin. We have two versions, one with the sleep function and one with pulse width modulation (PWM) in MicrpPython. We also show how to add an PAM8403_Stereo_Amplifier: https://youtu.be/HPQMvL1SP_c


Digital Input - connecting a switch and a push-button **

In this video on youtube (30:31) we explain how to read in digital inputs in MicrpPython. We show how to connect a switch and a push-button and also explain the basic concept of a pull-up resistor: https://youtu.be/va1beT6sxLs


Here is a short video of how to connect a button and how to read a digital value from the ESP8266_D1_Mini with micropython.