Funcionamento HX711 (placa/código) - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-28T17:12:30Zhttps://labdegaragem.com/forum/topics/funcionamento-hx711-placa-c-digo?feed=yes&xn_auth=noBoa noite, Sr. José Murta. Mu…tag:labdegaragem.com,2021-04-05:6223006:Comment:8674342021-04-05T23:39:54.923ZFernando Kit Wuhttps://labdegaragem.com/profile/FernandoKitWu
<p>Boa noite, Sr. José Murta. Muito obrigado pela atenção!</p>
<p></p>
<p>Desculpa por não ter deixado claro isso no post. Vou responder os pontos que faltaram.</p>
<p></p>
<p>1- Estou utilizando um módulo para cada célula. Tinha adquirido dois módulos HX711 verdes e dois vermelhos (que em principio teriam blindagem e com isso entendi que deixariam os resultados menos suscetíveis a interferências). As células de carga são do tipo barra, com capacidade de até 50kg cada uma delas. O datasheet…</p>
<p>Boa noite, Sr. José Murta. Muito obrigado pela atenção!</p>
<p></p>
<p>Desculpa por não ter deixado claro isso no post. Vou responder os pontos que faltaram.</p>
<p></p>
<p>1- Estou utilizando um módulo para cada célula. Tinha adquirido dois módulos HX711 verdes e dois vermelhos (que em principio teriam blindagem e com isso entendi que deixariam os resultados menos suscetíveis a interferências). As células de carga são do tipo barra, com capacidade de até 50kg cada uma delas. O datasheet dele está <a href="https://onedrive.live.com/?authkey=%21ADaDInyHRORPaCM&cid=71A3C20A0F939909&id=71A3C20A0F939909%2132052&parId=71A3C20A0F939909%216795&o=OneUp" target="_blank" rel="noopener">neste link</a></p>
<p></p>
<p>2- As células estão montadas em uma base. Vou anexar uma foto da montagem.</p>
<p></p>
<p>3- Na verdade, como este é meu primeiro contato com arduino e componentes eletrônicos, acho que no 1o teste danifiquei o canal A+ e A- da 4a célula (tinha ligado o SCK e DT desse HX711 e percebi que fiz algo de errado quando a porta serial demorou em realizar o serial.print). Depois disso, mesmo com as ligações certas, colocando um peso, o valor lido não variava com os pesos colocados sobre a plataforma (ficava flutuando em torno de um valor). Resolvi usar os pinos B+ e B- dessa placa e a flutuação de valor parou.</p>
<p></p>
<p>4- Não fiz o ajuste nem do tara, nem do fator de calibração. Na verdade coloquei 1 em ambos e pretendia encontrar o peso em sinal elétrico e converter pra peso pela curva de calibração y = 0.0844x + 1477,2. Só depois que percebi que podia usar a função read_average() para isso. E me parece que a tentativa de converter em mV apenas dividindo pelo ganho não está muito correto. </p>
<p></p>
<p>No caso, achei um post do senhor (<a href="https://labdegaragem.com/forum/topics/medi-o-de-tens-o-em-milivolts-utilizando-m-dulo-hx711" target="_blank">https://labdegaragem.com/forum/topics/medi-o-de-tens-o-em-milivolts-utilizando-m-dulo-hx711</a>). Nesse post tem uma parte que explicas que o bit menos significativo (preciso entender isso ainda haha) é 305,175 nV. E que com um sinal de 1mV, amplificado por 128x e dividido pelo bit menos significativo, dá o "valor absoluto da medição do ADC". O valor que obtive nas leituras seria isso? </p> Boa noite,
1) Você usa um mód…tag:labdegaragem.com,2021-04-05:6223006:Comment:8675062021-04-05T22:15:37.647ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>Boa noite,</p>
<p>1) Você usa um módulo para cada HX711? Quais são as especificações de cada célula?</p>
<p>2) Como esão montadas essas céluas de carga? Numa mesma base?</p>
<p>3) Porque fez ligações diferentes (amplificação) para algumas células? Elas são diferentes? </p>
<p>4) Você fez o ajuste de tara da balança? (zerar a balança) …</p>
<p></p>
<p></p>
<p></p>
<p>Boa noite,</p>
<p>1) Você usa um módulo para cada HX711? Quais são as especificações de cada célula?</p>
<p>2) Como esão montadas essas céluas de carga? Numa mesma base?</p>
<p>3) Porque fez ligações diferentes (amplificação) para algumas células? Elas são diferentes? </p>
<p>4) Você fez o ajuste de tara da balança? (zerar a balança) </p>
<p></p>
<p></p>
<p><a href="https://blog.eletrogate.com/balanca-digital-com-arduino-aprenda-a-usar-a-celula-de-carga/" target="_blank">https://blog.eletrogate.com/balanca-digital-com-arduino-aprenda-a-usar-a-celula-de-carga/</a></p> Segue o sketch utilizado (alé…tag:labdegaragem.com,2021-04-05:6223006:Comment:8673922021-04-05T16:52:34.998ZFernando Kit Wuhttps://labdegaragem.com/profile/FernandoKitWu
<p>Segue o sketch utilizado (além do offset ser 0, percebo que poderia ter utilizado a função "read_average()" ao invés do "get_units()" por não ter os parâmetros scale e offset). </p>
<p></p>
<p>---------------------------</p>
<p></p>
<p><span>#include "HX711.h"</span><br></br><br></br><span>const int LC1_DOUT_PIN = 8;</span><br></br><span>const int LC1_SCK_PIN = 9;</span><br></br><br></br><span>const int LC2_DOUT_PIN = 6;</span><br></br><span>const int LC2_SCK_PIN = 7;</span><br></br><br></br><span>const int LC3_DOUT_PIN =…</span></p>
<p>Segue o sketch utilizado (além do offset ser 0, percebo que poderia ter utilizado a função "read_average()" ao invés do "get_units()" por não ter os parâmetros scale e offset). </p>
<p></p>
<p>---------------------------</p>
<p></p>
<p><span>#include "HX711.h"</span><br/><br/><span>const int LC1_DOUT_PIN = 8;</span><br/><span>const int LC1_SCK_PIN = 9;</span><br/><br/><span>const int LC2_DOUT_PIN = 6;</span><br/><span>const int LC2_SCK_PIN = 7;</span><br/><br/><span>const int LC3_DOUT_PIN = 4;</span><br/><span>const int LC3_SCK_PIN = 5;</span><br/><br/><span>const int LC4_DOUT_PIN = 2;</span><br/><span>const int LC4_SCK_PIN = 3;</span><br/><br/><br/><span>float calibration = 1;</span><br/><span>float offset = 1;</span><br/><br/><span>HX711 balanca1;</span><br/><span>HX711 balanca2;</span><br/><span>HX711 balanca3;</span><br/><span>HX711 balanca4;</span><br/><br/><span>unsigned long ult_tempo = 0;</span><br/><span>unsigned long tempo = 0;</span><br/><br/><span>void setup() {</span><br/><span>Serial.begin(38400);</span><br/><span>Serial.println("Teste HX711");</span><br/><span>Serial.println("Iniciando a balanca");</span><br/><span>balanca1.begin(LC1_DOUT_PIN, LC1_SCK_PIN, 128); </span><br/><span>balanca1.set_scale (calibration);</span><br/><span>balanca1.set_offset (offset);</span><br/><br/><span>balanca2.begin(LC2_DOUT_PIN, LC2_SCK_PIN, 128); </span><br/><span>balanca2.set_scale (calibration);</span><br/><span>balanca2.set_offset (offset);</span><br/><br/><span>balanca3.begin(LC3_DOUT_PIN, LC3_SCK_PIN, 128); </span><br/><span>balanca3.set_scale (calibration);</span><br/><span>balanca3.set_offset (offset);</span><br/><br/><span>balanca4.begin(LC4_DOUT_PIN, LC4_SCK_PIN, 32); </span><br/><span>balanca4.set_scale (calibration);</span><br/><span>balanca4.set_offset (offset);</span><br/><span>}</span><br/><br/><span>void loop() {</span><br/><span>tempo = millis();</span><br/><span>if(tempo - ult_tempo >= 2000){ </span><br/><span> Serial.print("balanca1: ");</span><br/><span> Serial.println(balanca1.get_units(10));</span><br/><span> Serial.print(balanca2.get_units(10));</span><br/><span> Serial.print(" balanca3: ");</span><br/><span> Serial.print(balanca3.get_units(10));</span><br/><span> Serial.print(" balanca4: ");</span><br/><span> Serial.println(balanca4.get_units(10));</span><br/><span> ult_tempo = tempo;</span><br/><span>}</span><br/><br/><span>}</span></p>