En este tutorial, aprenderás paso a paso cómo utilizar un módulo HX711 con una celda de carga para realizar mediciones precisas de peso utilizando una placa de desarrollo Arduino y un display oled SH1106. Las celdas de carga son sensores ampliamente utilizados en aplicaciones de pesaje industrial, y el módulo HX711 proporciona una interfaz conveniente para conectar estas celdas de carga al Arduino.
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
El módulo HX711 es un amplificador y convertidor de ADC (convertidor analógico a digital) de alta precisión diseñado especialmente para aplicaciones de pesaje y sensores de carga. Este módulo se utiliza comúnmente en proyectos de electrónica DIY (hágalo usted mismo) y en aplicaciones industriales donde se requiere una lectura precisa de sensores de carga, como en balanzas y sistemas de medición de fuerza.
El HX711 es capaz de leer pequeñas señales analógicas de sensores de puente de tensión, como las utilizadas en células de carga, y amplificarlas para obtener una lectura precisa mediante un microcontrolador. Es compatible con una variedad de placas de desarrollo comunes, como Arduino, Raspberry Pi y otros dispositivos de desarrollo.
El módulo HX711 suele venir en una pequeña placa de circuito impreso que incluye el chip HX711 y conectores para los cables del sensor de carga. Algunos módulos también incluyen componentes adicionales, como resistencias y condensadores, para ayudar en la estabilidad y precisión de las mediciones.
Componentes electrónicos del proyecto
Arduino Nano
El Arduino Nano es una placa pequeña, completa y compatible con la placa de pruebas basada en el ATmega328 (Arduino Nano 3.x). Tiene más o menos la misma funcionalidad del Arduino Duemilanove, pero en un paquete diferente. Solo carece de un conector de alimentación de CC y funciona con un cable USB Mini-B en lugar de uno estándar.
Microcontrolador | ATmega328 |
Arquitectura | AVR |
Tensión de funcionamiento | 5 V |
Memoria flash | 32 KB de los cuales 2 KB utiliza el gestor de arranque |
SRAM | 2 KB |
Velocidad de reloj | 16 MHz |
Pines analógicos IN | 8 |
EEPROM | 1 KB |
Corriente CC por pines de E / S | 40 mA (pines de E / S) |
Voltaje de entrada | 7-12 V |
Pines de E / S digitales | 22 (6 de los cuales son PWM) |
Salida PWM | 6 |
El consumo de energía | 19 mA |
Tamaño de PCB | 18 x 45 mm |
Peso | 7 g |
Diagrama de pines
Un Zócalo para arduino
Pines hembra
Cables dupont hembra macho
Display oled sh1106
Se trata de un módulo de pantalla OLED monocromática DE 128×64 puntos con interface I2C .Que presenta varias ventajas en comparación con pantallas LCD, y podemos destacar su alto brillo, un muy buen contraste, un ángulo de visión más amplio, y bajo consumo de energía. ES compatible con Arduino Rasberry Pi y microcontroladores PIC entre otros. Trabaja con niveles lógicos de 3.3V a 5V tiene un angulo de visión mayor a los 160 grados. el Tamaño de la pantalla es de 1,3 pulgadas. Se alimenta con un voltaje de 3.3V a 5V Se lo puede usar en aplicaciones como relojes inteligentes, MP3, termómetros, instrumentos, y proyectos varios, etc.
Características
- Interface: I2C(3.3V / 5V logic level)
- Resolution: 128 x 64
- Angle of view: >160 degree
- Display color: Blue
- Display size: 1.3 inch
- Driver IC: SH1106
- Power supply: DC 3.3V~5V
- Operating temperature: -20~70’C
- Application: smart watch, MP3, thermometer, instruments, DIY projects, etc.
Módulo ky-004
El módulo KY-004 es un interruptor de límite mecánico que se utiliza para detectar el estado de un botón o interruptor. Este módulo se conecta a una tarjeta de desarrollo (como Arduino) a través de los pines de entrada y salida y se puede programar para detectar cuando se activa o desactiva el interruptor. También cuenta con un LED que se ilumina cuando el interruptor está activado. Es una parte común en proyectos de robótica y automatización para la detección de eventos.
Un Módulo HX711
Este módulo es una interfaz entre las celdas de carga y el microcontrolador, permitiendo poder leer el peso de manera sencilla. Internamente se encarga de la lectura del puente wheatstone formado por la celda de carga, convirtiendo la lectura analógica a digital con su convertidor A/D interno de 24 bits. Se comunica con el microcontrolador mediante 2 pines (Clock y Data) de forma serial.
El módulo amplificador HX711 es un transmisor entre las celdas de carga y un microcontrolador como Arduino, permitiendo leer el peso en la celda de manera sencilla. Es compatible con las celdas de carga de 5kg, 20kg y 50kg. Utilizado en sistemas de medición automatizada, procesos industriales, industria médica.
El chip HX711 posee internamente la electrónica para la lectura del puente de Wheatstone formado por la celda de carga y también un conversor ADC de 24 bits. Se comunica con el microcontrolador por medio de un protocolo de tipo serial mediante 2 pines (Clock y Data).
Las celdas de carga están formadas por galgas extensiométricas en configuración de puente Wheatstone. Para conectar la celda al módulo HX711 son necesarios 4 cables, los colores utilizados habitualmente son Rojo, Negro, Blanco y Verde. Cada color corresponde a una señal como se muestra a continuación:
Rojo: Voltaje de excitación +, E+, VCC
Negro: Voltaje de excitación -, E-, GND
Blanco: Amplificador +, Señal +, A+
Verde: Amplificador -, Señal -, A-
[img-2177-left-large_default]
Especificaciones Módulo Amplificador HX711 Celda
- Voltaje de alimentación: 2.7 V – 5 V
- Corriente de operación : < 1.5 mA
- Corriente en espera: <1 uA
- Digitalización completa en el chip HX711
- Conexión a protoboard o tarjeta con header estándar
- 2 canales diferenciales de entrada
- Interfaz de salida digital serial
- Con orificios para sujetar
- Con header de 10 pines
- Regulador integrado en chip para fuente analógica
- Operación seleccionable: 80 y 10 muestras por segundo
- Funciona con Arduino, Microcontroladores PIC y de otras marcas
- Dimensiones: 34 mm X 20 mm
- Modelo: HX711
Una celda de carga YZC-131
Las celdas de carga se utilizan para medir fuerzas. Esta celda consiste en un puente resistivo acoplado sobre una barra de aluminio. El montaje de esta celda permite anclarla por un extremo con dos tornillos, apoyando la fuerza en el otro. Así, la deformación que se produzca en la barra de aluminio al aplicar la fuerza se verá reflejada en el valor de las resistencias del puente y, a su vez, en la tensión de salida. La tensión de salida varía de forma lineal con la fuerza aplicada, por lo que una medida adecuada de esta nos permite obtener en valor de fuerza
- Celda de carga 3Kg
- Alimentación: 5-10V
- Salida nominal: 1 mV/V ± 150 μV/V
- Material: Aluminio
Conexionado del puente de medida:
- Alimentación: Rojo-Negro
- Señal: Verde-Blanco
PCB
Diagrama electrónico del pcb
Circuito
Código Fuente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#include "HX711.h"//Librería para el módulo HX711 #include <U8g2lib.h>//Librería para el control del display oled #define DAT 4 // Pin DAT del módulo HX711 conectado a Arduino #define CLK 5 // Pin CLK del módulo HX711 conectado a Arduino const int d12 = 12;//Pulsador para calibrar la tara HX711 scale; U8G2_SH1106_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE); void setup() { Serial.begin(9600);//Velocidad del puerto serial pinMode(d12, INPUT);//Se configura este pin como entrada para el pulsador scale.begin(DAT, CLK); scale.set_scale(731.0);//Calibración. Cambia este valor para ajustarlo a tu celda de carga. scale.tare();// Pone el valor actual como tara u8g2.begin();//Inicializa el display oled } void loop() { float peso = scale.get_units(10);//Toma 10 muestras para mayor presición Serial.print("Peso: "); Serial.println(peso, 1);//Vemos el valos del peso en el terminal serial u8g2.clearBuffer(); // Limpiar el buffer de la pantalla u8g2.setFont(u8g2_font_ncenB14_tr); // Establecer la fuente // Muestra Peso: en la pantalla u8g2.setCursor(0, 15); u8g2.print("Peso:"); u8g2.setCursor(0, 35); u8g2.print(peso, 1);//Muestra el valor del peso en el display u8g2.print(" gramos");//Muestra gramos en el display int boton12= digitalRead(d12);//Lee el estado del pulsador if(boton12==LOW){//Si se pulsa el pulsador se cumple esta condición scale.tare();//Pone el valor actual como tara u8g2.clearBuffer(); // Limpiar el buffer de la pantalla u8g2.setFont(u8g2_font_ncenB14_tr); // Establece la fuente u8g2.setCursor(0, 15); u8g2.print("Tara calibrada");//Muestra en el display Tara Calibrada Serial.println("Tara calibrada"); } u8g2.sendBuffer(); // Enviar la información del buffer a la pantalla delay(100); // Esperar un tiempo antes de la siguiente lectura } |
PROYECTO RECOMENDADO