top of page
ENTRADES DIGITALS
Boto1.png

Els sensors digitals proporcionen informació al microcontrolador en forma de senyals digitals d'entrada (0, False quan estan en repós, i 1, True quan estan activats), que en el cas de l'ESP32 corresponen a dos valors de tensió: 0 i 3.3V. 

Tots els GPIO de l'ESP32 es poden utilitzar com a entrades digitals, excepte els 6, 7, 8, 9, 10 i 11 (connectats a la memòria flash). Veure Pinout

EL POLSADOR

El sensor digital més senzill és el polsador. Aquest és un dispositiu mecànic amb un sistema de retorn automàtic.

Quan s'exerceix pressió sobre ell, canvia d'estat. Si deixem d'exercir aquesta pressió, el polsador tornarà a l'estat de repós de manera automàtica.

 

Nosaltres utilitzarem un mòdul polsador KY-004. Feu atenció a la serigrafia dels pins, perquè indica com s'ha de connectar a l'ESP32.

L'exemple utilitza un botó connectat al pin 15 (i un LED connectat al pin 13)

Push-Button-Diagram-Pressed-vs-Not-Pressed.png

  3.3V   

  GPIO  

  GND   

Boto2.png
Boto_C1.PNG
boto_c.jpg
PAUTES DE PROGRAMACIÓ

Per llegir una entrada digital cal:

  • ​Importar la classe Pin de la llibreria (mòdul) machine de MicroPython, que permet interactuar amb els pins

  • ​Crear un objecte Pin, definint el GPIO i configurant-lo com a entrada amb el mètode Pin.IN

  • Desar la lectura del pin en una variable i definir les accions en funció del valor d'aquesta variable​

Som-hi, llegim l'estat d'un polsador connectat a un pin digital (pin 13):

Cal tenir en compte que la majoria de polsadors reboten:  quan els premem i els deixem anar, les parts mecàniques oscil·len i produeixen diverses puntes de pujada i baixada. Per tant, hauriem de separar les lectures com a mínim 200 ms.

debounce-transition.png
ThonnyFons.png

from machine  import  Pin             # importa la classe Pin de la llibreria machine

from time  import  sleep              # importa la classe sleep de la llibreria time

boto  = Pin (13, Pin.IN)              # crea l'objecte Pin que he anomenat boto al pin 13 configurat com a entrada

while True:

    lectura = boto.value ()           # desa el valor de l'entrada digital en la variable lectura

    print (lectura)                   # mostra a la consola el valor de la variable

    sleep (0.2)                       # pausa mínima per evitar els rebots

PROPOSTES
bottom of page