Professional Documents
Culture Documents
= 1/
El rango de trabajo
La tercer caracterstica, pero no la menos importante, que
debemos tomar en consideracin al elegir un ADC es el rango
de voltajes/corrientes que acepta en su entrada, este parmetro
es escencial para evitar "quemar" (literalmente) nuestro ADC.
La nica forma de saber el rango del ADC es revisando su hoja
tcnica, usualmente encontraremos el rango de valores de
voltaje y de corriente aceptados en la entrada como tambin las
tolerancias aceptadas.
Para el Arduino Mega, segn las especificaciones tcnicas el
rango de entrada va desde 0v hasta Vcc (5V).
El dimmer digital
Un "dimmer" o un "atenuador" es un sencillo dispositivo que
atenua la intensidad de una luz.
Atenuar un LED es un poco ms complicado, el problema es
que los LED no funcionan calentando un filamento como los
focos incandescentes sino que convierten directamente la
energa elctrica en luz. Esto los hace muy eficientes, tan
eficientes que si los hacemos funcionar fuera de su rango
optimo de trabajo, por ejemplo reduciendo la corriente,
desperdiciaremos mucha energa en forma de calor y
adicionalmente podriamos notar algunas diferencias en el color
del LED en tanto reducimos su intensidad.
Una solucin sencilla muy prctica para atenuar LEDs con
circuitos digitales es utilizar "modulacin de pulsos". La
ventaja de utilizar esta tcnica es que permite que el led
mantenga su color (ya que siempre funciona utilizando la
misma corriente) y simplemente cambia la intensidad de la
luz emitida. Realmente lo que sucede es que el led se esta
apagando y encendiendo muy rapidamente lo que reduce la
cantidad de luz que emite, esto ocurre tan rapido que
nuestro ojo no lo nota y pareciera que el led esta reduciendo
su intensidad.
Arduino ya incluye la funcionalidad para generar seales
PWM
Programando nuestro Arduino
void setup()
{ pinMode(2,OUTPUT); }
En el setup no es requisito configurar como salida el PIN donde conectaremos el LED, sin
embargo lo dejo indicado solo para que quien lea el cdigo sepa que en esa lnea es donde lo
conectaremos.
Para el loop principal utilizaremos el siguiente cdigo:
El cdigo funciona en tres pasos:
int value;
void loop()
{
value = analogRead(0);
value = map(value,0,1023,0,255);
analogWrite(2,value);
delay(20);
}
Leemos el dato del voltaje del potenciometro.
Usamos la funcion map para cambiar el rango de entrada de 0-
1023 a 0-255 (el rango que soporta analogWrite)
Escribimos el nuevo valor mapeado como PWM a la salida
donde est conectado el LED.
Utilizo un pequeo delay para evitar que el valor cambie muy
frecuentemente.
La funcin map permite convertir un rango especificado en otro.
Esto es muy til cuando uno necesita que el valor anlogo de la
entrada se corresponda con un rango diferente en la salida. En
este caso nuestro valor de entrada vara entre 0 y 1023 pero la
funcin analogWrite est esperando un mximo de 255.
Entradas y salidas digitales y
analgicas
Funcin pinMode(pin, mode)
Funcin usada en la function setup() para configurar un pin dado para comportarse como
INPUT o OUTPUT. Ej. pinMode(pin, OUTPUT); configura el pin nmero 'pin' como de salida.
Los pines de Arduino funcionan por defecto como entradas, de forma que no necesitan
declararse explcitamente como entradas empleando pinMode().
Funcin digitalRead(pin)
Lee el valor desde un pin digital especfico. Devuelve un valor HIGH o LOW. El pin puede ser
especificado con una variable o una constante (0-13). Ej. v = digitalRead(Pin);
Funcion digitalWrite(pin, value)
Introduce un nivel alto (HIGH) o bajo (LOW) en el pin digital especificado. De nuevo, el pin
puede ser especificado con una variable o una constante 0-13. Ej. digitalWrite(pin, HIGH);
Funcin analogRead(pin)
Lee el valor desde el pin analgico especificado con una resolucin de 10 bits. Esta funcin
solo funciona en los pines analgicos (0-5). El valor resultante es un entero de 0 a 1023. Los
pines analgicos, a diferencia de los digitales no necesitan declararse previamente como
INPUT o OUTPUT.
Funcin analogWrite(pin, value)
Escribe un valor pseudo-analgico usando modulacin por ancho de pulso (PWM) en un pin
de salida marcado como PWM. Esta funcin est activa para los pines 3, 5, 6, 9, 10, 11. Ej
analogWrite(pin, v); // escribe 'v' en el 'pin' analgico. Puede especificarse un valor de 0 - 255.
Un valor 0 genera 0 V en el pin especificado y 255 genera 5 V. Para valores de 0 a 255, el pin
alterna rpidamente entre 0 V y 5 V, cuanto mayor sea el valor, ms a menudo el pin se
encuentra en HIGH (5 V). Por ejemplo, un valor de 64 ser 0 V tres cuartas partes del tiempo
y 5 V una cuarta parte. Un valor de 128 ser 0 V la mitad del tiempo y 5 V la otra mitad. Un
valor de 192 ser 0 V una cuarta parte del tiempo y 5 V tres cuartas partes.