_______________________________________________________________________ /* ATDT MAGAZINE :::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::[0x03-08]: NUMERO 0x03::::::::::::::::::::::::::::::::::::::::::::::::::::::::: "introducción a Arduino - parte 3" por lmtreser */ En el artículo anterior les hable un poco sobre entradas analógicas y digitales. Hoy es el turno de trabajar con salidas analógicas. =====> SALIDAS ANALÓGICAS La placa Arduino UNO no tiene un periférico de hardware capaz de convertir una señal digital a analógica (DAC, Digital to Analogue Converter) por lo que se vale de señales PWM (Modulación por Ancho de Pulso) para "simular" valores analógicos. Las patitas que tienen la capacidad de generar señales PWM son las que se encuentran en la bornera Digital y tienen el símbolo ~ al lado del número identificatorio: 3, 5, 6, 9, 10 y 11. Vagamente podriamos pensar a una señal PWM como una onda cuadrada de una frecuencia fija, con una amplitud entre 0 y 5V a la que podemos cambiarle el ancho (o tiempo) del estado encendido (1) y del estado apagado (0) a voluntad. 5V ____ ________ __ | | OFF | |OFF | | OFF ____| ON |_____//___| ON |__//__|ON|________ 0V // // Para generar y manipular este tipo de señales, Arduino cuenta con una función llamada analogWrite, la cual se escribe de la siguiente manera: analogWrite(pin, valor) Los paramétros que acepta son: número de pin a utilizar como salida y el valor a escribir que va desde 0 (apagado) hasta 255 (encendido), es decir que tiene una resolución de 8 bits. Como podrán imaginar con este tipo de salida podemos controlar el brillo de un LED o la velocidad de giro de un pequeño motor. =====> CONTROLAR UN LED Vamos a controlar el brillo de un LED mediante el uso de un contador por software para obtener un efecto luminíco ascendente. La variable llamada "contador" se incrementará en uno cada 500 milisegundos, acto seguido se escribirá su contenido en el pin donde tenemos conectado el LED. Las conexiones que tenemos que hacer son las siguientes: {D3} | | [ ] 220 ohms [ ] [ ] | | ***** *** LED * ***** | | {GND} El firmware que tendremos que escribir en el IDE de Arduino y luego subir a la placa es el siguiente: ************************************************************************* * * * /* CONTROL DE UN LED MEDIANTE PWM * * APRENDIENDO ARDUINO EN TEXTO PLANO * * */ * * * * const int LED = 3; // pin donde conectaremos el LED * * int contador = 0; // declaración de una variable * * * * void setup() { * * pinMode(LED, OUTPUT); * * } * * * * void loop() { * * contador = contador + 1; // incrementamos el contador * * analogWrite(LED, contador); // escribimos un valor en el LED * * delay(500); * * } * * * ************************************************************************* El programa tiene algunas fallas operativas que las solucionaremos en el próximo artículo. ¡Hasta la próxima! _________________________________________________________________________________ !EOF -> atdt-zine-0x03-08.txt