Encuentra información referente a la programación, electrónica y mucho más, la página está pensada para compartir contenido educativo relevante coadyuvando a su aprendizaje diario.
Entradas y salidas anal├│gicas en Arduino

Cuando Hablamos de entradas y salidas anal├│gicas de Arduino tenemos que hablar de se├▒ales anal├│gicas, estas se├▒ales tienen la caracter├şstica de cambiar en el tiempo por lo cual no se puede tratar de la misma forma que las se├▒ales digitales porque estar├şamos cometiendo un grav├şsimo error.

Como sabemos una señal digital solo tiene dos estados (HIGH o LOW), pero una señal analógica puede presentar múltiples estados que cambian constantemente en el tiempo, para tratar señal analógica podemos utilizar conversores analógico/digital (AD) o digital/analógico para tener un resultado más acorde a la realidad, si bien el uso de estos conversores es relativamente sencilla Arduino con sus diferentes placas de desarrollo ya viene integrado con un conversor analógico a digital lo que nos permite ahorrarnos en montar un circuito extra para tratar estas señales.

Entradas anal├│gicas de Arduino

Antes de empezar a montar nuestros primeros circuitos electr├│nicos tratando se├▒ales anal├│gicas de entrada debemos conocer algunos aspectos b├ísicos para su tratamiento correcto, en primer lugar debemos saber que vamos a controlar un voltaje que oscilara entre 0 a 5 voltios lo que quiere decir que nuestro l├şmite m├íximo ser├í de 5 voltios y no debemos exceder en introducir voltaje por encima de este valor porque da├▒aremos nuestra placa de Arduino.

Otro aspecto importante es la resoluci├│n del convertidor A/D que poseen las placas de Arduino esto es sumamente importante conocerlo porque gracias a esto podemos realizar proyectos que precisen gran precisi├│n, normalmente las placas de Arduino presentan convertidores A/D con unas resoluci├│n de 10 bit lo que equivale a tener un rango de valores de 1024 que van comprendidos del 0 al 1023, esto es m├ís que suficiente para la mayor├şa de los proyectos electr├│nicos que vayamos a montar, pero cuando deseamos tener un m├íximo de precisi├│n esto se hace insuficiente por lo cual se aconseja realizar un circuito paralelo que trate estas se├▒ales de forma independiente o dise├▒ar un circuito completo utilizando ya sea un microcontroladores PIC , ATmega o el que sea m├ís acorde a nuestras necesidades o simplemente utilizar convertidores A/D de alta precisi├│n.

En las placas de Arduino podemos identificar estas entradas anal├│gicas de forma muy sencilla puesto que est├ín serigrafiadas con la letra ÔÇťAÔÇŁ en may├║scula haciendo alusi├│n a una entrada anal├│gica, el n├║mero de entradas anal├│gicas depende la placa de Arduino que vayamos a utilizar en caso de la placa de Arduino Uno que es el m├ís usado por las personas que inician tiene 6 entradas anal├│gicas que van marcadas como A0, A1, A2, A3, A4 y A5.

Lectura de entradas anal├│gicas de Arduino

Ahora que ya conocemos los aspectos básicos para tratar de forma correcta nuestro circuito utilizando señales analógicas tenemos que conocer como recoger estos datos en un programa para luego realizar alguna tarea que sea útil para nuestros proyectos.

El tratar se├▒ales anal├│gicas normalmente obtenidas de sensores tienen por lo general librer├şas externas o internas para usar estas se├▒ales y sea as├ş lo m├ís sencillo posible usarlos puesto que debemos realizar algunos c├ílculos matem├íticos y algunos registros de memoria para obtener datos confiables de los sensores.

Pero si deseamos recoger datos de sensores sencillos como el t├şpico LM35 o simplemente un potenci├│metro basta con realizar una lectura del pin anal├│gicos con la instrucci├│n analogRead(Pin_analogico) donde ÔÇťpin_analogicoÔÇŁ es el pin que usaremos para introducir la se├▒al anal├│gica a nuestra placa de Arduino, en el caso de la placa de Arduino UNO los posibles pines son A0, A1, A2, A3, A4 y A5, con estos datos recolectados podemos realizar un c├ílculo matem├ítico para tratar esta se├▒al a nuestras necesidades.

Ejemplo de una entrada anal├│gica de Arduino

const int pinSensor = A1;    // Seleccionamos el pin anal├│gico que vamos a usar
int valorSensor;       // variable que almacenara los datos recogidos del sensor 
void setup()
{
   Serial.begin(9600); 
}
 
void loop() 
{
   valorSensor = analogRead(pinSensor);   // realizar la lectura
 
   Serial.println(valorSensor); // imprime en pantalla el valor recogido del pin anal├│gico
   delay(500);
}

Salidas anal├│gicas de Arduino

Cuando hablamos de salidas analógicas de Arduino tendremos que hablar de PWM o modulación por ancho de pulso, puesto que Arduino no nos otorga señales analógicas de salida puras, para esto usamos lo que se conoce como PWM para simular una señal analógica, además al igual que una señal digital solo podrá trabajar con 5 voltios como máximo y 0 voltios como minimo, si deseamos trabajar con voltajes más altos que los 5 voltios permitidos debemos armar un circuito extra para tratar estos voltajes de forma correcta.

PWM en Arduino

Pero ¿cómo funciona el PWM en Arduino?, la respuesta sencilla, lo que hace es variar el tiempo de la señal en alto (HIGH) frente al tiempo que está en nivel bajo (LOW) en su ciclo de trabajo, es decir si el tiempo en alto (HIGH) y el tiempo en bajo (LOW) son iguales la salida de esta señal estará funcionando al 50%, a partir de esto podemos hacer variaciones en los tiempos de HIGH y LOW para aumentar o disminuir su rendimiento, esto es muy útil cuando queremos controlar la velocidad de un motor o variar la intensidad de un led.

PWM de las entradas y salidas analogicas en Arduino

Estas salidas se encuentran serigrafiadas con un s├şmbolo de ÔÇť ~ ÔÇŁ en las salidas digitales de las placas de Arduino, el n├║mero de salidas digitales habilitadas para trabajar con PWM depende de la placa de Arduino que usemos, en el caso de Arduino UNO posee 6 salidas con estas caracter├şsticas.

Escritura de salidas anal├│gicas de Arduino (analogWrite)

Para empezar a utilizar estas salidas anal├│gicas de Arduino debemos entender que solo trabaja con una resoluci├│n de 8 bits lo que significa que los valores permitidos para estas salidas est├ín comprendidas entre 0 y 255, esto va en contraste con los 10 bits que tienen las entradas anal├│gicas de Arduino UNO, por lo cual si queremos hacer un proyecto donde obtenemos datos de las entradas anal├│gicas y deseamos sacarlas por las salidas digitales con PWM simulando una se├▒al anal├│gica debemos adaptar estos valores antes para que no exista ning├║n desbordamiento en los valores y as├ş tengamos un proyectos que funcione de forma correcta.

Programar estas salidas son relativamente sencillas solo debemos utilizar la instrucci├│n analogWrite(Pin, Valor), donde ÔÇťPinÔÇŁ es el pin de la placa de Arduino que usaremos para sacar la tensi├│n producida por PWM y ÔÇťValorÔÇŁ es un n├║mero que debe estar entre 0 y 255, en este caso mientras sea m├ís alto el valor el voltaje de salida ser├í mayor teniendo como l├şmite los 5 voltios como m├íximo.

Ejemplo de una salida anal├│gica (PWM)

En este ejemplo lo que hacemos es subir la intensidad de luminosidad de un led hasta el máximo y apagarlo de forma subita y vuelve a realizar el ciclo de forma infinita.

int brilloLed = 0;    // brillo del led
void setup() {
  // Declaramos el pin 6 como salida del led
  pinMode(6, OUTPUT);
}
void loop() {
  // set the brightness of pin 6:
  analogWrite(6, brilloLed); 
  brilloLed = brilloLed + 5;
  if (brilloLed >= 255) {
    brilloLed = 0;
  }
   delay(50);
}

┬┐Que te parecio el art├şculo?

Su dirección de email no sera publicado. Los campos obligatorios están marcados con *.

┬┐Qu├ę hacemos con tus datos?

Creatividad Codificada como responsable tratar├í tus datos con la finalidad de gestionar tu participaci├│n en nuestro blog informativo. Puedes acceder, rectificar y suprimir tus datos, as├ş como ejercer otros derechos consultando la informaci├│n adicional y detallada sobre protecci├│n de datos en nuestra Pol├ştica de Privacidad