MAKER.

Aprende a hacerlo tú mismo paso a paso y automatízalo.

Ohmetro Arduino con display LCD.

Hola amig@. En esta entrada vamos a crear un óhmetro con Arduino UNO de manera sencilla y mostraremos el valor dentro de un display LCD de cristal líquido que incluyen en muchos dispositivos y trainners.

Óhmetro con Arduino UNO

El circuito es muy sencillo según el siguiente diagrama.

Esquema del óhmetro Arduino con visor LCD

A continuación te detallo los componentes que necesitaras:

● Una placa Arduino UNO.
● 1 resistencia de 1KΩ
● 1 resistencia de 330 Ω
● Una resistencia de cualquier valor (para medir).
● Un potenciómetro de 10KΩ
● Un visor LCD de 32 caracteres (2*16).

El circuito es muy sencillo de montar; fijate que solo tiene dos resistencias principales, un potenciómetro (que nos servirá para regular la iluminación del LCD), y una resistencia que nos servirá para medir su valor.

Display LCD (matriz 2 x 16).

La pantalla de cristal líquido (LCD), es un tipo de pantalla alfanumérica basada en cristales líquidos. Seguro que te estás preguntando que es esto de cristales líquidos.

Constitución de la pantalla líquida. Fuente Marvin Raaijmakers.

Basicamente una pantalla LCD funciona de manera similar a las televisiones de tipo LCD: un haz de luz es enviado a cada píxel de la pantalla filtrado mediante 4 capas previas, inciden sobre la última capa de cristal de la pantalla produciendo la forma específica según un campo eléctrico controlado entre las capas de los cristales y los filtros. Y la cuestión es que, según sea la potencia del campo eléctrico, los filtros dejaran escapar más o menos luz.

Y sabiendo esto, ya sabes cómo podemos iluminar más o menos el texto que nos mostrará el LCD de nuestro proyecto Arduino.

Como puedes ver el LCD tiene una serie de caracteres que se pueden conformar en filas y columnas, por lo que podemos hablar que este display LCD tiene dos filas y 16 columnas, lo que implica un total de 32 caracteres.

Elemento integrado con pantalla LCD de 16 x 2

En las tiendas de electrónica online tienes una gran cantidad de dispositivos integrados LCD que puedes usar en tus dispositivos, pero en este caso vamos a usar una pantalla LCD de cristal líquido para Arduino UNO de 2 x 16. Al estar integrado en un mismo circuito solo tienes que configurar el circuito con tu Arduino y olvidarte de el ensamblado de la flash y ROM del mismo.

Detalle del adverso de la pantalla LCD de 16 x 2

Como puedes ver el circuito LCD tiene 16 patillas que servirán para configurar la salida por pantalla de acuerdo a los pines que utilices y las características con la que los uses.

Patillaje del LCD de cristal líquido

Los pines que vamos a utilizar en nuestro proyecto de óhmetro con Arduino son:

● RS
● EN
● d4
● d5
● d6
● d7

Montaje ARDUINO Óhmetro.

Como vistes en la parte superior, vamos a utilizar 6 pines digitales que nos servirán como OUTPUT y también una entrada analógica A1, que nos servirá para controlar el flujo de luz que recibe la pantalla.

La conexión de los pines digitales de la placa Arduino UNO con el LCD 16 x 2 es la siguiente:

configuración de los pines de la Arduino al LCD

Una vez conectados los pines digitales, también tendrás que alimentar correctamente el display LCD. Ten en cuenta que con la propia alimentación del Arduino puedes sacar un par de cables de tensión para alimentar el display LCD. Esa tensión continua alimentará los pines 16 y 15 conectando el pin 16 del LCD al negativo de alimentación, y el pin 15 al positivo de alimentación. Además, el pin VCC y GND iran a positivo y negativo (respectivamente). Por último, tal como muestro a continuación, el pin RW debe de ir a negativo.

configuración de los pines de la Arduino al LCD

Fijate que para terminar necesitamos conectar desde el puerto analógico A01 la resistencia que queremos medir por un extremo; por el otro extremo se conectará a masa.

También necesitaremos limitar la corriente que entra al LCD gracias a una resistencia limitadora de 330 Ω. Esta resistencia se conectará al los pines +LED y -LED de la pantalla LCD.

Y para terminar, conectaremos un potenciómetro que estará alimentado entre sus extremos y a la vez, mediante su punto medio lo conectaremos al puerto RS del LCD. Esto nos permitirá darle más o menor nitidez a los caracteres que nos muestre la pantalla LCD, ya que va ligado a la alimentación que controlamos con el potenciómetro.

Nuevo SKETCH.

Vamos a empezar por el principio, lo primero es crear un nuevo Sketch de Arduino UNO que te permitirá establecer la medida y mostrarla en pantalla. El código es muy corto y tiene esta composición:


/*** VISITA MI PÁGINA WEB:
 *  MIRPAS.COM
 ***/
#include
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); //    ( PINES RS, EN, d4, d5, d6, d7)
int PUERTO_PIN = 1;
float RI_VALUE = 1000.0;
float FULL_SCALE = 1024.0;

void setup() {
lcd.begin(16, 2); // Fijar el numero de caracteres y de filas
lcd.print("Resistencia:"); // Enviar el mensaje
}

void loop() {
  int medida = analogRead (PUERTO_PIN);
  if (medida) {
    //formula resistiva:
  float resistorValue = RI_VALUE * medida / (FULL_SCALE - medida);
  lcd.setCursor(0, 8);  // set the cursor to column 0, line 1
  lcd.print(resistorValue); 
  delay(1000);
  }
  
}

Expliquemos el código:

Lo primero que tenemos que hacer es llamar a la librería liquidCristal.h, que nos ahorrará una infinidad de instrucciones configurando la pantalla LCD, sus filas y columnas.

A continuación creamos una instancia lcd, a partir de la librería, y le pasamos como parámetros los puertos que vamos a conectar de nuestra placa Arduino UNO y en el orden establecido anteriormente.

Asigno una variable para el puerto analógico (que controlará la nitidez del LCD), otra variable para que sea nuestra resistencia de referencia, en este caso es la resistencia de 1000 Ω. Por último una variable que coga el valor actual del potenciómetro. Se asigna a 1024 porque son los valores máximos que puede coger un puerto analógico y representa una tensión de 5V. Según se varie la resistencia del potenciómetro, bajará la tensión de alimentación aplicada.

En el setup inicializo el objeto lcd indicando al programa que tenga en cuenta el tipo de matriz del LCD, es decir que tiene dos filas y 16 columnas por fila. Además en la primera fila mostrará el mensaje "Resistencia:"

Y en el loop(), es donde programo la funcionalidad. Primero indico que el puerto 1 es analógico y que permanezca en modo de lectura. A continuación dentro de un condicional IF establezco la operación que va a calcular el valor de la resistencia a medir. Esta operación se calcula haciendo una regla de tres con los valores proporcionados por la resistencia patrón y la tensión que cae en el resistencia a medir. Fijate que ambas resistencias están en paralelo con el nodo del puerto analógico. Por lo tanto para finalizar establecemos el puntero en la posición en la que queremos que aparezca el valor de la resistencia. Eso se hace con el método setCursor() estableciendo por parámetros la posición específica para cada fila y columna (en este caso).

Para terminar el método delay() establece un 1 segundo de refresco (por si cambiamos el valor de la resistencia a medir).

Como puedes ver el circuito es muy sencillo de usar y muy fácil de ensamblar. Además te sirve para prácticar con las librerías usadas en Arduino.