Medidor de resistencias en Arduino – El Pinguyno y la Taza (2024)

Vamos a describir un montaje en Arduino de un medidor de resistencias, en el podremos aprender:

  • Divisor de Tensión o Voltaje.
  • Uso de las entradas analógicas de arduino.
  • Pull-Down para las gestión de un pulsador.
  • Uso del Display
  • Uso de variables estáticas encapsuladas para evitar errores de programación

Para poder calcular el valor de una resistencia utilizaremos un circuito divisor de tensión como se ve en la figura

Medidor de resistencias en Arduino – El Pinguyno y la Taza (1)

En el podemos ver la resistencia R1, que es la que deberemos calcular y en nuestro circuito lo conectaremos a la salida digital D2(Vin que dará 5V) y la entrada analogica A0 (Vout) luego tendremos R2 que es una resistencia que podra variar segun la resistencia que pongamos.

La resistencia de escala sera una resistencia que se conecta en la masa y Vout. para poder seleccionar la resistencia desde nuestro circuito pondremos estas resistencias (2K, 20K, 200K y 1M) en las Entradas/Salidas digitales (D3-D6) como podemos ver en el circuito.

La selección de la resistencia se realiza con el pulsador conectado a D12, poniendo todas las entradas/salidas digitales de las resistencias (D3-D6) como entradas y solo a modo salida la que nos interese tener y esta a LOW que seria su conexión a masa.

Quedando el código de esta selección de la siguiente forma:

// Se puede ver en la función escala(del código // Primero todas las resistencias como entrada pinMode(R2K,INPUT); pinMode(R20K,INPUT); pinMode(R200K,INPUT); pinMode(R1M,INPUT); int laescala= <PIN con la resistencia de escala a usar>pinMode(laescala,OUTPUT); // activa el pin de escala seleccionada a salida digitalWrite(laescala,LOW); // Ponemos Bajo que es Masa.

Para gestionar el pulsador del cambio de estado utilizaremos el siguiente texto:

 boolean estado = digitalRead(ESCALA); // Recoge el estado del pulsador if(estado) { while (digitalRead(ESCALA)) {;} // Si se ha pulsado esperamos a que se levante, para // evitar que este cambiando cada vez. escala(); // Cambia de escala }

La lectura del pin analógico es muy sencillo, solo tendremos que leerlo, convertir el valor leído a voltaje y con este realizar la formula indicada en el divisor de tensión para así calcular la resistencia R1.

// Mira valor de resistencia medida = analogRead(BORNA2); // Leemos valor de la entrada A0 // Conversion a voltaje voltaje = (medida * 5.0) / 1024.0; //Realizamos la formula del divisor de tensión ((vi/vol)-1)*Esca laescala= R_escala(); // Nos da la resistencia de escala en Kohmios valor = ((5.0/voltaje)-1) * laescala; // Si la escala fuera 2K deberemos convertir el valor a ohmios multiplicando por 1000impres_res(valor); // Imprime en el display el valor, viendo si debe marcar o no error según la escala. 

Otras funciones que interesa conocer son:

  • escala(): Realiza un cambio de escala y se apoya en dos funciones
  • set_escala(true): Realiza un cambio en la variable estática «escala» que solo puede ser cambiada en esa función (encapsulación) por eso si se llama con false solo envía el valor sin realizar ningún cambio. EN una programación de clases tendríamos la variable estática en la clase y dos funciones, una para cambiar el valor set_variable y otra para obtener el valor get_variable.
  • get_escala() llama a set_escala(false) para que le de la escala en la que esta.
Medidor de resistencias en Arduino – El Pinguyno y la Taza (3)

Todos los fuentes, junto al esquema y el proyecto fritzing lo podéis encontrar en el repositorio de GITHUB de pinguytaz.

Medidor de resistencias en Arduino – El Pinguyno y la Taza (2024)
Top Articles
Latest Posts
Article information

Author: Jeremiah Abshire

Last Updated:

Views: 6018

Rating: 4.3 / 5 (74 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Jeremiah Abshire

Birthday: 1993-09-14

Address: Apt. 425 92748 Jannie Centers, Port Nikitaville, VT 82110

Phone: +8096210939894

Job: Lead Healthcare Manager

Hobby: Watching movies, Watching movies, Knapping, LARPing, Coffee roasting, Lacemaking, Gaming

Introduction: My name is Jeremiah Abshire, I am a outstanding, kind, clever, hilarious, curious, hilarious, outstanding person who loves writing and wants to share my knowledge and understanding with you.