MULTIMETRO

MULTÍMETRO DIGITAL CON ARDUINO
 INTEGRANTES:
Neyda Mamani Choque.            Ø  neydamamani@hotmail.com
Paola Aguilar Paco                    ØPaoguilarpa17670@gmail.com
Pamela Paola Mamani Vallejos. Ø  Pame-99446@hotmail.com
Paola Gema Mamani Janco.       Øgemajancopaola@gmail.com

Cuarto semestre paralelo 4”A”- Electrónica Básica
Universidad Pública de El Alto UPEA

RESUMEN:
El tema está referido a un multímetro y es la unión de distintos instrumentos como ser: el óhmetro, el voltímetro y amperímetro.
Se sabe que el multímetro es un instrumento portátil y con la ayuda de una PC o LAPTOP podremos cargar datos al Arduino para que pueda actuar como un instrumento múltiple y podamos observar las medidas en el LCD.
Para ello se debe unir el LCD con el ARDUINO y esto nos servirá para que los datos se muestren correctamente.

INTRODUCCIÓN:
El multímetro es un aparato de medición eléctrica que reagrupa las funciones de un amperímetro (medidor de corriente), de un voltímetro (medición de voltaje), en un óhmetro (medidor del valor de una resistencia). Este instrumento es muy útil ya que facilita a obtener las medidas; voltaje, corriente y tensión.

OBJETIVOS:

Objetivo general:

Poner en práctica los conocimientos adquiridos en electrónica aplicados al desarrollo de un multímetro digital en la placa arduino.

Objetivo específico:

*      Saber efectuar una medida de voltaje de corriente de resistencia con un multímetro digital.
*      Demostrar el funcionamiento del multímetro desarrollado en arduino.
Describir el proceso de desarrollo del multímetro digital.

VOLTIMETRO:
Un voltímetro es un instrumento de medición que se utiliza para medir la diferencia de potencial eléctrico, también conocido como voltaje, entre dos puntos en una corriente eléctrica. El voltaje se conoce como la energía potencial eléctrica por unidad de carga, es responsable de la conducción de una corriente de un electrón a otro electrón, por lo cual el voltímetro necesita unos ciertos componente que tiene que conocer por lo cual un voltímetro es aquel donde mide el voltaje de una pila ya que el arduino tiene una capacidad de soportar unos 15 [v] como máximo ya que sería riesgoso introducir más voltaje.

AMPERIMETRO:
El amperímetro es un aparato de medida utilizado para medir la intensidad o corriente eléctrica. Para realizar el amperímetro usaremos el mismo procedimiento que veremos en el voltímetro, ya que cumple la misma función porque solo usaremos un mismo teorema que es sobre divisores de tensión.
De esta manera usaremos los mismos materiales que el voltímetro solo con dos resistencias y el código será prácticamente similar ya que de esta manera pueda medir no solo voltímetro sino amperímetro al mismo tiempo.


OHMETRO:

El ohmímetro u óhmetro es un dispositivo que sirve para medir resistencias. Como bien mencionamos el multímetro  se compone de los tres instrumentos, por tanto construimos  estos instrumentos con la placa del arduino, con el fin de aplicar los conocimientos adquiridos.
Para la última parte del proyecto utilizaremos una resistencia de 220 ohm y utilizaremos un divisor de tensión en la cual nuestra tensión de entrada será la tensión del arduino que es 5v y la salida que será de 5V y teniendo esos valores podemos despejar la ecuación para encontrar el valor de la segunda resistencia R2.


MATERIALES DE USO:

Los materiales necesarios para desarrollar el multímetro digital consta de los siguientes componentes electrónicos.

1.    Arduino mega.
2.      Pantalla de LCD 16 x 2.
3.      Jumper cables.
4.      Un potenciómetro
5.      Tester.
6.      Protoboard.
7.      Sensor de temperatura y humedad (dht11)
8.      Resistencias.
9.  Dipswitch.
10.  Leeds.
                                      

Multímetro:

El multímetro nos ayuda a medir continuidad, amperaje y voltaje que se lo puede utilizar en muchas funciones para la medición de electricidad o no tenga electricidad, ya que este aparato es de suma importancia en la electricidad general.



CONEXIÓN DE CIRCUITO:




EMULACION DE MULTIMETRO CON PROTEUS:


CIRCUITO DEL MULTIMETRO:


CALCULOS REALIZADOS PARA LA CONSTRUCCION DEL MULTIMETRO:
Para la realización del presente proyecto se realizaron los siguientes cálculos de acuerdo a los rangos que se proponen.
R1: 0 – 10V
R2: 0 – 30V
                                                                 R3: 0 – 50V
Tomando estos datos en cuenta, se procedió a realizar los siguientes cálculos:
R1: 0 – 10V
Datos:
V2 = voltaje que va a recibir la entrada al arduino (máximo de 5v)
V2 = se utilizó una resistencia de 220 ohmios.
VT = voltaje máximo del rango (10V.)





R2: 0 – 30V
Datos:
V2 = Voltaje que va a recibir la entrada de arduino (máximo de 5v).
V2 = Se utilizó una resistencia de 220 ohmios.
VT = Voltaje máximo del rango (30V.)



 R1 = 0 – 50V
Datos:
V2 = Voltaje que va a recibir la entrada de arduino (máximo de 5v)
V2 = Se utilizó una resistencia de 22º ohmios.
VT = Voltaje máximo del rango (50v.)




En el caso de este rango, se debería aumentar un poco el valor de la resistencia, por que de acuerdo al rango de tolerancia su valor pueden variar en más o menos; en el caso de las resistencias la mayoría de veces es menor el valor de su capacidad resistiva así que se le aumenta más o menos un 10% para que sea factible utilizar en el máximo valor del rango de medición.



PROCEDIMIENTO:

En primera parte: desarrollaremos el armado de la pantalla LCD con el arduino y con el protoboard.




Conectar el LCD a la placa como se muestra arriba y  las conexiones se harán de la siguiente manera.
* LCD RS a pin digital pin 12
* LCD Enable pin a pin digital 11
* D4 LCD pin a pin digital 5
* D5 LCD pin a pin digital 4
* LCD D6 pin al pin digital 3
* LCD D7 pin al pin digital 2
* LCD R/W pin a tierra
* Pin de VSS LCD a tierra.
* Pin de VCC LCD a 5V.

RESULTADOS DEL VOLTIMETRO, OHMETRO, AMPERIMETRO.

PROGRAMACION:
Es una placa de sencilla contiene entradas y salidas simples y un entorno de desarrollo que implementa el lenguaje de programación.


*programación *
#include<LiquidCrystal.h>
#include<DHT11.h>//LIBRERIA PARA EL CENSOR DHT11
DHT11 dht11(10);//ESTO ES PARA CENSOR DHT11
int Vin = 5; //ESTO ES PARA OHM
float Vout = 0; //ESTO ES PARA OHM
float R1 = 1000; //ESTO ES PARA OHM
float R2 = 0; //ESTO ES PARA OHM
float buffer = 0; //ESTO ES PARA OHM

LiquidCrystal  lcd(2, 3, 4, 5, 6, 7);
void setup() {
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("****NEYDA****");
  lcd.setCursor(0, 1);
  lcd.print("* Y LAS PAOLAS *");
  delay(3000);
  lcd.setCursor(0, 0);
  lcd.print("ING. DE SISTEMAS");
  lcd.setCursor(0, 1);
  lcd.print("CUARTO SEMESTRE");
  lcd.setCursor(0,0);
  lcd.print("L<<<<<<<<<<<<<<<");
  delay(100);
  lcd.setCursor(0, 0);
  lcd.print(">>>>>>>>>>>>>>MU");
  lcd.setCursor(0, 1);
  lcd.print("AL<<<<<<<<<<<<<<");
  delay(100);
  lcd.setCursor(0, 0);
  lcd.print(">>>>>>>>>>>>>MUL");
  lcd.setCursor(0, 1);
  lcd.print("TAL<<<<<<<<<<<<<");
  delay(100);
  lcd.setCursor(0, 0);
  lcd.print(">>>>>>>>>>>>>MULT");
  lcd.setCursor(0, 1);
  lcd.print("ITAL<<<<<<<<<<<<<");
  delay(100);
  lcd.setCursor(0, 0);
  lcd.print(">>>>>>>>>>>>MULTI");
  lcd.setCursor(0, 1);
  lcd.print("GITAL<<<<<<<<<<<<");
  delay(100);
  lcd.setCursor(0, 0);
  lcd.print(">>>>>>>>>>MULTIM");
  lcd.setCursor(0, 1);
  lcd.print("IGITAL<<<<<<<<<<");
  delay(100);
  lcd.setCursor(0, 0);
  lcd.print(">>>>>>>>>MULTIME");
  lcd.setCursor(0, 1);
  lcd.print("DIGITAL<<<<<<<<<");
  delay(100);
  lcd.setCursor(0, 0);
  lcd.print(">>>>>>>>MULTIMET");
  lcd.setCursor(0, 1);
  lcd.print("DIGITAL<<<<<<<<<");
  delay(100);
  lcd.setCursor(0, 0);
  lcd.print(">>>>>>>MULTIMETR");
  lcd.setCursor(0, 1);
  lcd.print(">DIGITAL<<<<<<<<");
  delay(100);
  lcd.setCursor(0, 0);
  lcd.print(">>>>>>MULTIMETRO");
lcd.setCursor(0, 1);
  lcd.print(">>DIGITAL<<<<<<<");
  delay(100);
  lcd.setCursor(0, 0);
  lcd.print(">>>>MULTIMETRO<<");
  lcd.setCursor(0, 1);
  lcd.print(">>>DIGITAL<<<<<<");
  delay(100);
  lcd.setCursor(0, 0);
  lcd.print(">>>MULTIMETRO<<<");
  lcd.setCursor(0, 1);
  lcd.print(">>>>DIGITAL<<<<<");
  delay(2000);
  lcd.clear();
}
void loop() {
  digitalWrite(22, HIGH);
  digitalWrite(24, HIGH);
  digitalWrite(26, HIGH);
  digitalWrite(28, HIGH);
  digitalWrite(30, HIGH);
  int estado = 0;
  int conexionA = 0;
  int conexionB = 0;
  int conexionC = 0;
  int conexionD = 0;
  int conexionE = 0;
  if (digitalRead(22) == LOW) {
    estado = 1;
    conexionA = 1;
  }
  if (digitalRead(24) == LOW) {
    estado = 2;
    conexionB = 1;
  }
  if (digitalRead(26) == LOW) {
    estado = 3;
    conexionC = 1;
  }
  if (digitalRead(28) == LOW) {
    estado = 4;
    conexionD = 1;
  }
  if (digitalRead(30) == LOW) {
    estado = 5;
    conexionE = 1;
  }
  int conexiontotal = conexionA + conexionB + conexionC + conexionD + conexionE;
  if (conexiontotal > 1)
  {
    estado = 6;
  }
  if (conexiontotal == 0)
  {
    estado = 7;
  }

  switch (estado) {
    case (1): {
        lcd.setCursor(0, 0);
        lcd.print("***VOLTIMETRO***");
        double  sensorValue = analogRead(A0);
        double  voltaje = sensorValue / 29.86807388;
        lcd.setCursor(2, 1);
        if (voltaje >= 1000)
        {
          lcd.print(voltaje / 1000, 2);
          lcd.setCursor(10, 1);
          lcd.print("[KVol]");
        }
        else {
          if (voltaje >= 1) {
            lcd.print(voltaje, 2);
            lcd.setCursor(10, 1);
            lcd.print("[Vol]");
          }
          else {
            if (voltaje <= 1) {
              lcd.print(voltaje * 1000, 2);
              lcd.setCursor(10, 1);
              lcd.print("[mVol]");
            }
          }
        }
        delay(500);
        lcd.clear();
        break;
      }
    case (2): {
        double corriente = (analogRead(0) * (0.00490f)) / (0.00001f); ///(0.01f)

        lcd.setCursor(0, 0);
        lcd.print("** AMPERIMETRO**");
        lcd.setCursor(2, 1);
        if (corriente < 1000)
        {
          lcd.print(corriente, 2);
          lcd.setCursor(10, 1);
          lcd.print("[mAmp]");
        }
        else {
          if (corriente < 1000000) {
            lcd.print(corriente / 1000, 2);
            lcd.setCursor(10, 1);
            lcd.print("[Amp]");
          }
          else {
            if (corriente < 1000000000) {
              lcd.print(corriente / 1000000, 2);
              lcd.setCursor(10, 1);
              lcd.print("[kAmp]");
            }
          }
        }
        delay(300);
        lcd.clear();
        break;
      }
    case (3): {
        double raw = analogRead(A1);
        buffer = raw * Vin;
        Vout = (buffer) / 1024.0;
        buffer = (Vin / Vout) - 1;
        R2 = ((R1 * buffer) / 1.02520602) * 10;

        lcd.setCursor(0, 0);
        lcd.print("<-> OHMETRO <->");
        if (R2 < 1000) {
          lcd.setCursor(2, 1);
          lcd.print(R2, 2);
          lcd.setCursor(10, 1);
          lcd.print("ohm");
        }
        if (R2 < 1000000 && R2 > 999) {
          lcd.setCursor(2, 1);
          lcd.print(R2 / 1000, 2);
          lcd.setCursor(10, 1);
          lcd.print("k ohm");
        }
        if (R2 < 1000000000 && R2 > 999999) {
          lcd.setCursor(2, 1);
          lcd.print(R2 / 1000000, 2);
          lcd.setCursor(10, 1);
          lcd.print("M ohm");
        }
        delay(1000);
        lcd.clear();
        break;
      }
    case (4): {

        int err;
        float temp, hum;
        if ((err = dht11.read(hum, temp)) == 0)
        {
          lcd.setCursor(0, 0);
          lcd.print("temp:");
          lcd.setCursor(9, 0);
          lcd.print(temp / 3);
          lcd.setCursor(14, 0);
          lcd.print("oC");
          lcd.setCursor(0, 1);
          lcd.print("humedad: ");
          lcd.setCursor(9, 1);
          lcd.print(hum / 3);
          lcd.setCursor(14, 1);
          lcd.print(" %");
        }
        else {
          lcd.setCursor(5, 0);
          lcd.print(err);
        }
        delay(1000);
        lcd.clear();
        break;
      }
   
    case (6): {
        lcd.setCursor(0, 0);
        lcd.print("DOS O MAS SWITCH");
        lcd.setCursor(0, 1);
        lcd.print("HABILITADOS!!!!");
        delay(500);
        lcd.clear();
        break;
      }
    default : {
        lcd.setCursor(0, 0);
        lcd.print("sin conexion");
        char mensaje[26] = "HABILITA UN SWITCH AHORA";
        for (int i = 0; i < 25; i++) {
          lcd.setCursor(0, 1);
          for (int x = i; x < i + 16; x++) {
            if ((int)x >= 25)
            {
              lcd.print(mensaje[x - 25]);
            }
            else {
              lcd.print(mensaje[x]);
            }
          }
          delay(300);
        }
        lcd.clear();
        break;
      }
  }
}
void parpadeo(int pin, int ms)
{
  digitalWrite(pin, HIGH);
  lcd.setCursor(0, 1);
  delay(ms);
  digitalWrite(pin, LOW);

}

CONCLUSIÓN:
La construcción del  multímetro  en la placa arduino sin duda, ha ayudado a poner en práctica los conocimientos adquiridos en electrónica básica, como también  los conocimientos desarrollados en programación con arduino.
Por tanto, el desarrollo del proyecto  muestra la funcionalidad  de tres instrumentos de medida como es el óhmetro, voltímetro  y amperímetro.

REFERENCIAS:

http//lasonrizadelbien.blogspot.com/p/blog-page_8.html?m=1
                                                               

  VIDEO:
seguir el siguiente enlace: https://www.youtube.com/watch?v=gmJxn-rpQEo&feature=youtu.be






Comentarios

Entradas más populares de este blog

PREINFORME