Skip to main content

analogRead() – Lectura de entradas analógicas – Ejemplo con Arduino Nº 05

En este ejemplo te enseñare como leer el valor presente en una entrada analógica, mediante la función analogRead(), usando un potenciómetro que simulará una señal proveniente de un sensor.

El potenciómetro es el mecanismo más simple para obtener una señal eléctrica variable. Conectando los dos extremos del potenciómetro a la tensión de alimentación y a masa respectivamente, dispondrás en la patilla común una señal eléctrica variable entre 0 voltios y Vic (Tensión de alimentación), podrás crear un divisor de tensión que simulará la señal eléctrica que te proporcionaría un sensor de cualquier magnitud física.

En este ejemplo, además veremos el valor que nos proporciona el conversor analógico integrado dentro de la placa arduino, a través del monitor del puerto serie.

CIRCUITO ELÉCTRICO

analogreadserial_bb
analogreadserial_bb

Para la realización de este circuito, conectaremos una de las patillas del extremo del potenciómetro a masa (GND) y el otro extremo a 5 voltios (Vcc), la patilla del centro del potenciómetro la conectaremos a la entrada analógica A2.

Cuando el potenciómetro se encuentra en uno de los extremos tendrás en la patilla del centro, O voltios y cuando este girado hasta el otro extremo tendrás 5 voltios en la patilla del medio del potenciómetro.

La placa de Arduino tiene un conversor de Analógico a Digital que te proporciona un valor de 0 cuando en la patilla tienes 0 Voltios y 1023 cuando la tensión en la patilla es de 5 voltios. El valor leído por el conversor analógico a digital (ADC) se lee mediante la función analogRead() que te devuelve un valor entre 0 y 1023, proporcionalmente a la tensión aplicada al pin de entrada analógica.

CÓDIGO

void setup()

{

Serial.begin(9600);

}

void loop()

{

int LecturaDelSensor= analogRead(A2);

Serial.println(LecturaDelSensor);

}

Recuerda abrir el monitor del Puerto serie que se encuentra en la esquina superior derecha del IDE de Arduino.

analogWrite() – Manejo de salidas analógicas – Ejemplo con Arduino Nº 04

En este ejemplo voy a tratar de explicarte cómo funciona la salida analógica de tu placa Arduino, para ello utilizaré la función analogWrite(), una salida con un “falso valor analógico” ya que utiliza una modulación por ancho de pulso para proporcionarnos un valor de tensión analógico (que puede variar entro dos valores sin perder su continuidad).

Así como la función analogRead() puede leer valores que van del 0 al 1023, con la función analogWrite() solamente podrás escribir valores de 0 a 255 en la salida analógica.

Las salidas analógicas son aquellas que tienen el símbolo de la corriente alterna ( ~ ) serigrafiado en su costado.

CIRCUITO:

Para realizar el circuito de este ejemplo conectarás el ánodo del diodo LED al pin de la salida digital 9, a través de una resistencia de 220 ohmios, y la otra patilla del LED, el cátodo la conectarás directamente a masa.

CÓDIGO:

Para comprobar el funcionamiento de esta función utilizaremos una variable Brillo que irá variando su valor de 0 a 255 y de 255 a 0 sucesivamente, con lo que conseguirás que el LED se valla encendiendo y apagando progresivamente, en lugar del ejemplo del parpadeo, en el que el LED se encendía y apagaba en un TODO / NADA, APAGADO / ENCENDIDO.

El programa definitivo quedará de la siguiente manera:

int LED=9;                                           // Asigno a la variable LED el valor 9

int Brillo = 0;                                      // Asigno a la variable Brillo el valor 0

int IncrementoBrillo = 5;               // Asigno a la variable IncrementoBrillo el valor 5

void setup()

{

pinMode( LED, OUTPUT);  // Establezco el pin 9 como salida

}

void loop()

{

analogWrite( LED, Brillo);                // Envío al pin 9 el valor de la variable Brillo

Brillo = Brillo + IncrementoBrilo   // Incremento el Brillo para la próxima iteración

If(Brillo <= 0 || Brillo >= 255)      // Si el brillo llega a su límite superior o inferior

{

IncrementoBrillo = -IncrementoBrillo     // Cambio de incremento a decremento según

}                                                                             // convenga

delay(30);            // Espero 30 milisegundos para poder observar el efecto

}

Con este simple programa podrás observar el efecto de la salida analógica, te invito a utilizar el monitor serie, y la función Serial.println() para poder observar cuantitativamente el valor que enviamos al LED y a hallar la correspondiente función de equivalencia en voltios de los valores de salida.

digitalWrite() – Manejo de salidas digitales – Ejemplo con Arduino Nº 02

En el ejemplo del parpadeo, o blink, utilizamos la función digitalWrite(), este es el ejemplo más sencillo que se puede hacer con Arduino, para conocer el comportamiento de una salida digital, a este pin configurado como salida, conectaremos un led y una resistencia de 220 ohms, conectados con la polaridad adecuada. Es decir, el cátodo a masa y el ánodo del led conectado a la parte más positiva del circuito.

De hecho, para este ejemplo, no es necesario conectar una resistencia y un led, ya que las placas de Arduino, tienen integrado un led conectado a una salida digital concreta. El IDE de Arduino tiene una constante definida como LED_BUILTIN, que es la que permite controlar el led incorporado a la placa.

Esta es la relación de pins con el led incorporado y las placas que lo utilizan:

D13:

  • 101
  • Vencimiento
  • Intel Edison
  • Intel Galileo Gen2
  • Leonardo y micro
  • LilyPad
  • LilyPad USB
  • MEGA2560
  • Mini
  • Nano
  • Pro
  • Pro Mini
  • UNO
  • Yún
  • Cero

D6

  • MKR1000

D1:

  • Genma

Pero si deseas encender un LED externo con este sketch, necesitas construir un circuito, donde se conecta en un extremo la resistencia al pin digital correspondiente a la constante LED_BUILTIN. Además de ello debes conectar la pata larga del LED (pin negativo, llamado cátodo) a la GND (masa del circuito)

El valor de resistencia adecuado es de 220 ohmios, pero también se encenderá con valores de hasta 1K, pero descenderá la luminosidad del LED.

CÓDIGO:

void setup()

{

pinMode(LED_BUILTIN, OUTPUT); // Inicializa el pin 13 como salida

}

void loop()

{

digitalWrite(LED_BUILTIN, HIGH);          // Enciende el led 13

delay(1000);                                                   // Espera un segundo

digitalWrite(LED_BUILTIN, LOW);           // Apaga el led 13

delay(1000);                                                   // Espera un segundo

}

Este ejemplo lo puedes utilizar también para comprobar rápidamente si la placa de Arduino funciona correctamente.

conexiones

Proyecto con Arduino Nº 07 – Lampara pulsante

Presentación del proyecto

En este proyecto con arduino, vas a aprender a utilizar las salidas analógicas que nos proporciona la placa arduino, para ello vamos a realizar un proyecto donde controlaremos el brillo de un Led, mediante una salida analógica. Recuerda que las salidas analógicas de ardunino, son salidas que utilizan el ancho de pulso para proporcionarte un “falso” valor analógico.

Componentes necesarios

  • 1 Placa protoboard
  • 1 Placa Arduino Uno
  • 1 Led
  • 1 resistencia de 220 Ohmios
  • Cables de conexiónes.

Esquema de conexiones


Esquema eléctrico


Programa

// Proyecto 07 – Lampara pulsante – aprobarfacil.com

int ledPin = 11;

float sinVal;

int ledVal;

void setup()

{

pinMode(ledPin, OUTPUT);

}

void loop()

{

Serial.begin(9600);

for (int x = 0; x < 180; x++)

{

sinVal = (sin(x * (3.1412 / 180))); // Convierte los grados en radianes

ledVal = int(sinVal * 255); // Obtengo el valor del seno

Serial.println(ledVal);

analogWrite(ledPin, ledVal);

delay(25);

}

}

Notas

  • Utiliza cable negro para todas las conexiones a masa (GND).
  • Utiliza cable rojo para todas las conexiones a VCC (5V).
  • No importa los colores que utilices para las demás conexiones.
  • Ten cuidado al conectar los componentes en el protoboard pues puedes dañarlos.
  • Comprueba que conectas el led con la polaridad correcta. (Cátodo a masa).
  • Cuando todo esté correctamente conectado puedes conectar el cable USB.

Observaciones

  • Si el programa funciona correctamente el brillo del Led corresponderá a una función sinusoidal.

Enlace del proyecto en circuits.io

Proyecto con Arduino Nº 07 -Lampara pulsante