Amplificador operacional HX711


 Amplificador operacional HX711

Existen transductores de fuerza bastante sencillos de utilizar y compatibles con microcontroladores como Arduino. Constan de una célula de fuerza y un módulo de conversión. La célula de carga es un sensor de galgas extensométricas que mide la fuerza en una dirección del espacio. Suele ir acompañado de un módulo HX711 capaz de amplificar la medición de las fuerzas aplicadas a la célula de fuerza.

Existen tres tipos de PCB que en las que vienen montadas:

HX711 Modulo AD para Celda de carga PCB Verde

hx711 verde

  • Convertidor (ADC): HX711
  • Color PCB: Verde
  • Modelo: Tamaño pequeño
  • Voltaje de alimentación VCC: 2.7V a 5V DC
  • Resolución conversión A/D: 24 bit
  • Frecuencia de lectura: 80 Hz
  • 2 canales diferenciales de entrada
  • Interfaz de salida digital serial
  • PCB con orificios para sujetar
  • Incluye 10 header´s macho
  • Consumo de corriente: menor a 10mA
  • Voltaje de entrada diferencial: ±40mV
  • Celdas de carga compatibles:
  • Compatible con placas Arduino, Esp32, Pic´s y más
  • Dimensiones: 34mm x 21mm
  • Peso: 2.2g

conexión con la placa Arduino.

Conexion hx711 verde


HX711 Modulo AD para Celda de carga PCB Azul

HX711 Azul

  • Convertidor (ADC): HX711
  • Color PCB: Azul
  • Modelo: Modulo AD de puerto serial
  • Voltaje de alimentación VCC: 2.7V a 5V DC
  • Consumo de corriente: 12mA
  • Resolución conversión A/D: 24 bit
  • Diseño de doble canal AB
  • Transmisión de datos: Activa y Pasiva
  • Velocidad:
    • 9600 bps
    • 10Hz u 80Hz
  • Comunicación serial simple TTL232
  • Puede transferir datos de TTL a USB
  • Puede suprimir simultáneamente las interferencias de potencia de 50Hz y 60Hz
  • Celdas de carga compatibles:
  • Compatible con placas Arduino, Esp32, Pic´s y más
  • Dimensiones: 33.2mm x 20.3mm
  • Peso: 3.5g

Conexión con la placa Arduino.

Conexión hx711 Azul

HX711 Modulo AD para Celda de carga PCB Morado

HX711 morado

  • Convertidor (ADC): HX711
  • Color PCB: Morado
  • Modelo: Modulo AD de alta precisión
  • Voltaje de alimentación VCC: 2.7V a 5V DC
  • Resolución conversión A/D: 24 bit
  • Interfaz
    • Switch de Entrada
    • La ganancia programable del canal A es de:
      • 128 @ ± 20mV
      • 64  @  ±40mV
    • La ganancia programable del canal B es de:
      • 32 fija
  • Velocidad (RATE):
    • 10Hz
    • 80Hz
  • Corriente:
    • Típica de Operación: <1.7mA
    • Apagado: <1μA
  •  Características:
    • Alta precisión
    • Fuente de Alimentación Regulada
    • Oscilador de Reloj
  • Ventajas
    • Alta Integración
    • Rápida respuesta
    • Confiabilidad
  • Celdas de carga compatibles:
  • Compatible con placas Arduino, Esp32, Pic´s y más
  • Velocidad de respuesta rápida y fuerte antiinterferencia
  • Dimensiones: 30.3mm x 22.5mm
  • Peso: 4.4g
Conexión con placa Arduino.
conexión  hx711 morado

Esquema de montaje como amplificador de intensidad de corriente

El conexionado de la placa consiste en un divisor de tensión formado por dos resistencia una de 1 K (10k, 100k 1000k según en la escala que se quiere medir) y otra de 1 que es donde vamos a medir la tensión que coincidirá con la intensidad de corriente. Es quema será como se indica en el esquema siguiente:



Montaje en la placa la resistencia que está dibujadas son las de 1k\( \Omega \o la que se opte:



Principio de funcionamiento con puente de Weahstone

El módulo HX711 está compuesto por un amplificador y un convertidor analógico-digital HX711. Permite la amplificación de una señal enviada por una célula de carga. El sensor de fuerza utiliza un puente de Weahstone para convertir la fuerza que se le aplica en una señal analógica.


Esquema

El módulo HX711 se comunica con el microcontrolador mediante dos pines digitales (SCK y DOUT) y se alimenta de 5V. Está conectado a la célula de fuerza por 4 hilos cuyo color sigue siendo el estándar en los puentes Wheastone:

  • Excitación+ (E+) o VCC ROJO
  • Excitación- (E-) o GND NEGRO o AMARILLO
  • Salida+ (O+), Señal+ (S+) o Amplificador+ (A+) BLANCO
  • O-, S-, o A- VERDE o AZUL

hx711 esquema


Ejemplo de programacion:

//Especificaciones de la pantalla
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display ancho, in pixels
#define SCREEN_HEIGHT 64 // OLED display alto, in pixels

// Declaration los pines para

#define OLED_MOSI   11
#define OLED_CLK   13
#define OLED_DC     8
#define OLED_CS    10
#define OLED_RESET  9

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

//Especificaciones del amplificador operacional HX711
#include "HX711.h"   // HX711 Pines de comunicación con la módulo

const int DOUT_PIN = 2;
const int SCK_PIN = 3;
const double calibration = 599.18f ;// el valor que venia es 599.18f
double intensidad;

HX711 scale;


void setup() {

  Serial.begin(38400);

  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally

  if(!display.begin(SSD1306_SWITCHCAPVCC)) {

    Serial.println(F("SSD1306 allocation failed"));

    for(;;); // Don't proceed, loop forever
  }

  display.clearDisplay();

  display.setTextColor(WHITE); // método para poner el color del texto.

  display.setCursor(0,0); // método donde va a excribir el texto.

  display.println("  IES Torre del Tajo"); //Texto que se va a escribir
 
  display.display();


  display.drawLine(0, 10, 128, 10, WHITE); // dibujar línea, cordenadas del primer punto, corordenadas del segundo punto y color.

  display.display();
 
 // llamamos a la clase hx711, especificamos los pines de datos donde están conectados y el puerto de que vamosa trabajar

 scale.begin(DOUT_PIN, SCK_PIN, 128);
 scale.set_scale(calibration);  
}

void loop() {

 

  display.clearDisplay();  // método para ´impiar la pantalla

 
  display.setTextSize(1);  // método para poner el tamaño del texto.

  display.setCursor(0,0); // método donde va a excribir el texto.

  display.println("  IES Torre Del Tajo"); //Texto que se va a escribir

  display.display();  //llamamos ha este método para que lo dibuje.

  display.drawLine(0, 10, 128, 10, WHITE); // dibujar línea, cordenadas del primer punto, corordenadas del segundo punto y color.

  display.display();

 

  display.setTextSize(2);  // método para poner el tamaño del texto.

  display.setCursor(0,12); // método donde va a excribir el texto.

  Serial.print("Corriente:");
 
  intensidad = scale.get_units(10);

  char buf[21];                     // buffer for max 20 char display
  char lastNettBuf[14];
  dtostrf(intensidad, 10, 2, lastNettBuf);     // Convetir el numero de real a caracter
  snprintf(buf, sizeof buf, "%10s\xB5\A", lastNettBuf);  //guarda los datos en un bufer

  Serial.println(buf); // imprime el buffer donde esta almacenado el dato de la intensidad.

  display.display();
  //encendido y apagado del relé

scale.power_down();              // poner el ADC en modo de suspensión
  delay(2000);
  scale.power_up();


  }

No hay comentarios:

Publicar un comentario