Apuntes de Arduino
Nota: Si el pin de entrada analógico no está conectado a nada, el valor devuelto por analogRead()
va a fluctuar aleatoriamente en función de una serie de factores.
Ejemplo
// programa para monitorizar el valor de tensión en el terminal intermedio de un potenciómetro.
int miPinAnalog = 3;
int val = 0;
// variable para almacenar el valor leído por el conversor
void setup ()
{
Serial.begin (9600); // configuración de la comunicación serie
}
void loop ()
{
val = analogRead(miPinAnalog);
Serial.println(val);
delay(1000);
}
12.2. analogWrite(pin, valor)
Escribe un valor (entre 0 y 255) pseudo-analógico (onda PWM ) en el pin digital especificado. Se
puede utilizar para encender un LED con brillo variable o hacer girar un motor a varias
velocidades. Después de llamar a analogWrite(), en el pin se generará una onda cuadrada
constante con el ciclo de trabajo especificado (0 corresponde a siempre "off" y 255 a siempre "on")
hasta la siguiente llamada a analogWrite() (o una llamada a digitalRead() o digitalWrite() en el
mismo pin).
En la placa Arduino esta función funciona en los pines digitales 3, 5, 6, 9, 10 y 11. No es necesario
llamar a pinMode() para establecer el pin como salida para poder usar la función analogWrite().
La función analogWrite() no tiene nada que ver con los pines analógicos o la función analogRead.
Ejemplo
Establece el brillo del LED proporcionalmente al valor de tensión leído en el potenciómetro.
int ledPin = 9;
int miPinAnalog = 3; // potenciómetro conectado al pin analógico 3
int val = 0;
void setup ()
{
pinMode (ledPin, OUTPUT);
}
void loop ()
{
val = analogRead (miPinAnalog);
analogWrite (ledPin, val/4);
}
Apuntes de Arduino. Tecnología
// el terminal intermedio de un potenciómetro conectado al pin analógico 3
// los terminales externos conectados a tierra y +5 V
// lee el el valor de tensión en el pin de entrada
// envía el valor leído vía serie
// LED conectado al pin digital 9
// variable para almacenar el valor leído
// establece el pin como salida
// lee el pin de entrada analógica
// para escalar valores: los valores de analogRead van de 0 a 1023,
// los valores de analogWrite de 0 a 255
19