Entradas Analógica (Potenciometro)

Modificación Marzo 2016.

Potenciometro con señal de salida a pantalla de cristal liquido de 20 columnas por 4 renglones. (20×4)

Veamos como se puede ver el efecto de un potenciómetro conectado a un led, registrando los resultados en una pantalla LCD.

El código(sketch) siguiente se desarrollo usando la biblioteca desarrollado por malapartida en la version LiquidCrystal_V1.2.1.zip haciendo click en el nombre anterior se baja se expande y se carga en el folder Libraries del folder en donde se expande el codigo del IDE de arduino.

(Durante este proceso me percato de que todos los archivos del IDE de arduino se encuentran ubicados en el folder que resulta de expandir el archivo arduino-x.x.x.org-linux32.tar.xz, asi que es conveniente expandirlo en el directorio Home)

(Otra observación es que si se sigue el procedimiento de instalar la biblioteca desde el IDE se crea un nuevo folder de librerías en Home, lo que creo confunde al IDE así que es mejor expandir en Home y despues copiar el folder que resulta en el folde de librerías dentro del folder arduino)

El archivo modificado usando la versión mas actual de Liquidcrystal_I2C es:

/*
######################################################
#####  Arduino Uno + Potenciometro + I2C_LCD          
#####    Rev 1. Enero 2015
#####    Rev 2. Marzo 2016
#####   Jorge Luis Herrera
######################################################
*/

#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

int ledPin = 9;    //Pin D9
int analogPin = 3; //Pin A3
int val = 0;

LiquidCrystal_I2C	lcd(0x3F,2,1,0,4,5,6,7);

void setup()
{
  Serial.begin(9600);
  lcd.begin (20,4); //para modulo LCD 20 x 4   
  lcd.setBacklightPin(3,POSITIVE);
  lcd.setBacklight(HIGH);
  pinMode(ledPin,OUTPUT);
  
  lcd.setCursor ( 0, 0 );            // go to the top left corner
  lcd.print("El Voltaje de salida");    // write this string on the top row
  lcd.setCursor ( 0, 1 );            // go to the 2nd row
  lcd.print("  del pin A3 del    ");    // pad string with spaces for centering
  lcd.setCursor ( 0, 2 );            // go to the third row
  lcd.print("       Arduino      ");                 // pad with spaces for centering
  lcd.setCursor ( 0, 3 );            // go to the fourth row
  lcd.print("Es: ");
  
}

void loop() 
{
  val = analogRead(analogPin);
  float voltaje = val * (5./1023.);
  analogWrite(ledPin,val/4);
  Serial.println(voltaje,DEC);
  
  lcd.setCursor (7,3);    // go to col 7 of the last row
  lcd.print(voltaje);     // update the display with a new number
  
                               
}

Potenciometro conectado a Mega 2560, controlando intensidad led y reflejando el valor en LCD.

El proyecto anterior se uso una tarjeta MEGA veamos ahora el mismo pero con una tarjeta A1.

Antes hay que considerar que las entradas para el  LCD son las que se muestran en el siguiente diagrama.

Alambrado de A1 a LCD
Alambrado de A1 a LCD

El sketch no cambia.

Físicamente queda:

A1, LCD y LED

Imagen correspondiente al códico modificado en Marzo 2016. Se tuvieron muchos problemas para inicializar le LCD ya que la librería modificada mencionada anteriormente requiere que los valores de inicialización se incluyan como se muestra.

Arduino Uno + Potenciometro 10K + Modulo LCD_I2C

La intensidad del Led disminuye con el valor del voltaje modificado con el potenciómetro.