Analog Write

5
analogWrite () Descripción Escribe un valor análogo ( onda PWM ) para un alfler. Se puede utilizar para encender un LED a dierentes brillos o accionar un !otor a distintas velocidades. Despu"s de lla!ar a analogWrite () # el pin generará una onda cuadrada constante del ciclo de traba$o especifcado %asta la siguiente lla!ada a analogWrite () (o una lla!ada a digital&ead () o digitalWrite () en el !is!o pin). La recuencia de la se'al PWM en la !a or a de los pasadores es de apro*i!ada!ente +,- z. En las tablas /no si!ilares# los pines 0 1 tienen una recuencia de apro*i!ada!ente ,2- z. Los pines 3 44 en el Leonardo ta!bi"n corren a ,2- z. En la !a or a de las placas 5rduino (a6uellos con los 57!ega412 o 57!ega382 )# esta unción traba$a en los pines 3# 0# 1# ,# 4- 44. En la 5rduino Mega# unciona en los pines 8 9 43 ++ 9 +1. Ma or 5rduino tableros con un 57!ega2 sólo ad!iten analogWrite () en los pines ,# 4- 44. El 5rduino Debido apo a analogWrite () en los pines 8 a 43# ade!ás de pines D5:- D5:4 . 5 dierencia de los pines PWM# D5:- D5:4 son convertidores de digital a analógico# act;an co!o verdaderos salidas analógicas. /sted no necesita lla!ar pinMode () para establecer el pin co!o salida antes de lla!ar analogWrite (). El analogWrite unción no tiene nada 6ue ver con los pines analógicos o la analog&ead unción. Sinta*is analogWrite (pin# valor)

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