Hemos visto que los pines digitales dan valores de 0 V (bajo, 0, low, apagado) o de 5 V (alto, 1, high, encendido).
En ocasiones no será suficiente con una señal digital (ON/OFF), sino que necesitaremos proporcionar un valor analógico de tensión, por ejemplo, para regular la intensidad de iluminación de un LED, o variar la velocidad de un motor DC.
Para ello, algunos pines digitales de Arduino pueden simular salidas analógicas. Esto se realiza en los pines marcados con el símbolo ~ a través de una técnica denomina modulación de ancho de pulso (PWM).
A estos pines podemos enviarle una señal de 0 a 255 mediante el bloque
En este caso, estamos mandando al pin 3 la señal de 128 (la mitad de 255)
Esto no quiere decir que le mandemos una señal de 2,5 V (la mitad de 5V), sino que se mandan pulsos de manera que la mitad de las veces está encendido (5V) y la otra mitad apagado (0V), pero a pulsos muy rápidos, simulando que enviamos una señal “medioencendida”.
Veamos como funciona. Colocamos un led en el pin 11 y ejecutamos el siguiente programa, en el, el valor brillo comienza tomando valores de 0 hasta 255 y luego desciende de nuevo a 0. Estos valores se le pide que los mande al pin donde está conectado el led.
Este sería el esquema de conexiones:
Y este el programa a ejecutar:
Ver el diseño en Tinkercad 👇