Célula de Carga de Precisão 5kg Peso Arduino: Manual Técnico Completo

Célula de Carga 5kg — manual técnico completo

Introdução

Neste manual, será apresentado como instalar, configurar e utilizar a célula de carga de precisão de 5kg para Arduino. Se desejar adquirir este produto, clique aqui.

A medição quantitativa de massa e força em bancadas de engenharia, sistemas embarcados e equipamentos de dosagem exige transdutores capazes de converter deformações elásticas microscópicas em sinais elétricos proporcionais de alta repetibilidade. A célula de carga do tipo viga paralela (parallel beam single-point load cell) com capacidade nominal de 5 kg opera com quatro extensômetros de resistência elétrica (strain gauges) configurados em Ponte de Wheatstone completa (full-bridge), oferecendo compensação térmica ativa e resolução adequada para balanças digitais de precisão, sistemas de controle de estoque e plataformas de automação com Arduino e ESP32.

Especificações técnicas

Principais especificações

As características mecânicas, dimensionais e de tolerância metrológica da célula de carga de precisão de 5 kg estão detalhadas na tabela a seguir:

ParâmetroEspecificação
Capacidade nominal (Carga máxima de fundo de escala)5 kg5\,\text{kg} (5000 g5000\,\text{g})
Sensibilidade nominal (Rated Output)1,0±0,15 mV/V1{,}0 \pm 0{,}15\,\text{mV/V}
Não linearidade (Non-linearity)±0,05% F.S.\pm 0{,}05\%\,\text{F.S.} (Full Scale)
Histerese (Hysteresis)±0,05% F.S.\pm 0{,}05\%\,\text{F.S.}
Repetibilidade (Repeatability)±0,05% F.S.\pm 0{,}05\%\,\text{F.S.}
Fluência (Creep, em 30 minutos contínuos)±0,05% F.S.\pm 0{,}05\%\,\text{F.S.}
Equilíbrio do ponto zero (Zero balance)±0,1 mV/V\pm 0{,}1\,\text{mV/V}
Coeficiente térmico sobre o zero±0,05% F.S./10∘C\pm 0{,}05\%\,\text{F.S.} / 10^\circ\text{C}
Coeficiente térmico sobre a sensibilidade (span)±0,05% F.S./10∘C\pm 0{,}05\%\,\text{F.S.} / 10^\circ\text{C}
Material do corpo de provaLiga de alumínio aeronáutico anodizado
Dimensões físicas (C×L×AC \times L \times A)80,0×12,7×12,7 mm80{,}0 \times 12{,}7 \times 12{,}7\,\text{mm}
Furações de fixação mecânica2 furos roscados M5 (base fixa) e 2 furos roscados M4 (extremidade de carga)
Grau de proteção ambientalIP65 (encapsulamento dos strain gauges em resina de silicone)
Massa própria do sensor≈30 g\approx 30\,\text{g}
Código de referência (SKU)RB0200

Características elétricas e operacionais

Os limites de excitação elétrica, impedâncias internas da ponte resistiva e parâmetros de segurança mecânica do transdutor são apresentados abaixo:

Parâmetro Elétrico / OperacionalValor
Tensão de excitação recomendada (VexcV_{\text{exc}})5 VDC5\,\text{VDC} a 10 VDC10\,\text{VDC} (compatível com 3,3 VDC3{,}3\,\text{VDC} a 5 VDC5\,\text{VDC} via módulo HX711)
Tensão máxima absoluta de excitação15 VDC15\,\text{VDC}
Impedância de entrada (entre fios Vermelho e Preto)1000±50 Ω1000 \pm 50\,\Omega
Impedância de saída (entre fios Verde e Branco)1000±50 Ω1000 \pm 50\,\Omega
Resistência de isolamento elétrico≥2000 MΩ\ge 2000\,\text{M}\Omega (a 50 VDC50\,\text{VDC})
Consumo de corrente da ponte (a Vexc=4,3 VV_{\text{exc}} = 4{,}3\,\text{V})≈4,3 mA\approx 4{,}3\,\text{mA}
Faixa de temperatura com compensação térmica−10∘C-10^\circ\text{C} a +40∘C+40^\circ\text{C}
Faixa de temperatura operacional admissível−20∘C-20^\circ\text{C} a +60∘C+60^\circ\text{C}
Sobrecarga mecânica segura (Safe Overload)120% F.S.120\%\,\text{F.S.} (6,0 kg6{,}0\,\text{kg})
Sobrecarga mecânica limite de ruptura (Ultimate Overload)150% F.S.150\%\,\text{F.S.} (7,5 kg7{,}5\,\text{kg})
Deflexão nominal sob carga máxima<0,4 mm< 0{,}4\,\text{mm}
Condutores de conexãoCabo flexível de 4 vias estanhadas (≈20 cm\approx 20\,\text{cm})

Descrição do produto

O que é a Célula de Carga de Precisão 5kg Peso Arduino?

A célula de carga de 5 kg é um transdutor eletromecânico de força e massa construído na geometria de viga paralela de ponto único (single-point parallel beam). Seu elemento elástico é usinado a partir de um bloco monolítico de liga de alumínio de alta resiliência, possuindo um vazamento central bi-cilíndrico (formato binocular) que reduz a seção transversal em quatro regiões delgadas de concentração controlada de tensão mecânica.

Sobre as faces superior e inferior dessas zonas de flexão são colados quatro extensômetros piezoresistivos (strain gauges) de folha metálica interligados em Ponte de Wheatstone completa. Quando uma carga vertical descendente atua na extremidade livre da viga, dois extensômetros sofrem tração elástica (aumentando sua resistência elétrica) e dois sofrem compressão (reduzindo sua resistência elétrica), gerando uma tensão diferencial nos nós de medição proporcional à força aplicada. As áreas sensíveis são vedadas com resina branca de silicone neutra (IP65), protegendo as trilhas micrométricas contra umidade e poeira.

Para que serve?

  • Construção de balanças eletrônicas de bancada, balanças culinárias ou laboratoriais e medidores de massa com capacidade de até 5 kg5\,\text{kg} e resolução na casa de décimos de grama.
  • Sistemas automatizados de dosagem gravimétrica, envase de líquidos, alimentadores programáveis e pesagem de bobinas de filamento de impressão 3D.
  • Monitoramento contínuo de nível de reservatórios e medição de força de empuxo ou tração em bancadas de ensaio eletromecânico e robótico.

Por que devo usar?

  • Topologia em Ponte de Wheatstone de 4 braços ativos: multiplica por quatro a sensibilidade em relação a circuitos de um único extensômetro e cancela derivações térmicas de modo comum nos condutores.
  • Geometria mecânica single-point auto-compensada: permite posicionar cargas fora do centro exato da bandeja (em pratos de até 150×150 mm150 \times 150\,\text{mm}) com erro angular desprezível.
  • Impedância nominal de 1000 Ω1000\,\Omega de baixo consumo: drena menor corrente de excitação (≈4,3 mA\approx 4{,}3\,\text{mA}) em comparação às células industriais de 350 Ω350\,\Omega, reduzindo o autoaquecimento por efeito Joule e poupando energia em dispositivos alimentados por bateria.

Quando devo usar?

A célula de carga de 5 kg deve ser utilizada quando a massa total a ser medida — somando o peso morto do prato/suporte mecânico (dead load) e a carga útil máxima (live load) — situar-se na faixa de 10 g10\,\text{g} a 4,5 kg4{,}5\,\text{kg}, preservando uma margem operacional de segurança abaixo do limite nominal de 5 kg5\,\text{kg}.

O componente não deve ser utilizado nos seguintes cenários:

  • Pesagem analítica de miligramas ou cargas inferiores a 5 g5\,\text{g}: a excursão de tensão em fundo de escala de 5 kg5\,\text{kg} torna a relação sinal-ruído limitada para massas sub-grama; nesses casos, utilize células de carga de 100 g100\,\text{g}, 300 g300\,\text{g} ou 500 g500\,\text{g}.
  • Cargas estáticas ou impactos dinâmicos acima de 5 kg5\,\text{kg}: o excesso de carga além de 120% F.S.120\%\,\text{F.S.} (6 kg6\,\text{kg}) provoca escoamento plástico permanente na liga de alumínio, inutilizando a calibração; para cargas maiores, utilize células de 10 kg10\,\text{kg}, 20 kg20\,\text{kg} ou 50 kg50\,\text{kg}.
  • Esforços de torção axial ou forças laterais: a viga foi projetada exclusivamente para forças de cisalhamento perpendiculares à face superior na direção indicada pela seta frontal.

Pinout e diagrama de entradas/saídas

O transdutor converte a deformação mecânica relativa (ε=ΔL/L\varepsilon = \Delta L / L) em variação resistiva (ΔR/R=K⋅ε\Delta R / R = K \cdot \varepsilon, onde K≈2,0K \approx 2{,}0 é o fator de sensibilidade do extensômetro). Com os quatro braços ativos equilibrados, a tensão diferencial de saída VoutV_{\text{out}} entre os terminais de sinal em função da tensão de excitação VexcV_{\text{exc}} e da massa mm aplicada obedece à equação linear:

Vout=Vexc⋅S⋅(mmnominal)V_{\text{out}} = V_{\text{exc}} \cdot S \cdot \left( \frac{m}{m_{\text{nominal}}} \right)

onde S=1,0 mV/VS = 1{,}0\,\text{mV/V} corresponde à sensibilidade nominal do sensor e mnominal=5000 gm_{\text{nominal}} = 5000\,\text{g} representa a capacidade de fundo de escala.

A tabela a seguir detalha a pinagem dos quatro condutores do chicote da célula de carga e dos terminais do módulo conversor analógico-digital HX711 (estágio de instrumentação obrigatório para leitura no Arduino ou ESP32):

Condutor / PinoSímboloDireção / NaturezaFunção Técnica Detalhada
Fio Vermelho (Célula)E+Entrada AnalógicaAlimentação positiva de excitação da Ponte de Wheatstone (5 V5\,\text{V} a 10 V10\,\text{V} máx.; tipicamente ≈4,3 V\approx 4{,}3\,\text{V} regulados pelo pino AVDD do HX711).
Fio Preto (Célula)E−Retorno AnalógicoReferência negativa (terra analógico AGND) da ponte resistiva da célula de carga.
Fio Verde (Célula)A+Saída Diferencial (+)Sinal analógico diferencial positivo da ponte; conecta-se à entrada não inversora do Canal A (INA+) do HX711.
Fio Branco (Célula)A−Saída Diferencial (−)Sinal analógico diferencial negativo da ponte; conecta-se à entrada inversora do Canal A (INA-) do HX711.
Pino VCC (HX711)VCCAlimentação DCAlimentação do circuito integrado HX711 (2,6 VDC2{,}6\,\text{VDC} a 5,5 VDC5{,}5\,\text{VDC}). Define o nível lógico da interface digital.
Pino GND (HX711)GNDTerra Comum (0V)Referência de potencial zero comum entre a fonte de alimentação, o módulo HX711 e o microcontrolador.
Pino DT (HX711)DOUTSaída DigitalLinha de saída serial síncrona dos 24 bits de conversão em complemento de dois.
Pino SCK (HX711)PD_SCKEntrada DigitalEntrada de pulsos de clock serial e controle de modo Power-Down / seleção de ganho do PGA.

💡 Dica: Em lotes específicos de fabricação, a polaridade dos condutores de sinal Verde e Branco pode apresentar inversão de fase. Se durante o teste inicial o valor bruto lido diminuir (tornar-se negativo) ao pressionar a célula no sentido da seta, basta permutar os fios Verde e Branco entre os bornes A+ e A− do módulo HX711.

Como fazer a ligação

Requisitos de instalação e alimentação

Como a sensibilidade nominal da célula de carga é de 1,0 mV/V1{,}0\,\text{mV/V}, quando a ponte é excitada pela tensão analógica regulada pelo módulo HX711 (Vexc≈4,3 VDCV_{\text{exc}} \approx 4{,}3\,\text{VDC}), a excursão máxima de tensão diferencial sob carga plena de 5 kg5\,\text{kg} é de apenas 4,3 mV4{,}3\,\text{mV}:

Vout(maˊx)=4,3 V×1,0 mVV=4,3 mVV_{\text{out(máx)}} = 4{,}3\,\text{V} \times 1{,}0\,\frac{\text{mV}}{\text{V}} = 4{,}3\,\text{mV}

Isso equivale a uma variação de apenas 0,86 μV0{,}86\,\mu\text{V} por grama de carga:

ΔVoutΔm=4300 μV5000 g=0,86 μV/g\frac{\Delta V_{\text{out}}}{\Delta m} = \frac{4300\,\mu\text{V}}{5000\,\text{g}} = 0{,}86\,\mu\text{V/g}

Os conversores analógico-digitais internos de microcontroladores comuns — como o ADC de 10 bits do Arduino Uno (≈4,88 mV\approx 4{,}88\,\text{mV} por degrau) ou de 12 bits do ESP32 (≈0,80 mV\approx 0{,}80\,\text{mV} por degrau) — não possuem amplificação diferencial nem resolução para ler variações em microvolts. Portanto, é indispensável utilizar o módulo amplificador de instrumentação e conversor Sigma-Delta (ΣΔ\Sigma\Delta) de 24 bits HX711, cujo amplificador de ganho programável (PGA) em 128×128\times eleva o fundo de escala de ±20 mV\pm 20\,\text{mV} para toda a faixa dinâmica de 2242^{24} contagens.

Para a instalação mecânica correta, monte a barra em viga em balanço (cantilever):

  1. Lado estático (Base): fixe a extremidade por onde sai o cabo de 4 fios à base rígida utilizando parafusos M5. Insira um calço espaçador (arruela ou bloco de 2 mm2\,\text{mm} a 3 mm3\,\text{mm} de espessura) entre a face inferior da célula e a base.
  2. Lado móvel (Prato de carga): fixe a bandeja de pesagem na extremidade oposta utilizando parafusos M4, também com calço espaçador superior, deixando o trecho central com os dois furos circulares completamente livre para fletir no ar.
  3. Orientação vetorial: a seta impressa na etiqueta frontal de 5 kg5\,\text{kg} deve apontar verticalmente para baixo (no sentido da força peso).

Diagrama de ligação elétrica

O diagrama vetorial a seguir ilustra a ligação elétrica em dois estágios: os quatro condutores da célula de carga de 5 kg conectados à ponte analógica do módulo HX711, e o barramento digital síncrono conectado ao microcontrolador (Arduino Uno ou ESP32):

Diagrama de ligação elétrica da célula de carga de precisão 5kg com módulo HX711 e Arduino

Tabela de conexões dos terminais

Confira na tabela abaixo o mapeamento completo De →\to Para sincronizado com o diagrama elétrico para plataformas de 5 V5\,\text{V} (Arduino Uno/Nano/Mega) e de 3,3 V3{,}3\,\text{V} (ESP32):

Terminal de OrigemTerminal de DestinoCor no Diagrama / Fio FísicoTipo de SinalObservação Técnica
Célula de Carga (E+)Borne E+ (Módulo HX711)VermelhoExcitação (+)Alimentação positiva regulada da ponte (≈4,3 V\approx 4{,}3\,\text{V})
Célula de Carga (E−)Borne E− (Módulo HX711)PretoExcitação (−)Retorno analógico (AGND) da ponte de Wheatstone
Célula de Carga (A−)Borne A− (Módulo HX711)Azul-Ciano (Fio Branco)Sinal Diferencial (−)Entrada inversora do amplificador PGA Canal A
Célula de Carga (A+)Borne A+ (Módulo HX711)VerdeSinal Diferencial (+)Entrada não inversora do amplificador PGA Canal A
Módulo HX711 (B− / B+)Sem conexão (✕ Livre)—Canal B LivreCanal auxiliar de ganho 32×32\times não utilizado
Módulo HX711 (VCC)Pino 5V (Arduino) ou 3V3 (ESP32)VermelhoAlimentação DCOperação de 2,6 V2{,}6\,\text{V} a 5,5 V5{,}5\,\text{V} (≈1,5 mA\approx 1{,}5\,\text{mA})
Módulo HX711 (DT)Pino D2 (Arduino) ou GPIO 4 (ESP32)VerdeDados (DOUT)Saída serial síncrona de 24 bits
Módulo HX711 (SCK)Pino D3 (Arduino) ou GPIO 5 (ESP32)Âmbar / LaranjaClock (PD_SCK)Entrada de pulsos de clock gerados pelo MCU
Módulo HX711 (GND)Pino GND (Arduino / ESP32)PretoTerra Comum (0V)Referência elétrica compartilhada

Cuidados e observações de segurança

⚠️ Atenção: Quando utilizar microcontroladores de lógica 3,3 V3{,}3\,\text{V} (como ESP32, ESP8266 ou Raspberry Pi Pico), alimente o pino VCC do módulo HX711 com 3,3 V3{,}3\,\text{V} (pino 3V3). Alimentar o HX711 com 5 V5\,\text{V} faz com que o pino de saída DT envie nível lógico de 5 V5\,\text{V}, o que excede o limite de tensão das portas GPIO do ESP32.

⚠️ Atenção: Jamais pressione ou cole objetos sobre a camada de resina branca de silicone no centro da barra, e nunca deixe a viga sem espaçadores raspar na base de apoio. O contato mecânico na região central trava a deflexão elástica ou rompe os filamentos dos strain gauges.

⛔ Perigo: A célula de carga e o módulo HX711 são dispositivos estritamente de instrumentação em baixa tensão contínua (3,3 VDC3{,}3\,\text{VDC} a 10 VDC10\,\text{VDC}). NUNCA conecte qualquer condutor do sensor diretamente à rede elétrica alternada (127 VAC127\,\text{VAC} ou 220 VAC220\,\text{VAC}), sob risco de destruição imediata do componente, incêndio e choque elétrico.

Como usar

Guia de operação passo a passo

  1. Fixação mecânica em balanço: parafuse a extremidade do cabo (roscas M5) na base rígida e a extremidade oposta (roscas M4) no prato de pesagem utilizando espaçadores para garantir vão livre sob a viga.
  2. Soldagem e cabeamento curto: solde os quatro fios da célula de carga nas ilhas E+, E−, A− e A+ do módulo HX711. Mantenha o cabo analógico longe de fontes chaveadas ou motores para evitar indução de ruído eletromagnético.
  3. Instalação da biblioteca oficial na Arduino IDE:
    • Acesse Ferramentas > Gerenciar Bibliotecas… (ou o ícone Library Manager na barra lateral);
    • Pesquise por HX711 Arduino Library (autor: Bogdan Necula);
    • Clique em Instalar.
  4. Calibração com massa padrão: carregue o Sketch de Calibração (Exemplo 1 abaixo), execute a tara com o prato vazio e coloque um objeto de massa aferida (por exemplo, 500 g500\,\text{g} ou 1000 g1000\,\text{g}) para obter o FATOR_CALIBRACAO específico da sua estrutura.
  5. Operação contínua com tara e filtragem: insira o fator obtido na constante FATOR_CALIBRACAO do firmware final (Exemplo 2) e grave no microcontrolador.

Modos de operação e ajustes

A comunicação e os ajustes de ganho e velocidade de amostragem ocorrem no conversor HX711:

  • Seleção de Canal e Ganho por Pulsos de Clock (PD_SCK): ao término de uma conversão, a linha DOUT vai para nível lógico baixo (LOW). O microcontrolador aplica então de 25 a 27 pulsos em PD_SCK: os primeiros 24 pulsos deslocam a palavra binária de 24 bits (MSB primeiro, em complemento de dois), e os pulsos extras configuram o ganho da próxima leitura:
    • 25 pulsos: seleciona o Canal A com Ganho 128×128\times (fundo de escala diferencial de ±20 mV\pm 20\,\text{mV}) — configuração padrão ideal para a célula de carga de 5 kg5\,\text{kg}.
    • 26 pulsos: seleciona o Canal B com Ganho 32×32\times (fundo de escala de ±80 mV\pm 80\,\text{mV}).
    • 27 pulsos: seleciona o Canal A com Ganho 64×64\times (fundo de escala de ±40 mV\pm 40\,\text{mV}).
  • Taxa de Amostragem (RATE — 10 SPS vs. 80 SPS): o pino 15 (RATE) do CI HX711 define a taxa de conversão:
    • RATE = GND (padrão de fábrica): opera a 10 amostras por segundo (10 Hz10\,\text{Hz}), ativando o filtro digital interno com rejeição simultânea de ruído de rede elétrica de 50 Hz50\,\text{Hz} e 60 Hz60\,\text{Hz}.
    • RATE = VCC: opera a 80 amostras por segundo (80 Hz80\,\text{Hz}), indicado para pesagens dinâmicas rápidas e ensaios de impacto/empuxo.
  • Modo de Baixo Consumo (Power-Down): manter o pino PD_SCK em nível lógico alto (HIGH) por mais de 60 μs60\,\mu\text{s} desliga o regulador analógico da ponte e reduz o consumo total de ≈1,5 mA\approx 1{,}5\,\text{mA} para menos de 1 μA1\,\mu\text{A} (escala.power_down()).

A conversão matemática aplicada pela biblioteca para transformar a contagem bruta de 24 bits (CADCC_{\text{ADC}}) em massa expressa em gramas (mm) é definida por:

m=CADC−CtaraFcalm = \frac{C_{\text{ADC}} - C_{\text{tara}}}{F_{\text{cal}}}

onde CtaraC_{\text{tara}} é a leitura média sem carga (offset de tara) e FcalF_{\text{cal}} é o fator de calibração em contagens por grama (contagens/g\text{contagens/g}). Para a célula de 5 kg5\,\text{kg} com ganho 128×128\times, o valor típico de FcalF_{\text{cal}} situa-se próximo de 420420 a 460 contagens/g460\,\text{contagens/g}.

Exemplos práticos de uso

Exemplo 1: Calibração Interativa e Cálculo Automático do Fator de Escala

Carregue o código abaixo para determinar experimentalmente o fator de calibração (FATOR_CALIBRACAO) da sua célula de carga de 5 kg. Abra o Monitor Serial em 115200 bps e siga as instruções na tela:

/**
 * ============================================================================
 * RoboBuilders - Manual Técnico: Célula de Carga de Precisão 5kg (RB0200)
 * Exemplo 1: Rotina Interativa de Calibração de Escala (Arduino Uno / ESP32)
 * Biblioteca: HX711 Arduino Library (por Bogdan Necula)
 * ============================================================================
 */

#include <Arduino.h>
#include "HX711.h"

// Definição automática de pinos conforme a arquitetura selecionada na IDE
#if defined(ESP32)
  const uint8_t PINO_DT  = 4; // GPIO 4 conectado ao pino DT (DOUT)
  const uint8_t PINO_SCK = 5; // GPIO 5 conectado ao pino SCK (PD_SCK)
#else
  const uint8_t PINO_DT  = 2; // Pino digital D2 no Arduino Uno/Nano/Mega
  const uint8_t PINO_SCK = 3; // Pino digital D3 no Arduino Uno/Nano/Mega
#endif

HX711 balanca;

// Limpa caracteres residuais do buffer serial
void limparBufferSerial() {
  while (Serial.available() > 0) {
    Serial.read();
    delay(2);
  }
}

// Aguarda o usuário pressionar ENTER no Monitor Serial
void aguardarConfirmacao() {
  limparBufferSerial();
  while (Serial.available() == 0) {
    delay(10);
  }
  limparBufferSerial();
}

void setup() {
  Serial.begin(115200);
  while (!Serial) { delay(10); }

  Serial.println(F("\n========================================================"));
  Serial.println(F("  ROBOBUILDERS - CALIBRACAO CELULA DE CARGA 5KG (RB0200)"));
  Serial.println(F("========================================================"));

  // Inicializa o conversor HX711 no Canal A com ganho padrão de 128x
  balanca.begin(PINO_DT, PINO_SCK, 128);

  if (!balanca.wait_ready_timeout(2000)) {
    Serial.println(F("[ERRO] Modulo HX711 nao detectado no barramento!"));
    Serial.println(F("Verifique os fios VCC, GND, DT e SCK."));
    while (true) { delay(500); }
  }

  // Etapa 1: Determinação do Offset de Zero (Tara)
  Serial.println(F("\n[PASSO 1] Deixe o prato de pesagem completamente vazio."));
  Serial.println(F("Envie qualquer caractere (ou ENTER) para realizar a TARA..."));
  aguardarConfirmacao();

  Serial.println(F("Amostrando ponto zero (media de 20 leituras)..."));
  balanca.set_scale(); // Reseta escala para 1.0
  balanca.tare(20);    // Calcula e armazena o offset sem carga
  long offsetZero = balanca.get_offset();

  Serial.print(F("Offset de Tara registrado: "));
  Serial.println(offsetZero);

  // Etapa 2: Leitura com Massa Padrão Conhecida
  Serial.println(F("\n[PASSO 2] Coloque um peso conhecido sobre o prato (ex: 500g ou 1000g)."));
  Serial.println(F("Aguarde estabilizar e envie ENTER no Monitor Serial..."));
  aguardarConfirmacao();

  Serial.println(F("Lendo conversor ADC de 24 bits (media de 20 amostras)..."));
  double variacaoBruta = balanca.get_value(20); // Retorna (leitura_bruta - offset)

  Serial.print(F("Variacao liquida de contagens ADC: "));
  Serial.println(variacaoBruta, 1);

  // Etapa 3: Entrada da Massa Real em Gramas
  Serial.println(F("\n[PASSO 3] Digite a massa exata do objeto em GRAMAS (ex: 500.0) e envie:"));
  limparBufferSerial();
  while (Serial.available() == 0) { delay(10); }
  float massaReferenciaG = Serial.parseFloat();
  limparBufferSerial();

  if (massaReferenciaG <= 0.0f) {
    massaReferenciaG = 500.0f; // Valor padrão de segurança caso digite inválido
    Serial.println(F("[AVISO] Valor invalido. Assumindo massa de 500.0 g."));
  }

  // Cálculo do Fator de Calibração (contagens por grama)
  float fatorCalibracao = (float)(variacaoBruta / massaReferenciaG);

  Serial.println(F("\n========================================================"));
  Serial.println(F("              CALIBRACAO CONCLUIDA COM SUCESSO          "));
  Serial.println(F("========================================================"));
  Serial.print(F("Massa de referencia informada : "));
  Serial.print(massaReferenciaG, 2);
  Serial.println(F(" g"));
  Serial.print(F("FATOR_CALIBRACAO calculado    : "));
  Serial.println(fatorCalibracao, 4);
  Serial.println(F("--------------------------------------------------------"));
  Serial.println(F("Copie o valor de FATOR_CALIBRACAO acima para o Exemplo 2."));
  Serial.println(F("========================================================\n"));

  balanca.set_scale(fatorCalibracao);
}

void loop() {
  // Exibe a leitura já calibrada em tempo real para conferência imediata
  if (balanca.wait_ready_timeout(500)) {
    float massaGramas = balanca.get_units(5);
    Serial.print(F("Conferencia -> Massa medida: "));
    Serial.print(massaGramas, 2);
    Serial.println(F(" g"));
  }
  delay(500);
}

Exemplo 2: Balança Digital de Precisão 5kg com Filtro, Alerta de Sobrecarga e Tara Serial

Após anotar o FATOR_CALIBRACAO no Exemplo 1, atualize a constante correspondente no código abaixo. Este firmware implementa leitura contínua em gramas e quilogramas, banda morta (deadband) contra oscilações térmicas em zero, proteção de sobrecarga acima de 5000 g5000\,\text{g} e comandos via Monitor Serial (t para tarar e p para economizar energia no modo Power-Down):

/**
 * ============================================================================
 * RoboBuilders - Manual Técnico: Célula de Carga de Precisão 5kg (RB0200)
 * Exemplo 2: Balança Digital Completa com Tara Serial e Proteção de Sobrecarga
 * Compatível com: Arduino Uno / Nano / Mega e ESP32
 * ============================================================================
 */

#include <Arduino.h>
#include "HX711.h"

#if defined(ESP32)
  const uint8_t PINO_DT  = 4;
  const uint8_t PINO_SCK = 5;
#else
  const uint8_t PINO_DT  = 2;
  const uint8_t PINO_SCK = 3;
#endif

// Substitua pelo valor exato obtido no Exemplo 1 para a sua montagem mecânica
const float FATOR_CALIBRACAO = 442.8500f;

// Limites operacionais da Célula de Carga de 5kg (RB0200)
const float CAPACIDADE_MAXIMA_G  = 5000.0f; // 5,0 kg nominal
const float SOBRECARGA_SEGURA_G  = 6000.0f; // 120% F.S.
const float ZONA_MORTA_ZERO_G    = 0.30f;   // Filtro de ruído em repouso (±0,3 g)

HX711 balanca;
bool modoEconomiaAtivo = false;

void setup() {
  Serial.begin(115200);
  while (!Serial) { delay(10); }

  Serial.println(F("\n========================================================"));
  Serial.println(F("   ROBOBUILDERS - BALANCA DIGITAL DE PRECISAO 5KG       "));
  Serial.println(F("========================================================"));

  balanca.begin(PINO_DT, PINO_SCK, 128);

  if (!balanca.wait_ready_timeout(2000)) {
    Serial.println(F("[ERRO CRITICO] Falha na comunicacao com o modulo HX711!"));
    while (true) { delay(500); }
  }

  // Configura o fator de escala e executa a tara inicial
  balanca.set_scale(FATOR_CALIBRACAO);
  Serial.println(F("Executando tara automatica inicial (remova cargas)..."));
  balanca.tare(15);

  Serial.println(F("[OK] Balanca pronta! Comandos disponiveis no Monitor Serial:"));
  Serial.println(F("  't' -> Executar nova TARA (zerar balanca)"));
  Serial.println(F("  'p' -> Alternar modo Power-Down (economia de energia)\n"));
}

void processarComandosSeriais() {
  if (Serial.available() > 0) {
    char cmd = Serial.read();

    if ((cmd == 't' || cmd == 'T') && !modoEconomiaAtivo) {
      Serial.println(F("\n[COMANDO] Tarando a balanca... aguarde."));
      balanca.tare(15);
      Serial.println(F("[OK] Ponto zero atualizado com sucesso!\n"));
    } else if (cmd == 'p' || cmd == 'P') {
      modoEconomiaAtivo = !modoEconomiaAtivo;
      if (modoEconomiaAtivo) {
        balanca.power_down();
        Serial.println(F("\n[POWER-DOWN] HX711 em modo sleep (< 1 uA). Envie 'p' para acordar.\n"));
      } else {
        balanca.power_up();
        delay(400); // Tempo de estabilização do conversor após wake-up
        Serial.println(F("\n[WAKE-UP] HX711 reativado e pronto para leituras.\n"));
      }
    }
  }
}

void loop() {
  processarComandosSeriais();

  if (modoEconomiaAtivo) {
    delay(100);
    return;
  }

  if (balanca.wait_ready_timeout(300)) {
    // Obtém a média de 5 conversões consecutivas de 24 bits
    float massaGramas = balanca.get_units(5);

    // Aplica zona morta para eliminar oscilações sub-grama em torno de zero
    if (massaGramas > -ZONA_MORTA_ZERO_G && massaGramas < ZONA_MORTA_ZERO_G) {
      massaGramas = 0.0f;
    }

    float massaKg = massaGramas / 1000.0f;

    // Verificação de limites de sobrecarga mecânica
    if (massaGramas > SOBRECARGA_SEGURA_G) {
      Serial.println(F("[PERIGO] SOBRECARGA CRITICA (> 6.0 kg)! Remova o peso imediatamente!"));
    } else if (massaGramas > CAPACIDADE_MAXIMA_G) {
      Serial.print(F("[ALERTA] Acima da capacidade nominal de 5kg -> "));
      Serial.print(massaGramas, 1);
      Serial.println(F(" g"));
    } else {
      Serial.print(F("Massa: "));
      Serial.print(massaGramas, 1);
      Serial.print(F(" g\t|\t"));
      Serial.print(massaKg, 3);
      Serial.println(F(" kg"));
    }
  } else {
    Serial.println(F("[AVISO] Aguardando conversao do modulo HX711..."));
  }

  delay(250);
}

Projetos

A célula de carga de precisão de 5 kg integra-se diretamente a projetos práticos de automação, instrumentação e IoT desenvolvidos no ecossistema RoboBuilders. Além deste modelo de 5 kg5\,\text{kg}, você pode consultar nossos manuais e arquiteturas relacionadas no blog para dimensionamento de sistemas multi-escala:

  • Dosadores Gravimétricos e Controle de Estoque IoT com ESP32: utilizando a leitura digital do HX711 nos pinos GPIO 4 e GPIO 5 do ESP32, é possível publicar a massa restante de insumos, reagentes ou bobinas de filamento 3D via MQTT em painéis web e acionar relés ou válvulas solenoides automaticamente ao atingir o setpoint configurado.
  • Escalonamento para Cargas Superiores na Mesma Geometria Mecânica: caso o seu projeto mecânico evolua para cargas mais elevadas mantendo a mesma furação padrão (80×12,7×12,7 mm80 \times 12{,}7 \times 12{,}7\,\text{mm}), consulte os manuais técnicos da Célula de Carga 10kg Alta Precisão e da Célula de Carga 20kg para Automação e Balança.

Conclusão

Neste manual técnico, foram apresentados os fundamentos eletromecânicos, o esquema de ligação e os procedimentos de calibração da Célula de Carga de Precisão 5kg Peso Arduino (RB0200):

  • Especificações e Ponte de Wheatstone: estrutura monolítica em alumínio anodizado com sensibilidade de 1,0 mV/V1{,}0\,\text{mV/V}, não linearidade de ±0,05% F.S.\pm 0{,}05\%\,\text{F.S.}, impedância de 1000 Ω1000\,\Omega e proteção ambiental IP65.
  • Condicionamento de Sinal em 24 bits: integração obrigatória com o módulo amplificador e conversor analógico-digital HX711 (Canal A com ganho de 128×128\times), capaz de resolver variações de 0,86 μV/g0{,}86\,\mu\text{V/g}.
  • Instalação Mecânica e Níveis Lógicos: montagem em viga em balanço (cantilever) com espaçadores nas roscas M5/M4 e atenção à alimentação em 3,3 V3{,}3\,\text{V} quando conectado ao ESP32 ou 5 V5\,\text{V} no Arduino Uno.
  • Calibração e Operação: determinação prática do fator de escala com peso de referência e firmware completo com filtro de zona morta, comando de tara serial e proteção contra sobrecarga.

Com a fixação mecânica correta e o ajuste fino do fator de calibração demonstrados neste guia, o sensor fornece medições de massa estáveis, lineares e confiáveis para aplicações laboratoriais, comerciais e de automação embarcada.

Solução de problemas

Olá! Sou o assistente técnico da RoboBuilders. Descreva seu problema com o Célula de Carga de Precisão 5kg Peso Arduino: Manual Técnico Completo e eu ajudarei a encontrar a solução.

O assistente usa IA e pode errar. Confirme informações críticas no datasheet oficial do fabricante.