As alterações necessárias para alteração do Sample rate do módulo HX711.
A placa do modulo tem uma trilha por baixo do CI HX711 ligando o pino 14 ao pino 15 (RATE).
Para cortar a trilha é necessário retirar o CI HX711, como podemos observar nas fotos a seguir.
Modulo sem o CI HX711
Detalhe da trilha cortada com um estilete!
Detalhe do corte da trilha pino 15 ao GND.
Para finalizar as alterações no modulo HX711 e necessário re-soldar o CI HX711 a placa e liga o pino 15 ao VCC!
Detalhe módulo HX711 do pino 15 ligado ao VCC, através de uma solda entre os terminais do CI. As soldas nos pinos serão refeitas apos os testes!
Finalizado a parte física vamos alterar o software para que possamos observar a diferença de um modulo alterado para um original!!
O software para testes:
O software esta com um filtro de 5 amostras na função CAPTURA e de 25 Amostras na função Media, dando um total de 125 amostras por leitura!
unsigned long tempo = 0; float saida = 0; const int DOUT = A5; // Pino DT placa HX711 const int hxSCK = A4; // Pino SCK placa HX711 unsigned long TARA = 0; // ALTERAR PARA SUA CELULA DE CARGA!!!!! float kconst = 21097.164; // Fator para Kilograma pequenos pesos void setup() Serial.begin(9600); pinMode(hxSCK, OUTPUT); pinMode(DOUT, INPUT); Serial.println("Aguarde estou zerando!"); TARA = setTARA(); Serial.println("Estou pronto!"); void loop() tempo = millis(); saida = Peso(); tempo = millis()-tempo; Serial.print(saida); Serial.print(" Kg"); Serial.print(", Tempo= "); Serial.print(tempo); Serial.print(" ms"); Serial.print(", SPS= "); Serial.print(float(125000/tempo)); // 125 Amostras Serial.println(" Amostras por segundo"); // delay (10); //Aguarda 10ms unsigned long CAPTURA() unsigned long CAPTURA = 0; unsigned long MEDIA = 0; for (int j=0; j<5; j++) // loop 5 para media CAPTURA = 0; digitalWrite(hxSCK, LOW); while (digitalRead(DOUT)==1) ; for (int i=0; i<24; i++) // loop 24 pulsos digitalWrite(hxSCK, HIGH); CAPTURA = CAPTURA<<1; digitalWrite(hxSCK, LOW); if(digitalRead(DOUT) == 1) CAPTURA++; // pulso extra 25 pulsos proxima leitura canal A ganho 128 digitalWrite(hxSCK, HIGH); delayMicroseconds(10); digitalWrite(hxSCK, LOW); //------------------------------------------------------- CAPTURA ^= 0x00800000; MEDIA += CAPTURA; CAPTURA = MEDIA/5; return CAPTURA; unsigned long setTARA() // reseta o conversor HX711 digitalWrite(hxSCK, 1); delay (200); digitalWrite(hxSCK, LOW); delay (1); // ------------------------- return Media(70); float Peso() long peso = (Media(25) - TARA); return (float) peso / kconst; long Media(byte vezes) long soma = 0; for (byte i = 0; i < vezes; i++) soma += CAPTURA(); return soma / vezes;
O resultado dos testes no módulo HX711 original.
O modulo sem modificação no hardware foi testado com as células de carga de uma balança de banheiro sem carga e o sample rate foi de 11 amostras por segundo (11 SPS).
O resultado do módulo HX711 com as alterações de Hardware.
O modulo com a modificação no hardware foi testado com uma célula de carga de 20Kg como pode ser visto nas fotos a seguir e o sample rate foi de aproximadamente 92 amostras por segundo ( 92 SPS ).
O módulo HX711 modificado da por volta de 92 amostras por segundo ( 92 SPS )
Módulo Hx711 ligado a uma célula de carga 20Kg
Detalhe do módulo Hx711 ligado a uma célula de carga 20Kg
OBS: Recomendo aterrar o canal B caso não seja utilizado em seu projeto!
HX711- Alterando o tempo de captura ( SAMPLE RATE ) do módulo HX711!
Nenhum comentário:
Postar um comentário