Arduino analogWrite


Escribe un valor analógico (onda PWM) en un pin. Se puede usar para encender un LED a diferentes niveles de brillo o para conducir un motor a varias velocidades.

oscar Escrito por oscar 24 February 2019 9441 0

analogWrite()

Escribe un valor analógico (onda PWM) en un pin[1]. Se puede usar para encender un LED a diferentes niveles de brillo o para conducir un motor a varias velocidades.

Después de una llamada a analogWrite(), el pin generará una onda cuadrada constante del ciclo de trabajo especificado hasta la próxima 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 los tableros Uno y similares, los pines 5 y 6 tienen una frecuencia de aproximadamente 980 Hz.

En la mayoría de las placas Arduino (aquellas con el ATmega168 o ATmega328P), esta función funciona en los pines 3, 5, 6, 9, 10 y 11. En el Arduino Mega, funciona en los pines 2 - 13 y 44 - 46. Arduino más antiguo Las placas con un soporte ATmega8 solo analogWrite()en los pines 9, 10 y 11.

El Arduino DUE es compatible analogWrite() con los pines 2 a 13, más los pines DAC0 y DAC1. A diferencia de los pines PWM, DAC0 y DAC1 son convertidores de digital a analógico, y actúan como verdaderas salidas analógicas.

No es necesario llamar pinMode() para establecer el pin como una 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

Los parámetros que necesita la función son:

  • pin El pin a escribir, tiene que se uno tipo PWM que se identifica con (~). Valor del pin debe ser int.
  • value El ciclo de trabajo: entre 0 (siempre desactivado) y 255 (siempre activado). Tipos de datos permitidos: int

Retorna

Esta función retorna un parámetro.

Código ejemplo

// Paso 1
int ledPin = 9;
int analogPin = 3;
int val = 0;

// Paso 2
void setup() {
    pinMode(ledPin, OUTPUT);
}

// Paso 3
void loop() {
    val = analogRead(analogPin);
    analogWrite(ledPin, val / 4);
}
  1. Declaramos las variables para el led y el pin análogo que vamos a usar.
  2. Declaramos como salida el pin del led.
  3. Leemos el valor del pin analógico, en la variable val, lo dividimos sobre 4 ya que el valor que retorna analogRead() es de 0 a 1024, y lo que necesitamos es de 0 a 255. Usamos la instrucción analogWrite() para escribir el valor.

Ver también

Referencias

[1] Arduino , https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/ Consultado febrero 2019


Comentario

Debe aceptar antes de enviar