Como medir el valor de una resistencia con Arduino

Con este sencillo prototipo vamos a poder medir el valor aproximado de una resistencia con Arduino.

El principio de la medición de una resistencia desconocida se basa en la combinación de dos resistencias en serie, donde conocemos el valor de una de ellas. Además, la resistencia conocida no debe ser de poco valor (aproximadamente 1 kOhm), ya que la resistencia desconocida podría ser muy pequeño, y podría fluir mucha potencia a través de dos resistencias pequeñas. Mediante la medición de la tensión de la resistencia desconocida, se puede calcular el valor.

Sabemos que el voltaje de la placa Arduino es de +5V , sabiendo la caida de tensión en la resistencia desconocida podemos calcular su valor con la fórmula:

V1/R1 =V2/R2

Sabemos el valor de R1, Arduino mide V2, y sabemos que V1=+5V-V2

Componentes y materiales

  • Placa Arduino UNO
  • 1 Resistencias 1 KOhms
  • Protoboard
  • Cables
  • Resistencias para calcular sus valores

Esquema y montaje

El montaje es muy sencillo, conectamos las dos resistencias en serie a +5V y GND, y entre las dos resistencias conectamos un cable a la entrada analógica A5.

 

medir-resistencia-con-arduino

Código Arduino para medir el valor de una resistencia

En la primera parte del código configuramos las variables, es muy importante que el valor R1 corresponda con el valor de nuestra resistencia conocida. La variable float nos permite ver los valores numéricos con dos decimales.

  int   Pin_de_medicion = 5; // Pin analogico 5
  int   R1 = 1000; // Cambiar por el valor de la resistencia conocida
  long  lectura; // Lectura en el pin analogico 5
  float Tension_de_trabajo = 5.0; // VCC 
  float Voltaje_R2; // Valor que vamos a calcular
  float Resistencia; // Valor que vamos a calcular
...............

Después iniciamos la comunicación de la placa Arduino con el ordenador.

 .....................
 void setup()
{
  Serial.begin(9600);
  Serial.println("Medición de resistencia:");
  Serial.println();
}.................

Por último el programa mide el valor de la tensión el la resistencia desconocida y aplica la fórmula para calcular el valor de su resistencia. Después imprime el valor calculado en el Monitor Serie.

.................. 
void loop()
{
  // Leemos el valor en el pin A5
  lectura=0;
  for(int i=0;i<5;i++){
    lectura+=analogRead(Pin_de_medicion);
  }
  lectura=trunc(lectura/5);
  
  // Colculamos el voltaje en la resistencia desconocida
  Voltaje_R2=(Tension_de_trabajo/1023.0)*lectura;
  
  // Lo imprimimos en el Monitor Serie
  Serial.print("Voltaje en R2: ");
  Serial.print(Voltaje_R2,2);
  Serial.println(" Voltios");
  
  //Calculamos la resistencia desconocida con las fórmulas
  // (V1/R1=V2/R2) y (V1=+5V-V2)
  Resistencia=R1*Voltaje_R2/(Tension_de_trabajo-Voltaje_R2);
  Serial.print("La resistencia tiene ");
  Serial.print(Resistencia,2);
  Serial.println(" Ohm.");
  Serial.println();
  delay(5000);
}

Código completo

Copia, pega y modifica el código según tus necesidades.

/*  Medir el valor de una resistencia.  Calcula el valor de una resistencia.  Utiliza el código según tus necesidades  www.web-robotica.com */

  int   Pin_de_medicion = 5; // Pin analogico 5
  int   R1 = 679; // Cambiar por el valor de la resistencia conocida
  long  lectura; // Lectura en el pin analogico 5
  float Tension_de_trabajo = 5.0; // VCC 
  float Voltaje_R2; // Valor que calculamos
  float Resistencia; // Valor que calculamos

  void setup()
{
  Serial.begin(9600);
  Serial.println("Medición de resistencia:");
  Serial.println();
}

  void loop()
{
  // Leemos el valor en el pin A5
  lectura=0;
  for(int i=0;i<5;i++){
    lectura+=analogRead(Pin_de_medicion);
  }
  lectura=trunc(lectura/5);
  
  // Colculamos el voltaje en la resistencia desconocida
  Voltaje_R2=(Tension_de_trabajo/1023.0)*lectura;
  
  // Lo imprimimos en el Monitor Serie
  Serial.print("Voltaje en R2: ");
  Serial.print(Voltaje_R2,2);
  Serial.println(" Voltios");
  
  //Calculamos la resistencia desconocida con las fórmulas
  // (V1/R1=V2/R2) y (V1=+5V-V2)
  Resistencia=R1*Voltaje_R2/(Tension_de_trabajo-Voltaje_R2);
  Serial.print("La resistencia tiene ");
  Serial.print(Resistencia,2);
  Serial.println(" Ohm.");
  Serial.println();
  delay(5000);
}

Después de cargar el código en la placa Arduino y construir el circuito hay que abrir el Monitor Serie del programa Arduino. Cada 10 segundos se muestra el valor de la resistencia actual.

como-medir-resistencia-con-arduino3

En mi caso, al poner una resistencia de 10k en el circuito, Arduino calcula que tiene 10,1kOhm. La principal razón es que derivamos algo de tensión hacia la entrada analógica. Otro elemento a tener en cuenta es la tolerancia de la resistencia de referencia.

Espero que os ayude en vuestros prototipos.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *