Você está na página 1de 9

SDB

DESENVOLVIMENTO

ARDUÍNO COM CÉLULA DE CARGA


15 DE SETEMBRO DE 2016 | SDB | 4 COMENTÁRIOS

Hoje continuamos o que foi iniciado na semana passada: realizamos a conexão do Arduíno
com a célula de carga.

E os resultados foram…
Com os preparativos prontos, a única coisa que faltava eram os testes, ou pelo menos foi o que
pensamos.

Acontece que, trabalhar com células de carga requer um estudo prévio das escalas e valores
que serão obtidos e da calibração. Além disto, a confecção da balança e um código específico é
necessário para que o circuito opere de forma coerente e calibrado.

As células de cargas são sensores extremamente vulneráveis a ruídos, então qualquer tipo de
força extra ou movimentação dos fios gera incoerência no peso obtido. Para eliminar tais ruí-
dos utiliza-se a Ponte de Wheatstone, uma ligação de resistores que possibilita trabalhar com
precisão na obtenção da resistência.
Montagem eletrônica
Já que um circuito externo seria necessário, utilizamos um protoboard pequeno para montar o
circuito:

O circuito montado foi uma meia ponte com duas resistências de 780 Ω (dois resistores de
390 Ω para cada resistência) para ligar a célula de carga com o módulo amplificador:
A ligação pode ser representada no esquema abaixo:

Após a conexão da célula com o módulo, tivemos que conectar o módulo ao Arduíno.

O Arduíno utilizado foi o Arduíno UNO juntamente com seu cabo serial, tanto para gravação
do código quanto para alimentação pelo microcomputador:
A ligação feita entre o módulo e o Arduíno foi a alimentação (Vcc 5V e GND) e o canal digital,
que compreende DT e SCK como pinos A1 e A0 do Arduíno, respectivamente.
No fim, o circuito inteiro estava montado como na imagem:
Código
Para programar o Arduíno com um módulo amplificador para célula de carga, é necessário
uma biblioteca específica.

A biblioteca que utilizamos foi a HX711.h, criada pelo usuário “bogde” do github. Fizemos algu-
mas alterações nela para que obtivesse valores crus, somente para teste:
O código  configura os pinos A0 e A1 do Arduíno como a configuração citada anteriormente,
configura a taxa de transmissão da comunicação com o Arduíno para 9600 bps e, através do
comando scale.read_average(), obtém a média de 20 valores lidos pelo módulo, além disto,
ainda coloca o módulo no modo Sleep para economizar energia.

O resultado obtido foi este:

A imagem acima mostra diversos valores (média) obtidos da quantidade de força aplicada na
célula de 1 em 1 segundo pelo módulo. Este valor, como podemos ver, é incompreensível, mas
tentaremos explicar de uma maneira simples:
• Este valor extremamente grande, deve-se ao nível de tensão que o mesmo lê, como o mó-
dulo está alimentado por 5V, o nível máximo de tensão que será gerado é 5V (5 000000) ao
máximo de força aplicada (50kg), e o mínimo é 0V (0 000000), quando nenhuma força é
aplicada;
• Por ter dado um valor negativo, subentende-se que algum dos fios da célula estão inverti-
dos, assim o módulo lê o nível de sinal de pontos contrários ao correto;
• Os fios invertidos também fazem com que o valor de tensão lido quando não há força apli-
cada seja 5V, assim, o 0V representa o máximo de força aplicada;
• Esta variação da imagem não corresponde à leitura de força alguma, mas sim porque a célu-
la possui alta sensibilidade e qualquer movimento dos fios ou deformação da superfície em
que a célula se encontra pode causar tais variações, pois um dos fatores mais importantes
de leitura da célula é o ambiente.

Conclusão
As atividades realizadas neste dia foram proveitosas o suficiente para entender o funciona-
mento da célula. As próximas atividades serão focadas em calibrar corretamente o módulo,
ajustar a ligação dos fios invertidos e implementar funcionalidades no código para que os valo-
res obtidos tenham coerência e maior eficiência, assim, será mais fácil apresentar tais informa-
ções na interface do usuário que estará pesando suas bagagens.

ARDUINO BALANÇA TESTES

4 IDEIAS SOBRE “ARDUÍNO COM CÉLULA DE CARGA”

LGUSTAVOSDP
13 DE OUTUBRO DE 2016 ÀS 11:19

Você conseguiu calibrar a balança para medir corretamente? Se sim, como fez?

sdb
20 DE OUTUBRO DE 2016 ÀS 20:02
Conseguimos sim, ela está medindo e oscilando muito pouco entre -0.01 e 0.01 quando
não há peso. Mudamos a biblioteca porque o valor pesado estava invertido, como se os
números decimais viessem primeiro e depois os números inteiros, sem a separação da
vírgula. Por isso, primeiro invertemos o valor do byte pesado mudando a ordem dos va-
lores no “data_buffer.data[x]”, onde x é o valor e a sequencia deve ser o último byte pri-
meiro, seguido dos primeiros bytes, assim a oscilação foi na casa de miligramas, que fo-
ram eliminadas através da “Serial.print(media, 1)”, onde o 1 é a quantidade de casas de-
pois da vírgula. Depois disso fizemos nossa própria tara tirando a média dos valores pe-
sados.

Lgustavosdp
22 DE OUTUBRO DE 2016 ÀS 15:45

A grande dificuldade que estou tendo é justamente obter os mesmos valores para o
mesmo peso. Estou tentando mudar minha estrutura para tentar eliminar ruído. Tam-
bém vou tentar fazer com que o sistema opere com uma carga inicial, para fazer com
que pequenas variações não sejam detectadas

sdb
23 DE OUTUBRO DE 2016 ÀS 16:14

A estrutura é algo importante, as deformações aplicadas nela geram muitos ruídos


mesmo. Se possível, tente usar também resistores de precisão na montagem da
ponte. A questão da carga inicial eu não sei bem se elimina as variações, no nosso
caso a solução pelo código mesmo ajudou bastante, as variações são imperceptí-
veis.

Você também pode gostar