Vous êtes sur la page 1sur 3

Ejemplos de Entradas/salidas analgicas

Traducido por: Jos Luis Lombardero, profesor de Tecnologa

Analog In, Out Serial (entrada Analgica, salida Serie)


En este ejemplo se muestra cmo leer un pin de entrada analgica, asigne el resultado a un rango de 0 a 255, y luego utilizar ese resultado para establecer el ancho de modulacin de pulso (PWM) de un pin de salida para oscurecer o iluminar un LED.

Hardware necesario
Placa Arduino Potencimetro (mayor de 1 k ) LED resistencia de 220

Conexiones sobre placa Arduino


Conecte un pin del potencimetro a 5V, el pin central del mismo al pin analgico A0 y el pin restante a tierra GND. A continuacin, conecte una resistencia de limitacin de corriente de 220 al pin digital 9, con un LED en serie. El pin ms largo del LED (el nodo), positivo, debe ser conectado a la salida de la resistencia, y el pin ms corto (el ctodo) , negativo, ser conectado a tierra GND, como se ve en la imagen de la izquierda.

Esquema del circuito

Pgina 1 / 3

2013

Ejemplos de Entradas/salidas analgicas


Traducido por: Jos Luis Lombardero, profesor de Tecnologa

Cdigo
En el programa siguiente, despus de declarar dos asignaciones de los pines (analgica A0 para el potencimetro y digital 9 para el LED) y dos variables, sensorValue y outputValue, lo nico que hars en la funcin de configuracin (setup) es iniciar la comunicacin serie. A continuacin, en el bucle principal de cdigo, sensorValue se asigna para almacenar el valor analgico que viene del potencimetro. Debido a que el Arduino tiene una resolucin de 0-1023 para analogRead, y una resolucin de slo 0-255 para analogWrite, estos datos del potencimetro es necesario escalarlos antes de usarlos para atenuar el brillo del LED. Para escalar este valor, use la funcin llamada map() outputValue = map (sensorValue, 0, 1023, 0, 255); outputValue es asignado para igualar el valor escalado del potencimetro. La funcin map() acepta cinco argumentos: el valor que a ser asignado, el valor bajo y el valor alto del rango de datos en bruto, y los valores altos y bajos para que esos datos sean escalados tambin. En este caso, los datos del sensor se asignan por debajo de su rango original de 0 a 1023 cambian de 0 a 255. Los datos del sensor recin asignados estn entonces en la salida analogOutPin apagando o iluminando el LED segn se gira el potencimetro. Por ltimo, tanto los valores de los sensores en bruto y escalados son enviados a la ventana serie de Arduino en un flujo de datos continuo. A continuacin veamos cmo queda el cdigo del sketch: /* Analog input, analog output, serial output Entrada analgica, salida analgica, salida serie Reads an analog input pin, maps the result to a range from 0 to 255 and uses the result to set the pulsewidth modulation (PWM) of an output pin. Also prints the results to the serial monitor. Lee un pin de entrada analgico, escala el resultado a un rango de 0 a 255 y usa el resultado para ajustar la modulacin del ancho del pulso (PWM) de un pin de salida. Tambin imprime el resultado en el monitor serie. The circuit: * potentiometer connected to analog pin 0. Center pin of the potentiometer goes to the analog pin. side pins of the potentiometer go to +5V and ground * LED connected from digital pin 9 to ground El circuito: * potencimetro conectado al pin 0 analgico (A0) La patilla central del potencimetro va conectada a dicho pin analgico. Un extremo del potencimetro va a +5V y el otro a tierra (GND). * El LED va conectado mediante una resistencia de 220 al pin digital 9 y a GND. created 29 Dec. 2008 modified 9 Apr 2012 by Tom Igoe This example code is in the public domain. Pgina 2 / 3 2013

Ejemplos de Entradas/salidas analgicas


Traducido por: Jos Luis Lombardero, profesor de Tecnologa

Traduced by: Jose Luis Lombardero (Technologys teacher) 23 Feb 2013 */ // Estas constantes no cambiarn. Son utilizadas para nombrar a // los pines usados: const int analogInPin = A0; // pin Analogico de entrada que viene del potenciometro const int analogOutPin = 9; // pin de salida Analogica que controla el brillo del LED int sensorValue = 0; int outputValue = 0; // valor leido desde el potenciometro // valor de Salida para PWM (analog out)

void setup() { // se inicializa el puerto serie de comunicaciones a 9600 bps: Serial.begin(9600); } void loop() { //se lee el valor analogico: sensorValue = analogRead(analogInPin); // se escala dicho valor al rango de salida: outputValue = map(sensorValue, 0, 1023, 0, 255); // se modifica el valor analogico de salida: analogWrite(analogOutPin, outputValue); // se imprimen los resultados en el monitor serie: Serial.print("sensor = " ); Serial.print(sensorValue); Serial.print("\t output = "); Serial.println(outputValue); // se esperan 2 milisegundos antes del proximo loop // para resolver la conversion analogico-digital // despues de la ultima lectura: delay(2); } [Get Code]

Ver tambin:
map() analogRead() analogWrite() serial() AnalogReadSerial - read a potentiometer, print the state out to the serial monitor AnalogInput - use a potentiometer to control the blinking of an LED Fade - use an analog input to fade an LED Calibration - calibrating analog sensor readings

Informacin obtenida del apartado 3. de la pgina oficial de Arduino, Tutoriales - Ejemplos: http://arduino.cc/en/Tutorial/HomePage

Pgina 3 / 3

2013

Vous aimerez peut-être aussi