Tutorial Digital IO: Difference between revisions

From Sketching with Hardware at LMU Wiki
Jump to navigation Jump to search
Created page with "= 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 Mic..."
 
No edit summary
 
(15 intermediate revisions by one other user not shown)
Line 9: Line 9:
* you can read in the status of a GPIO  
* 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
* 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 ===
* [[ESP8266 D1 Mini]]
* [[ESP32 Web Kit]] with integrated OLED Display from Heltec
* [[ESP8266 ESP-12F]] NodeMCU Module from AZDelivery
=== Actuators ===
* [[LED]]s in different colors to connect externally
* [[RGB LED]] multi-color LED
* [[LED Ring NeoPixel]]
* [[Piezo Speaker]]
* [[Speaker]]
* [[SG90 Servo]] Micro Servo Motor
* [[Stepper Motor and ULN2003]] 28BYJ-48 ULN2003 5V Stepper Motor + ULN2003 Driver Board
* [[IRF520 Module]] Power MOSFET switching module ('electronic relay')
=== Sensors (and physical controllers) ===
* [[push button]]
* [[Switch]]
* [[PIR Sensor]] passive infrared motion sensor


= Instructional Videos =
= 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 ==
== Digital Output: Adding an external LED to the controller ==
Line 17: Line 45:
<youtube>0KGgYsEZcZM</youtube>
<youtube>0KGgYsEZcZM</youtube>


Here is a short video of how to connect and control an LED on the [[ESP8266_D1_Mini]].
<youtube>GHE5A0WT5AE</youtube>
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 **) ==
== Digital Output: Connectin an external LED (old version using WebREPL **) ==
Line 24: Line 59:




== PWM Output: connecting a servo (old version using WebREPL **) ==
== PWM Output: connecting a servo and and LED ==
In this video on youtube (14:40) we explain the concept of pulse width modulation (PWM) and how to program it in MicrpPython. We show how to use PWM to controll a servo: https://youtu.be/_4bXk8JjQSk
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
 
<youtube>XovIHYo7s1A</youtube>
 
 
== PWM Output: connecting a servo (old version using WebREPL **, 14:40) ==


<youtube>_4bXk8JjQSk</youtube>
<youtube>_4bXk8JjQSk</youtube>
== 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
<youtube>HPQMvL1SP_c</youtube>




Line 34: Line 79:


<youtube>va1beT6sxLs</youtube>
<youtube>va1beT6sxLs</youtube>
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]].
<youtube>Cb_nYYs-pag</youtube>
[[Category:Tutorials]]

Latest revision as of 16:11, 12 June 2024

Digital Input and Output with MicroPyton and ESP32/ESP8266[edit]

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[edit]

  • 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[edit]

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[edit]

Actuators[edit]

Sensors (and physical controllers)[edit]

Instructional Videos[edit]

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[edit]

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 **)[edit]

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[edit]

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)[edit]

PWM Output: creating sounds[edit]

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 **[edit]

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.