domingo, 17 de julho de 2016

HX711- Alterando o tempo de captura ( SAMPLE RATE ) do módulo HX711!

Como foi falado os módulos do HX711 vem com o sample rate em aproximadamente 10 amostras por segundo (10 SPS), pois o pino 15 (RATE) esta ligado ao terra (GND). Para alterar o sample rate do módulo é necessário fazer alterações na placa. Será necessário retirar o CI HX711 da placa, depois cortar a trilha que liga o pino 15 (RATE)  ao terra (GND), e  por fim ligar o pino 15 (RATE) ao 5V (VCC).

      As alterações necessárias para alteração do Sample rate do módulo HX711.


Cortar a trilha do pino 15 (RATE) ao GND e ligar o pino 15 (RATE) ao VCC

A placa do modulo tem uma trilha por baixo do CI HX711 ligando o pino 14 ao pino 15 (RATE).



Módulo HX711 sem alterações
Detalhe visual pinos 14 e 15

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 HX711 original da por volta 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