analogWrite()
Descripción
Escribe un valor en un pin analógico (onda PWM). Se puede utilizar para encender un LED con luminosidad variable o accionar un motor a diferentes velocidades. Después de llamar a analogWrite(), el pin va a generar una onda cuadrada constante del ciclo de trabajo especificado hasta la siguiente llamada a analogWrite() (o una llamada a digitalRead() o digitalWrite() en el mismo pin). La frecuencia de la señal PWM en la mayoría de los pines es de aproximadamente 490 Hz. En las placas Uno y similares, los pines 5 y 6 tienen una frecuencia de aproximadamente 980 Hz. Los pines 3 y 11 en el Leonardo también se ejecutan a 980 Hz.
En la mayoría de las placas Arduino (aquellos con los ATmega168 o ATmega328), esta función se puede utilizar en los pines 3, 5, 6, 9, 10, y 11. En el Arduino Mega, funciona en los pines 2 a 13 y 44 a 46. Las placas Arduino más antiguas con un ATmega8 sólo admiten analogWrite() en los pines 9, 10 y 11.
En el Arduino Due analogWrite() funciona en los pines 2 a 13, más en los pines DAC0 y DAC1. A diferencia de los pines PWM, DAC0 y DAC1 son convertidores Digitales a Analógicos, y actúan como verdaderas salidas analógicas.
No es necesario llamar a pinMode() para configurar el pin como salida antes de llamar analogWrite().
La función analogWrite() no tiene nada que ver con los pines analógicos o la función analogRead().
Sintaxis
analogWrite(pin, value)
Parámetros
- pin: el pin a escribir.
- value: el ciclo de trabajo: entre 0 (siemprea apagado) y255 (siempre encendido).
Retornos
- Ninguno
Ejemplo
Establece la salida de un LED para que sea proporcional al valor leido de un potenciómetro.
Hardware Required
Wiring Diagram
This image is created using Fritzing. Click to enlarge image
Arduino Code
For more detailed instruction, see Arduino - Potentiometer fade LED
※ Nota:
- Las salidas PWM generadas en los pines 5 y 6 tendrán ciclos de trabajo más altos de lo esperado. Esto es debido a las interacciones con las funciones millis() y delay(), que comparten el mismo temporizador interno utilizado para generar dichas salidas PWM. Esto se notará sobre todo en entornos de pequeño ciclo de trabajo (por ejemplo 0 - 10) y puede dar lugar a que un valor de 0 apague completamente la salida en los pines 5 y 6.
- The analogRead() and analogWrite() functions do NOT read and write the same thing. analogRead() function reads the analog value which is converted from the voltage. analogWrite() function writes PWM signal. If you use the analogWrite() function first, and then use analogRead() function to read the value on the same pin, the read value is diferent from the wrote value. In other word, analogRead() function uses ADC (Analog to Digital) converter, but analogWrite() function does NOT use DAC (Digital to Analog) converter.
- The analog input pins can be used as digital pins, referred to as A0, A1, etc. The exception is the Arduino Nano, Pro Mini, and Mini's A6 and A7 pins, which can only be used as analog inputs.
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |