Tenemos 6 salidas analógicas en Arduino UNO
Numeradas con la señal PWM o virgulilla ~, tenemos algunos pines digitales que tienen la funcionalidad añadida de comportarse como salidas analógicas (realmente pseudoanalógicas) porque incorporan internamente un conversor digital-analógico, estos pines en Arduino UNO son:
3, 5, 6, 9, 10 y 11
En estos pines podremos utilizar la función analogWrite() para indicar que queremos sacar por uno de esos pines una señal con valores entre 0 y 5 V, lo que significa que con una resolución de salida de 8 bits podemos sacar 2 elevado a 8 (255) valores diferentes escalonados entre 0 y 5 V.
Entonces podemos utilizar una variable entera (int) para almacenar este valor, y adelantando un poco de lenguaje Wiring, podemos también utilizar un valor de tipo binario (ceros y unos precedidos de la letra B) que podría tomar estos valores: B00000000, B00000001, B00000010, B00000011, B00000100,… B11111111 que se corresponderían a los valores enteros: 0, 1, 2, 3, 4,…,255.
Una curiosidad, antes de utilizar la función analogWrite() no es necesario declarar los pines PWM que vamos a utilizar con la función pinMode().
Ejercicio de escritura analógica
Analiza la imagen del circuito de la diapositiva e impleméntalo, necesitarás poco material:
- 1 potenciómetro
- 1 led
- 1 resistencia 220-330 ohm
- 3 cables M-M
Ahora crea el sketch, llámalo “Salidas-analogicas.ino” y responde a estas preguntas:
- ¿Por qué dividimos por 4 en la línea 13 del código?
- ¿Es correcto usar el pin 13?
- ¿Puedes hacer una segunda versión de este sketch que utilice la función map()? (llámalo “Salidas-analogicas2.ino“)