Analog Write

Post on 06-Oct-2015

9 views 0 download

description

Configuración del arduino con el analogWrite

Transcript of Analog Write

analogWrite ()

Descripcin

Escribe un valor anlogo ( onda PWM ) para un alfiler. Se puede utilizar para encender un LED a diferentes brillos o accionar un motor a distintas velocidades. Despus de llamar a analogWrite () , el pin 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 seal PWM en la mayora de los pasadores es de aproximadamente 490 Hz. En las tablas Uno y similares, los pines 5 y 6 tienen una frecuencia de aproximadamente 980 Hz. Los pines 3 y 11 en el Leonardo tambin corren a 980 Hz.

En la mayora de las placas Arduino (aquellos con los ATmega168 o ATmega328 ), esta funcin trabaja en los pines 3, 5, 6, 9, 10 y 11. En la Arduino Mega, funciona en los pines 2 - 13 y 44 - 46. Mayor Arduino tableros con un ATmega8 slo admiten analogWrite () en los pines 9, 10 y 11.

El Arduino Debido apoya analogWrite () en los pines 2 a 13, adems de pines DAC0 y DAC1 . A diferencia de los pines PWM, DAC0 y DAC1 son convertidores de digital a analgico, y actan como verdaderos salidas analgicas.

Usted no necesita llamar pinMode () para establecer el pin como salida antes de llamar analogWrite ().

El analogWrite funcin no tiene nada que ver con los pines analgicos o la analogRead funcin.

Sintaxis

analogWrite (pin, valor)

Parmetros

pin: el pasador a escribir a.

valor: el ciclo de trabajo: entre 0 (siempre apagado) y 255 (siempre encendido).

Devoluciones

nada

Notas y problemas conocidos

Las salidas PWM generadas en los pines 5 y 6 tendrn ciclos de trabajo ms altos de lo esperado. Esto es debido a las interacciones con los millis () y de retardo () funciones, que comparten el mismo temporizador interno utilizado para generar las salidas PWM. Esto se notar sobre todo en entornos de bajos del ciclo de actividad (por ejemplo, 0 - 10) y puede dar lugar a un valor de 0 no entregar totalmente fuera de la salida en los pines 5 y 6.

Ejemplo

Establece la salida al Led proporcional al valor ledo del potencimetro.

int ledPin = 9 ; // LED conectado al pin digital de 9

int analogPin = 3 ; // potencimetro conectado al pin analgico 3

int val = 0 ; // variable para almacenar el valor ledo

void setup ( )

{

pinMode ( ledPin , SALIDA ) ; // establece el pin como salida

}

void loop ( )

{ val = analogRead ( analogPin ) ; // leer el pin de entrada

analogWrite ( ledPin , val / 4 ) ; // analogRead valores van de 0 a 1023, los valores analogWrite desde 0 para 255

}

Tip: Configurar TimerInNotasonseptiembre 20, 2010at1:28 am

Algunas ocasiones es necesario modificar los timer internos del microcontrolador, sea para tener diferentes escalas de tiempo iniciarlos / desactivarlos o darles una configuracin diferente dependiendo de la aplicacin. Para hacer ello en el IDE de Arduino, supondremos que deseamos modificar el Timer2 del ATmega328, para ello deshabilitamos la interrupcin mientras configuramos el timer:TIMSK2 &= ~(1