Mostrar mensagens com a etiqueta Proj. Célula de Carga. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Proj. Célula de Carga. Mostrar todas as mensagens

Junto podem vê-se 2 fotos do aspecto final do sistema construído.
De forma breve, pode fazer-se a seguinte legenda:
1 - conversor USB-serie: foi soldado o módulo directamente de modo a tornar a construção mais rápida;
2 - conversor DC/DC: este é o responsável pela obtenção das tensões +15V e -15V para alimentar toda a instrumentação.
3 - conector para a célula de carga: por aqui segue a alimentação e o sinal a medir;
4 - amplificador de instrumentação INA126: responsável pela amplificação diferencial do sinal medido;
5 - dual opamp LM358: responsável pela referencia ao amplificador de instrumentação e pela detecção do zero;
6 - microcontrolador PIC12F1822: responsável pela amostragem, processamento e envio dos valores medidos para um computador.
De frisar, na segunda fotografia, o pormenor da atenção dada na colocação dos condensadores SMD o mais junto possível aos pinos de alimentação e com um desenho sem o recurso a trilhas de sinal demasiado longas e/ou a percorrer caminhos "estranhos". Por isso, e como de costume, não foi utilizado nenhuma ferramenta de auto-routing. 

Eis que se chega à ultima parte, relacionada com o hardware construído - construção do funcionamento global.
A imagem seguinte mostra um pequeno diagrama de blocos com as principais tarefas realizadas pelo PIC12F1822 e que serão brevemente explicadas.
O MCU aguarda que pela USART seja recebido o comando para realizar e enviar uma nova leitura de peso, medido através da célula de carga.
Assim que esse pedido chega e é confirmado como tal, são realizadas 16 leituras da ADC, com a sua referência programada para 5V, posteriormente calculando a sua média. O objectivo, como já descrito na PART3, é determinar qual a melhor referência para a ADC com o intuito de melhorar também a sua resolução. As configurações do periférico são novamente modificadas para corresponder à referencia escolhida.
A função mostrada em seguida, não só aplica a referencia como realiza a medição da ADC e retorna esse valor.
unsigned int ADC_ref_read(unsigned char ref)
{
   
switch (ref)
    {
       
case 0:
            FVRCONbits.FVREN    =   1;      //enable reference
            FVRCONbits.ADFVR    =   0b01;   //ADC FVR Peripheral output is 1x (1.024V)
            while(!FVRCONbits.FVRRDY);      //Fixed Voltage Reference output is ready for use
            ADCON1bits.ADPREF   =   0b11;   //V+ = FVR
            break;
        case 1:

            FVRCONbits.FVREN    =   1;      //enable reference
            FVRCONbits.ADFVR    =   0b10;   //ADC FVR Peripheral output is 2x (2.048V)
            while(!FVRCONbits.FVRRDY);      //Fixed Voltage Reference output is ready for use
            ADCON1bits.ADPREF   =   0b11;   //V+ = FVR
            break;
        case 2:

            FVRCONbits.FVREN    =   1;      //enable reference
            FVRCONbits.ADFVR    =   0b11;   //ADC FVR Peripheral output is 4x (4.096V)
            while(!FVRCONbits.FVRRDY);      //Fixed Voltage Reference output is ready for use
            ADCON1bits.ADPREF   =   0b11;   //V+ = FVR
            break;
        case 3:

            FVRCONbits.FVREN    =   0;      //disable reference
            ADCON1bits.ADPREF   =   0b00;   //V+=vcc
            break;
    }
        _delay(40);       //Wait the required acquisition time(2)  - 5uS
        
        ADCON0bits.GO_nDONE = 1;        //Start conversion by setting the GO/DONE bit.
        while(ADCON0bits.GO_nDONE);
    return (ADRESH<<8)+ADRESL;
}
Ultrapassada esta parte, são realizadas 31 medições com uma frequência de amostragem de 10KHz (uma amostra a cada 100uS). Estas são utilizadas para criar um filtro FIR de 30ª ordem com uma frequência de corte de 10Hz. Esta etapa é muito importante para reduzir ao máximo possíveis erros de leitura provocados por ruído ou qualquer outro relacionado. Tudo sobre filtros FIR, incluindo o cálculos dos coeficientes para a multiplicação, pode ser encontrado AQUI.
A particularidade utilizada por mim, nesta parte, consiste na multiplicação dos coeficientes por uma constante que os torne a todos números inteiros de 8 bits, para facilitar os cálculos pelo MCU.
No código acima, o vector x[] armazena os valores resultantes da medição da ADC, o vector h[] contém os coeficientes do filtro (todos multiplicados por 2^12, para os tornar inteiros de 8bits), a variável "filtro" corresponde ao valor de medição obtido pelo filtro e por ultimo a variável "cod" volta a dividir o valor calculado e resultante do filtro por 2^12 de modo a obter um valor na mesma relação que a ADC.
Posteriormente estes dados são organizados em 2 bytes, junto com um checksum de 4bits e enviado pela USART para o computador. Lá são recebidos, "descompactados" convertidos em valores de força (peso) que podem ser mostrados à plateia.

O artigo seguinte deverá conter algumas fotos do circuito construído assim como uma breve explicação da sua utilização.

A digitalização do sinal obtido na PART2, fica a cargo de um pequeno grande MCU, o PIC12F1822.
Este micro possui uma referencia de tensão fixa (FVR), a partir da qual se podem obter as tensões de 1.024V, 2.048V e 4.096V. Este periférico de FVR pode ser ligado internamente à referencia de tensão da ADC de 10bits.
Vantagens?
Bem... o aumento da resolução de medição é a principal. Com uma referencia na ADC de 5V a resolução é de 4.89mV (5/1023), mas com uma referencia de 1.024V a resolução passa para 1mV. Esta mudança de referencia produz um aumento da resolução em quase 5 vezes, com, obviamente, o sinal a digitalizar tem de ser inferior à referencia da ADC.

Para determinar qual a melhor referência a aplicar, é feita a média de 16 leituras da ADC com referencia de 5V. O resultado desse calculo é posteriormente comparado com os valores que definem os intervalos das escalas, habilitando a ligação da ADC ao valor mais apropriado.
Do ponto de vista prático, a utilização deste método, faz com que tenha uma resolução (valor do LSB) dinâmica de acordo com o peso exercido na célula. Com uma referencia fixa na ADC de 5V, a resolução em toda a escala seria de 244gr (250Kg/1023), mas com a mudança de referencia no momento certo, com pesos menores a resolução é também ela menor.
* Até 51.2Kg (correspondente a 1.024V), resolução de 50gr (51.2Kg/1023);
* Até 102.4Kg (correspondente a 2.048V), resolução de 100gr (102.4Kg/1023);
* Até 204.8Kg (correspondente a 4.096V), resolução de 200gr (204.8Kg/1023);
* Até 250Kg (correspondente a 5V), resolução de 244gr (250Kg/1023);

No artigo seguinte será uma breve explicação de como implementar um filtro digital FIR assim como o fluxograma de funcionamento geral.

No artigo anterior, já se concluiu que a variação de tensão à saída da célula de carga é de 30mV na sua carga máxima, 250Kg, quando alimentada a 15V.
Para melhor explicar passo-a-passo a construção do circuito, a imagem em baixo divide-se em vários blocos (numerados) e que serão descritos em maior detalhe.
Embora não mostrado, a alimentação será feita a partir de uma porta USB e usando um conversor TRACO TEN 3-0523. Daqui se obtém as tensões de +15V e -15V e as quais são devidamente filtradas com o intuito de reduzir ao máximo o ruído na alimentação.


1 - Conector da célula.
Local onde será feita a ligação da célula de carga com a PCB.

2 - Condensadores de alisamento.
Além de todos os condensadores já existentes do "bloco de alimentação" estes condensadores de valor mais baixo contribuem para a anulação do ripple de alta frequência, tornando a alimentação mais estável.

3 - Amplificador de instrumentação INA126.
Circuito responsável pela ampliação da diferença de potencial medida na célula de carga.
A seguinte imagem é retirada do datasheet e mostra uma aplicação típica, semelhante à utilizada por mim.


4 - Resistências de ganho.
Fazem um total de 494R e por isso o ganho do amplificador corresponde a 166,94. Isto significa que quando a diferença no Vin for de 30mV o Vout será de 5V, pronto a ser filtrado e digitalizado.

5 - Ajuste de referência.
Este ajuste é essencial para uma correcta leitura dos valores, pois é comum a célula não ser perfeita e o diferencial de saída da célula ser negativo, com peso zero, e depois com o aumento de peso passar a positivo. Então é necessário acertar o Vref adequadamente. O bloco 7 serve para isso mesmo.

6 - Filtro RC.
Filtro passa baixo para complementar o que virá a ser feito por software. Estes filtros serão muito importantes pois as tensões resultantes da célula são tão baixas que têm praticamente a mesma amplitude que o ruído. É então necessário ter em atenção técnicas para atenuação dessas perturbações não desejadas.
Filtro passa baixo de primeira ordem, com frequência de corte nos 4.8Hz.

7 - Detecção de "zero" para ajuste inicial.
É feita uma comparação entre Vout e a referencia (ground). Quando a célula não tiver qualquer carga, o potenciómetro de ajuste à referencia do INA126 deve ser rodado até que o LED deste bloco acenda. Isso significa que a saída do amplificador para um peso de 0Kg, corresponde a uma tensão muito próxima de zero (mas que deve ser tida em consideração no software) maximizando a ganha de trabalho.

8 - Saída do bloco analógico para a ADC.
É aqui deverá ser ligado um MCU, mais precisamente um pino correspondente à sua ADC.

No próximo artigo será revista em pormenor a parte de digitalização e filtragem (FIR) da tensão resultante do bloco aqui descrito.

Com a chegada de mais um Concurso Pontes de Esparguete (a realizar a 4 de Dezembro, na UBI), faz todo o sentido descrever aqui este projecto.
Trata-se de um sistema de medição de força (peso) projectado e construído há cerca de um ano e o mesmo já foi utilizado no ultimo concurso. O recorde foi atingido, tendo uma ponte com 350gr de esparguete, aguentado um peso de 167Kg!
O objectivo é medir a força (peso) exercida do tabuleiro da ponte construída em esparguete, tendo um registo continuo e classificando o peso máximo suportado.

A resolução do sistema de medição deverá ser a máxima possível sem que isso venha complicar desnecessariamente o projecto, no entanto considera-se resolução mínima aceitável 500gr para um peso de 250Kg. Na verdade, com alguma mestria, foram conseguidos cerca de 50gr de resolução mínima, mas será explicado em artigos futuros.
Posteriormente os valores resultantes da medição devem ser filtrados enviados para um computador que fará a projecção, para a plateia, da carga exercida na ponte.
Mas uma coisa de cada vez!
Para medir o peso exercido na ponte é utilizada uma célula de carga do tipo "S", como ESTA.
O video seguinte ilustra em maior pormenor o funcionamento de uma célula de carga. Ela possui 4 extensómetros (2 à compressão e 2 à tracção para maximizar a diferença de potencial), numa Ponte de Wheatstone.


A diferença de potencial na saída da célula é de 2mV por cada volt de alimentação e a uma carga de 250Kg. Ou seja, com uma alimentação máxima de 15V e uma carga de 250Kg, a ddp é de apenas 30mV (2*15). Apenas  120uV por cada Kg!!!

Nos artigos seguintes será descrito os passos realizados em seguida até à conclusão do sistema totalmente funcional.