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.
Detalhe da trilha cortada com um estilete!
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!
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 ).
Detalhe do módulo Hx711 ligado a uma célula de carga 20Kg
HX711- Alterando o tempo de captura ( SAMPLE RATE ) do módulo HX711!
Nenhum comentário:
Postar um comentário