Multimetro arduino

Otmar Kevin Aguilar León

Ronaldo Callisaya Abalos 

correo: ootmar1998gmail.com: 

Cuarto semestre paralelo 4ªA- Electrónica Básica –Universidad Pública del Alto

Introducción

En el presente proyecto práctico se procederá a ensamblar un multímetro con arduino para la obtención de medidas eléctricas como son: voltios, amperios y ohmios; utilizando cálculos matemáticos para utilizar dichos valores y procesarlos en una placa de transformación analógica-digital y poderlos así visualizar en una pantalla LCD.


Fundamento teórico

RESISTENCIAS

Se le denomina resistencia eléctrica a la igualdad de oposición que tienen los electrones al moverse a través de un conductor. La unidad de resistencia en el Sistema Internacional es el ohmio, que se representa con la letra griega omega (Ω), en honor al físico alemán Georg Ohm, quien descubrió el principio que ahora lleva su nombre. [1]


Una resistencia también llamado resistor es un elemento que causa oposición al paso de la corriente, causando que en sus terminales aparezca una diferencia de tensión (un voltaje).


Imagen de un resistor / resistencia - Electrónica Unicrom

Las resistencias o resistores son fabricadas principalmente de carbón y se presentan en una amplia variedad de valores. Hay resistencias con valores de Ohmios (Ω), Kilohmios (KΩ), Megaohmios (MΩ).

Los resistores son fabricados en una gran variedad de formas y tamaños.

En las más grandes, el valor del resistor se imprime directamente en el cuerpo del mismo, pero en los más pequeños no es posible. Para poder obtener con facilidad el valor de la resistencia / resistor se utiliza el código de colores

Sobre estos resistores se pintan unas bandas de colores. Cada color representa un número que se utiliza para obtener el valor final del resistor.


  • Las dos primeras bandas indican las dos primeras cifras del valor del resistor.

  • La tercera banda indica cuantos ceros hay que aumentarle al valor anterior para obtener el valor final del resistor.

  • La cuarta banda nos indica la tolerancia y si hay quinta banda, ésta nos indica su confiabilidad


Código de colores de las resistencias / resistores - Electrónica Unicrom


Los colores de las bandas de los resistores no indican la potencia que puede disipar, pero el tamaño que tiene el resistor da una idea de la disipación máxima que puede tener.


Los resistores comerciales disipan 1/4 watt, 1/2 watt, 1 watt, 2 watts, etc.

A mayor tamaño del resistor, más disipación de potencia (calor).


DISPLAY LCD

Una pantalla de cristal líquido o LCD (sigla del inglés liquid crystal display) es una pantalla delgada y plana formada por un número de píxeles en color o monocromos colocados delante de una fuente de luz o reflectora. A menudo se utiliza en dispositivos electrónicos de pilas, ya que utiliza cantidades muy pequeñas de energía eléctrica.lcd162b-yhy

Cada píxel de un LCD típicamente consiste de una capa de moléculas alineadas entre dos electrodos transparentes, y dos filtros de polarización, los ejes de transmisión de cada uno que están (en la mayoría de los casos) perpendiculares entre sí. Sin cristal líquido entre el filtro polarizante, la luz que pasa por el primer filtro sería bloqueada por el segundo (cruzando) polarizador.


ESPECIFICACIONES DEL LCD

Resolución

Las dimensiones horizontal y vertical son expresadas en píxeles. Las pantallas HD tienen una resolución nativa desde 1280x720 píxeles (720p) hasta 3840×2160 pixeles (4K).

Ancho de punto

Es la distancia entre los centros de dos píxeles adyacentes. Cuanto menor sea el ancho de punto, tanto menor granularidad tendrá la imagen. El ancho de punto suele ser el mismo en sentido vertical y horizontal, pero puede ser diferente en algunos casos.

Tamaño

El tamaño de un panel LCD se mide a lo largo de su diagonal, generalmente expresado en pulgadas (coloquialmente llamada área de visualización activa).

Brillo

La cantidad de luz emitida desde la pantalla; también se conoce como luminosidad.

Contraste

La relación entre la intensidad más brillante y la más oscura.

FUNCIONAMIENTO

El LCD modifica la luz que lo incide. Dependiendo de la polarización que se esté aplicando, el LCD reflejará o absorberá más o menos luz.http://blog.espol.edu.ec/marccc/files/2009/01/lcd.jpg

Cuando un segmento recibe la tensión de polarización adecuada no reflejará la luz y aparecerá en la pantalla del dispositivo como un segmento oscuro.


El líquido de un display LCD está entre dos placas de vidrio paralelas con una separación de unos micrones. Estas placas de vidrio tienen unos electrodos especiales que definen, con su forma, los símbolos, caracteres, etc. que se visualizarán.


La superficie del vidrio que hace contacto con el líquido es tratada de manera que induzca la alineación de los cristales en dirección paralela a las placas. Esta alineación permite el paso de la luz incidente sin ninguna alteración.


Cuando se aplica la polarización adecuada entre los electrodos, aparece un campo eléctrico entre estos electrodos (campo que es perpendicular a las placas) y esto causa que las moléculas del líquido se agrupen en sentido paralelo a este (el campo eléctrico) y cause que aparezca una zona oscura sobre un fondo claro (contraste positivo). De esta manera aparece la información que se desea mostrar. 


Arduino mega


Arduino es una marca de microcontroladores mundialmente conocida por los amantes de la electrónica, la programación y la robótica. Es un proyecto Open Source que pone a disposición de sus usuarios una amplia gama de dispositivos basados en el microcontrolador AtMega. Es posible comprar una placa Arduino armada o conseguir las piezas para uno mismo desarrollar sus propios dispositivos.

ArduinoMega2560_R3_Front_450px

El Arduino Mega es probablemente el microcontrolador más capaz de la familia Arduino. Posee 54 pines digitales que funcionan como entrada/salida; 16 entradas análogas, un cristal oscilador de 16 MHz, una conexión USB, un boton de reset y una entrada para la alimentación de la placa.

La comunicación entre la computadora y Arduino se produce a través del Puerto Serie. Posee un convertidor usb-serie, por lo que sólo se necesita conectar el dispositivo a la computadora utilizando un cable USB como el que utilizan las impresoras.

USB_CABLE

Arduino Mega posee las siguientes especificaciones:

  • Microcontrolador: ATmega2560

  • Voltaje Operativo: 5V

  • Voltaje de Entrada: 7-12V

  • Voltaje de Entrada(límites): 6-20V

  • Pines digitales de Entrada/Salida: 54 (de los cuales 15 proveen salida PWM)

  • Pines análogos de entrada: 16

  • Corriente DC por cada Pin Entrada/Salida: 40 mA

  • Corriente DC entregada en el Pin 3.3V: 50 mA

  • Memoria Flash: 256 KB (8KB usados por el bootloader)

  • SRAM: 8KB

  • EEPROM: 4KB

  • Clock Speed: 16 MHz

Alimentación

Arduino Mega puede ser alimentado mediante el puerto USB o con una fuente externa de poder. La alimentación es seleccionada de manera automática.

Cuando se trabaja con una fuente externa de poder se debe utilizar un convertidor AC/DC y regular dicho voltaje en el rango operativo de la placa. De igual manera se puede alimentar el micro mediante el uso de baterías. Preferiblemente el voltaje debe estar en el rango de los 7V hasta los 12V.

Arduino Mega posee algunos pines para la alimentación del circuito aparte del adaptador para la alimentación:

  • VIN: A través de este pin es posible proporcionar alimentación a la placa.

  • 5V: Podemos obtener un voltaje de 5V y una corriente de 40mA desde este pin.

  • 3.3V: Podemos ubtener un voltaje de 3.3V y una corriente de 50mA desde este pin.

  • GND: El ground (0V) de la placa.

Arduino puede ser programado de una manera muy fácil utilizando el lenguaje propio de Arduino junto con la interfaz Arduino IDE.

Arduino: http://arduino.cc/en/Main/ArduinoBoardMega2560


DIVISOR DE TENSION


https://upload.wikimedia.org/wikipedia/commons/d/db/Resistive_divider.png

Un divisor de voltaje es un circuito simple que reparte la tensión de una fuente entre una o más impedancias conectadas. Con sólo dos resistencias en serie y un voltaje de entrada, se puede obtener un voltaje de salida equivalente a una fracción del de entrada. Los divisores de voltaje son uno de los circuitos más fundamentales en la electrónica.


La fórmula matemática con la que podemos obtener los distintos valores que se tienen en este circuito es la siguiente:


V2=  VT* R2/(R1+R2)


Lo que quiere decir que: el voltaje en la resistencia 2 es igual al producto del voltaje total que ingresa en el circuito y el cociente entre la resistencia 2 y la suma de ambas resistencias.


Para la realización del presente proyecto se realizaron los siguientes cálculos.


Para el Voltimetro

Datos:


V2=Voltaje que va a recibir la entrada de arduino (maximo de 5v)

R1=Se utilizo una resistencia de 100Ω.


R2=Se utilizo una resistencia de 1kΩ.

V2=Voltaje máximo del arduino(5v)

Vvin=Voltaje del entrada









V2=  Vin*R2/(R1+R2)          (ec1)

(R1+R2) =  VT* R2/V2

V2=  Vin*R2/(R1+R2)

R1=R2( (Vin-V2)/V2)     (Formula General)

Remplazando en la ec1 para obtener el voltaje máximo que entra

V2=  5*100/100+1000

V2=  55 v

Para el óhmetro

La base matemática del óhmetro es la misma que se utilizó para realizar el voltímetro, pero en este caso se despeja una variable diferente, la cual en este caso es una resistencia.



V2=Voltaje que va a recibir la entrada de arduino.

R2=Se utilizo una resistencia de 2000Ω.

VT=Voltaje recivido de la placa arduino (5V).


V2=  VT* R2/(R1+R2)

R1+R2=  VT/V2*R2

R1=(VT/V2*R2)-R2

 R1=(2000 Ω/V2  V*5 V)-2000Ω

Para cambiar las escalas se usó resistencias de 2k, 20k, 200k, 2M

Nota: En este caso, el voltaje V2 va a variar de acuerdo al valor de resistencia que estemos midiendo; este valor que varía es el que nos permite obtener los diferentes valores de resistencia que deseemos calcular.

Para el amperímetro

Con ayuda de la ley de ohm

V=I*R

I=V/R

Con el voltímetro ya hallamos V

R=Sumatoria de resistencias.


USO DE LA PANTALLA LCD 16X2 CON ARDUINO


Una pantalla LCD son dispositivos diseñados para mostrar información en forma gráfica. LCD significa Liquid Crystal Display (Display de cristal líquido). La mayoría de las pantallas LCD vienen unidas a una placa de circuito y poseen pines de entrada/salida de datos. Arduino es capaz de utilizar las pantallas LCD para desplegar datos.

Para poder enviar datos al circuito integrado de una pantalla LCD desde Arduino se utiliza la librería LiquidCrystal que viene junto con Arduino IDE.


A continuación se procederá a mostrar los distintos pines de salida de una pantalla LCD.



Lcd_0


Estas pantallas constan de 16 pines. De izquierda a derecha, sus usos son los siguientes:


  • Pin 1 – VSS o GND

  • Pin 2 – VDD o alimentación (+5V)

  • Pin 3 – Voltaje de contraste. Se conecta a un potenciómetro.

  • Pin 4 – Selección de registro. Aquí se selecciona el dispositivo para su uso.

  • Pin 5 – Lectura/Escritura. Dependiendo del estado (HIGH o LOW), se podrá escribir o leer datos     en el LCD

  • Pin 6 – Enable. Es el pin que habilita o deshabilita el LCD.

  • Pin 7 hasta Pin 14 – Son los pines de datos por donde se envía o recibe información.

  • Pin 15 – El ánodo del LED de iluminación de fondo (+5v).

  • Pin 16 – El cátodo del LED de iluminación de fondo (GND).


Al contar con una pantalla LCD; para su utilización con el módulo de arduino, se debe realizar las siguientes conexiones:


lcd_schem



Esta configuración se la podrá utilizar con cualquier tipo de placa Arduino.

El proceso de montaje es el siguiente:


  • Utilizar un potenciómetro, el valor no es tan indispensable pero se recomienda uno de 10 KΩ. Los potenciómetros tienen 3 patas. La de la derecha se conecta a 5V en la placa Arduino. La pata de la izquierda se conecta en el GND de Arduino. La pata del centro se conecta al tercer pin en el LCD (Voltaje de contraste).


  • Se conecta el pin 1 el LCD al GND de Arduino.

  • El pin 2 del LCD va a 5V en Arduino.

  • El pin 4 va al pin 12 de Arduino.

  • El pin 5 se conecta a GND.

  • El pin 6 del LCD va al pin 11 en Arduino.

  • Los pines 7, 8, 9 y 10 del LCD no se conectan.

  • Los pines 11, 12, 13 y 14 del LCD se conectan en el 5, 4, 3 y 2 del Arduino, respectivamente.

  • El pin 15 se conecta en 5V y el pin 16 se conecta en GND.



Después de realizar las pruebas de conexión entre la placa Arduino y la pantalla Lcd, se procedió a ensamblar nuestro circuito en una baquelita perforada.


Después de verificar que las conexiones funcionen de manera correcta, se procedió a implementar una parte más en el circuito mostrado con anterioridad, “El Ohmetro”.


La base matemática del óhmetro es la misma que se utilizó para realizar el voltímetro, pero en este caso se despeja una variable diferente, la cual en este caso es una resistencia.



Método experimental

Materiales.-

Arduino mega 2560

Pantalla LCD 16x2

Resistencias 

Smith multiselector 

Carcasa de un timbre (se usó como carcasa de multímetro)

Cables de conexión

Placa virgen

Perclorato Férrico

Estaño

Cautín

El circuito se realizo en Poteus 8 

El diseño del circuito es el siguiente

En el ide del Arduino se desarrolló el siguiente código

#include
#include

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x3F, 16, 2);// Crea un Objeto LC. Parametros: (rs, enable, d4, d5, d6, d7)
int ve;//para el multimetro
int vol;
int estado;
int estado1;//ára el ohmetro
int estado2;
int estado3;
int estado4;
float corriente;//para el amperimetro
float R=1000;
void setup() {  
lcd.begin(); // Inicializa la interface para el LCD screen, and determina sus dimensiones (ancho y alto) del display
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A3,INPUT);
pinMode(A4,INPUT);
pinMode(A8,INPUT);
pinMode(A9,INPUT);
pinMode(A10,INPUT);
pinMode(A11,INPUT);
lcd.print("   MULTIMETRO");

lcd.setCursor(0, 1);
lcd.print("    DIGITAL");
delay(1000);// Imprime "LCD Tutorial" sobre el LCD}
}
void loop() {
estado=analogRead(A0);
if(estado>=10) {
lcd.setCursor(0, 0);
lcd.print("Voltimetro 2[V]"); // Imprime "LCD Tutorial" sobre el LCD}
float v2=analogRead(A0);
float voltaje=(v2*5)/1023;
double vin=voltaje*9.899082;
lcd.setCursor(6,1); // setea el cursor 
lcd.print(vin,3);
delay(500); //void loop 
lcd.clear();
}
estado=analogRead(A1);
if(estado>=10) {
lcd.setCursor(0, 0);
lcd.print("Voltimetro 20[V]"); // Imprime "LCD Tutorial" sobre el LCD}
float v2=analogRead(A1);
float voltaje=(v2*5)/1023;
float vin=voltaje*9.9629;
lcd.setCursor(6,1);
lcd.print(vin,2);
delay(500);
lcd.clear();
}
estado=analogRead(A2);
if(estado>=10) {
lcd.setCursor(0, 0);
lcd.print("Voltimetro 200[V]"); // Imprime "LCD Tutorial" sobre el LCD}
float v2=analogRead(A2);
float voltaje=(v2*5)/1023;
float vin=voltaje*10.037;
//vin=((int)vin*10)/10.0;
lcd.setCursor(7,1);
lcd.print(vin,1);
delay(500);
lcd.clear();
}

estado=analogRead(A3);
if(estado>=500) {
lcd.setCursor(0, 0);
lcd.print("Voltimetro 1000[V]"); // Imprime "LCD Tutorial" sobre el LCD}
float v2=analogRead(A3);
float voltaje=(v2*5)/1023;
float vin=voltaje*10.037;
lcd.setCursor(8,1);
lcd.print(vin,0);
delay(500);
lcd.clear();
}
estado=analogRead(A4);
if(estado>=10) {
lcd.setCursor(0, 0);
lcd.print("Amperimetro[200mA]"); // Imprime "LCD Tutorial" sobre el LCD}
float v2=analogRead(A4);
double voltaje=(v2*5)/1023;
float vin=voltaje*19.02;
lcd.setCursor(8,1);
lcd.print(vin);
delay(500);
lcd.clear();

}
estado=analogRead(A5);
if(estado>=10) {
lcd.setCursor(0, 0);
lcd.print("Amperimetro[20mA]"); // Imprime "LCD Tutorial" sobre el LCD}
float v2=analogRead(A5);
double voltaje=(v2*5)/1023;
float vin=voltaje*19.02;
lcd.setCursor(8,1);
lcd.print(vin,1);
delay(500);
lcd.clear();

}
estado=analogRead(A6);
if(estado>=10) {
lcd.setCursor(0, 0);
lcd.print("Amperimetro[2mA]"); // Imprime "LCD Tutorial" sobre el LCD}
float v2=analogRead(A6);
double voltaje=(v2*5)/1023;
float vin=voltaje*19.02;
lcd.setCursor(8,1);
lcd.print(vin,0);
delay(500);
lcd.clear();

}


estado1=analogRead(A8);
if(estado1<950) {
lcd.setCursor(0, 0);
lcd.print("ohmetro 200"); // Imprime "LCD Tutorial" sobre el LCD}
float medida=analogRead(A8);
float res=1977*medida/(1023-medida);

lcd.setCursor(8,1);
lcd.print(res);
delay(1000);
lcd.clear();
}

estado2=analogRead(A9);
if(estado2<950&&estado3>20&&estado4>20) {
lcd.setCursor(0, 0);
lcd.print("ohmetro 2k"); // Imprime "LCD Tutorial" sobre el LCD}
float medida=analogRead(A9);
float res=19600*medida/(1023-medida);

lcd.setCursor(8,1);
lcd.print(res);
delay(1000);
lcd.clear();
}
estado3=analogRead(A10);
if(estado3<900) {
lcd.setCursor(0, 0);
lcd.print("ohmetro 20k"); // Imprime "LCD Tutorial" sobre el LCD}
float medida=analogRead(A10);
float res=199785*medida/(1023-medida);

lcd.setCursor(8,1);
lcd.print(res);
delay(1000);
lcd.clear();
}
estado4=analogRead(A11);
if(estado4<900) {
lcd.setCursor(0, 0);
lcd.print("ohmetro 200k"); // Imprime "LCD Tutorial" sobre el LCD}
float medida=analogRead(A11);
float res=1929879*medida/(1023-medida);

lcd.setCursor(8,1);
lcd.print(res);
delay(1000);
lcd.clear();


}


}


Luego del quemado de la placa se realiza el montaje de los componentes

Quedo de la suiguiente forma


C:\Users\Otmar\AppData\Local\Microsoft\Windows\INetCache\Content.Word\20180520_105951.jpgC:\Users\Otmar\AppData\Local\Microsoft\Windows\INetCache\Content.Word\20180520_105924.jpg


C:\Users\Otmar\AppData\Local\Microsoft\Windows\INetCache\Content.Word\20180520_105942.jpg






Dependiendo de cómo se efectuó la instalación del circuito y si la programación se la realizo de una manera correcta; funcionara a la perfección, sino se deberá verificar los distintos posibles problemas que surgieron y arreglar para que el multímetro funcione con éxito.

A continuación se mostrara el funcionamiento del instrumento.

Conclusiones 

  • Al realizar la instalación del display Lcd se debe tomar en cuenta que todos los puertos se deben conectar a su respectiva posición ya que si uno de ellos no está correctamente conectado o se olvida de conectarlo, el funcionamiento de la pantalla no va a ser el adecuado y va a causar fallas.
  • Se debe declarar las variables como “double” ya que estas al estar declaradas como enteras, no se podrá visualizar el valor de variación, y los datos que se muestren en pantalla va a ser un solo dato entero y va a variar constantemente.
  • Si la programación que se realizo es correcta, pero persiste en mostrarse otros valores; puede deberse a dos problemas principales:
  • Puede estar mal conectados las entradas de datos de la pantalla lcd a los pines de la placa arduino.
  • Puede que se haya obviado o pasado por alto la conexión a tierra, este dato es muy importante ya que si no se la conecta de manera adecuada los valores que se muestren en la pantalla se presentaran con fallas.
ESTE SITIO FUE CONSTRUIDO USANDO