top of page
SORTIDES ANALÒGIQUES (PWM)

Un senyal digital de l'ESP32 només pot tenir un valor de 0V o de 3.3V. Permet activar/desactivar un actuador.

Un senyal analògic de sortida pot tenir qualsevol valor entre 0V i 3.3V. Permet controlar la intensitat d'iluminació d'una làmpada, la velocitat de gir d'un motor, el volum d'un so ... 

Però totes les sortides dels microcontroladors són digitals (1 o 0).

Tot i això poden generar sortides pseudoanalògiques, mitjançant una tècnica

anomenada PWM (Pulse Width Modulation, modulació d'ample de pols).

PWM.jpg
SORTIDES ANALÒGIQUES (PWM)

Un senyal digital de l'ESP32 només pot tenir un valor de 0V o de 3.3V. Permet activar/desactivar un actuador.

Un senyal analògic de sortida pot tenir qualsevol valor entre 0V i 3.3V. Permet controlar la intensitat d'iluminació d'una làmpada, la velocitat de gir d'un motor, el volum d'un so ... 

Però totes les sortides dels microcontroladors són digitals (1 o 0).

Tot i això poden generar sortides pseudoanalògiques, mitjançant una tècnica

anomenada PWM (Pulse Width Modulation, modulació d'ample de pols).

PWM.jpg
Conceptes PWM

Pins PWM

La placa té 25 canals (gairebé tots els pins GPIO) de pins PWM controlats pel controlador de modulació d'amplada de pols (PWM). La sortida PWM es pot utilitzar per conduir motors digitals i LED.

El controlador consta de temporitzadors PWM i l'operador PWM. Cada temporitzador proporciona la temporització en forma síncrona o independent, i cada operador PWM genera la forma d'ona per a un canal PWM.

LES SORTIDES ANALÒGIQUES DE L'ESP32

Tots els pins que podem fer servir com a sortides digitals poden treure senyals PWM.

PAUTES DE PROGRAMACIÓ
ESP_EsquemaDigital.png
prohibido
prohibido
prohibido

En un disseny PWM cal:

  • Importar les classes Pin i PWM de la llibreria machine:

       from machine import Pin, PWM

  • Crear l'objecte PWM especificant el núm de pin:

       led = PWM (Pin(23))

  • Especificar la freqüència amb que volem que s'encengui i apagui l'ona quadrada, entre 0 i 7825 Hz. Amb LEDs utilitzem 5000 Hz, la qual cosa provoca un parpelleig que l'ull humà no pot detectar:

       led.freq (5000)

  • Assignar l'ample del pols, entre 0 (0% del cicle de treball, apagat) i 1023 (100% del cicle de treball, lluminositat màxima)

       led.duty (200)

Exemples bàsics. Nivell d'il·luminació d'un LED

Encesa gradual d'un LED

Es tracta de anar augmentant contínuament l'ample del pols (duty) des de 0 (apagat) fins a 1023 (lluminositat màxima)

https://wokwi.com/projects/335890711050191443

from machine import Pin, PWM     # importa les classes Pin i PWM de la llibreria machine

from time import sleep

led = PWM (Pin(23), freq=5000)    # creació de l'objecte PWM anomenat led al pin 23. Com que el duty serà variable, no el definim aquí

 

# bucle que augmenta l'ample del pols de 0 a 1023 pujant 1 a cada bucle, amb un interval de 5 ms entre cada canvi:
for cicle in range (0, 1023, 1):      # augmenta el valor de la variable de 0 a 1023, de 1 en 1
    led.duty (cicle)                         # el valor de duty augmentarà en 1 a cada execució del bucle
    sleep (0.005)                           # pausa de 5 ms abans d'assignar el nou valor a duty

Proposta 1

Fem que un cop encés al màxim, el LED s'apagui gradualment

Proposta 2

Fem-ho continu

LED RGB

Un led RGB (Red, Green, Blue) són tres leds (un vermell, un verd i un blau) encapsulats conjuntament i amb el càtode (-) comú (la pota llarga). Controlant la lluentor de cada led individualment podem aconseguir gairebé qualsevol color de llum que vulguem.

Tingueu present que si no utilitzeu un mòdul LED RGB haureu de calcular i connectar un resistència de protecció per a cada led.

Quan volem representar un color en un programa informàtic, hem de definir les quantitats de vermell, blau i verd que componen aquest color. Aquestes quantitats s'emmagatzemen normalment com un únic byte (8 bits) i, per tant, com un nombre entre 0 i 255.

1658160378597.jpg
RGB.png
RGB1.PNG
Exemple. Llum de color magenta
https://wokwi.com/projects/336278292191511123
Propostes:
1. Llum fluctuant
2. Espelma electrònica
3. Selector de colors
FEM MÚSICA

Aplicant senyals PWM a un brunzidor o un altaveu podem generar tons (notes) musicals, fent-los vibrar a la freqüència de la nota musical que volem que soni. Freqüències de les notes musicals

En aquest cas, l'ample del pols (duty()) determina el volum. Si en necessitem més, podem utilitzar un altaveu amb circuit d'amplificació o un amplificador LM36. A l'apartat Components d'aquest lloc teniu informació.

Exemple. Reproducció d'un to
Propostes:
1. Toca una cançó
2. El sintetitzador
3. Selector de colors
bottom of page