Ejemplos de Entradas/salidas analógicas Traducido por: José Luis Lombardero, profesor de Tecnología Analog Input (Entrada analógica) Un potenciómetro es un componente simple que proporciona una resistencia variable, que se puede leer en la placa Arduino como un valor analógico de voltaje variable. En este ejemplo, podrás conectar un potenciómetro a una de las entradas analógicas del Arduino para controlar la velocidad a la que el LED insertado en placa del pin 13 parpadea. Hardware necesario • Placa Arduino • Potenciómetro • LED sobre pin 13 (insertado en placa) Conexiones sobre placa Arduino Conecte los tres cables a la placa Arduino. El primero va a tierra (GND) desde una de las patas exteriores del potenciómetro. El segundo va a 5 voltios a la otra patilla exterior del potenciómetro. La tercera patilla va a la entrada 0 analógica A0 desde el pin central del potenciómetro. Para este ejemplo, es posible utilizar el LED que está integrado a la placa Arduino y al pin 13. Para usar un LED adicional, insertar su patilla más larga (terminal positivo o ánodo), al pin digital 13, y la más corta (terminal negativo, o cátodo) a la tierra (GND) próxima al pin 13. Debido a la pequeña cantidad de corriente que sale del pin digital 13, no es necesario el uso de una resistencia limitadora de corriente para este caso particular. Esquema del circuito Página 1 / 4 2013 Ejemplos de Entradas/salidas analógicas Traducido por: José Luis Lombardero, profesor de Tecnología Código Al principio de este programa, la variable sensorPin se establece en analógico y en el pin 0, donde está conectado el potenciómetro, y ledPin se establece en el pin digital 13. También vamos a crear otra variable, sensorValue para almacenar los valores leídos desde el sensor. El comando analogRead() convierte el voltaje de entrada, 0 a 5 voltios, a un valor digital entre 0 y 1023. Esto lo realiza un circuito interno del Arduino llamado convertidor analógico-digital o ADC (Analogic to Digital Converter). Al girar el eje del potenciómetro, cambia la cantidad de resistencia en cada lado de la patilla central del potenciómetro. Esto cambia las resistencias relativas entre el pin central y los dos pines externos, y le da una tensión diferente a la entrada analógica. Cuando el eje gira todo el camino en una dirección, no hay resistencia entre el pin central y la conexión a tierra. La tensión en la patilla central entonces es de 0 voltios, y analogRead() devuelve 0. Cuando el eje gira todo el camino en la otra dirección, no hay resistencia entre el pin central y el pin conectado a +5 voltios. El voltaje en la patilla central entonces es de 5 voltios, y analogRead() devuelve 1023. En el punto medio del recorrido, analogRead() devuelve un número entre 0 y 1023, que es proporcional a la cantidad de voltaje que se aplica al pin central. Ese valor, almacenado en sensorValue, se utiliza para establecer un delay()(retardo) para el ciclo de parpadeo del LED. Cuanto mayor sea el valor, más largo será el ciclo, a más pequeño el valor, más corto es el ciclo. A continuación veamos cómo queda el código del sketch: Página 2 / 4 2013 Ejemplos de Entradas/salidas analógicas Traducido por: José Luis Lombardero, profesor de Tecnología /* Analog Input Demonstrates analog input by reading an analog sensor on analog pin 0 and turning on and off a light emitting diode(LED) connected to digital pin 13. The amount of time the LED will be on and off depends on the value obtained by analogRead(). The circuit: * Potentiometer attached to analog input 0 * center pin of the potentiometer to the analog pin * one side pin (either one) to ground * the other side pin to +5V * LED anode (long leg) attached to digital output 13 * LED cathode (short leg) attached to ground * Note: because most Arduinos have a built-in LED attached to pin 13 on the board, the LED is optional. Created by David Cuartielles modified 30 Aug 2011 By Tom Igoe This example code is in the public domain. Traduced by: Jose Luis Lombardero (Technology´s teacher) 24 Feb 2013 http://arduino.cc/en/Tutorial/AnalogInput */ int sensorPin = A0; // pin Analógico de entrada que viene del potenciometro int ledPin = 13; // selecciona el pin para el LED int sensorValue = 0; // variable para almacenar el valor que viene desde el sensor void setup() { // declara a ledPin como una OUTPUT, salida: pinMode(ledPin, OUTPUT); } void loop() { // lee el valor desde el sensor: sensorValue = analogRead(sensorPin); // enciende el ledPin poniendolo a nivel ALTO digitalWrite(ledPin, HIGH); // detiene el programa por <sensorValue> milisegundos: delay(sensorValue); // apaga el ledPin poniendolo a nivel BAJO: digitalWrite(ledPin, LOW); // detiene el programa por <sensorValue> milisegundos: delay(sensorValue); // Esto hace que varíe el ciclo de trabajo de encendido y apagado del LED } [Get Code] Página 3 / 4 2013 Ejemplos de Entradas/salidas analógicas Traducido por: José Luis Lombardero, profesor de Tecnología Ver también: • • • • pinMode() analogRead() digitalWrite() delay() • AnalogReadSerial - read a potentiometer, print it's state to the serial monitor • AnalogInOutSerial - read an analog input, map its values, and then use that information to dim or brighten an LED. • Fade - use an analog input to fade an LED • Calibration - calibrating analog sensor readings Información obtenida del apartado 3. de la página oficial de Arduino, Tutoriales - Ejemplos: http://arduino.cc/en/Tutorial/HomePage Página 4 / 4 2013