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

1×Arduino UNO or Genuino UNO
1×Potentiometer
1×LED
1×220 ohm resistor
1×Breadboard
5×Jumper Wires
Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.

Wiring Diagram

Arduino Rotary Potentiometer LED Wiring Diagram

Image is developed using Fritzing. Click to enlarge image

Arduino Code

int ledPin = 3; // LED conectado al pin 3 int analogPin = A0; // potenciómetro conectado al pin analógico A0 int val = 0; // variable para almacenar el valor leido void setup() { pinMode(ledPin, OUTPUT); // configura el pin como salida} } void loop() { val = analogRead(analogPin); // lee el pin de entrada analogWrite(ledPin, val / 4); // analogRead valores desde 0 a1023, analogWrite valores desde 0 a 255 }

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.

Ver También

※ OUR MESSAGES

  • We are AVAILABLE for HIRE. See how to hire us to build your project
  • Any suggestion, correction, and translation? please email us at ArduinoGetStarted@gmail.com, We appreciate it
  • We mainly keep improving the references in English. See English version of this page for the latest update.