As principais diferenças deste sistema para o anterior são que agora os valores do
DAC e potenciómetro serão calculados pelo sistema e guardados na memória EEPROM
do microcontrolador para não se perderem, através do algoritmo apresentado no subcapítulo 2.3 e o utilizador não escolherá o sensor a ler, o próprio programa irá percorrer os sensores existentes.
Para o código ficar mais simples e não haver repetição dividiu-se em três funções diferentes:
Seleção do sensor,
Configuração dos parâmetros dos sensores, Leitura dos sensores.
A função de seleção do sensor não tem muito a explicar pois faz exatamente o que sugere o seu nome, seleciona o sensor quer na configuração quer na leitura.
Na configuração dos parâmetros é que já existe alguns pontos a referenciar. Em primeiro lugar, apresenta-se uma pequena diferença ao algoritmo na configuração do potenciómetro. Optou-se por incrementar uma palavra digital de cada vez em vez de, colocar a metade da resistência total inicialmente e de dividir o seu valor por 10 enquanto a saída do ADC for menor que 0,5V. Esta escolha deveu-se apenas ao facto de neste potenciómetro a palavra digital 00h traduzir o máximo de resistência e a FFh o valor mínimo 0V.
A variável “x” conta o número de vezes que se incrementou o potenciómetro, para assim ser possível o cálculo do seu correspondente em ohm. O valor real a colocar no potenciómetro é então encontrado pelo código:
while(tensao<0.50) {
Wire.beginTransmission(44); Wire.write(byte(0x64)); Wire.endTransmission();
delay(1000); //tempo para alterar valores na placa
tensao=(float)((5.00*analogRead(A0))/1023); x++; //número de incrementos
Sistema auto adaptativo de leitura e aquisição de dados para sensores de pressão piezorresistivos
25
Primeiro calcula-se o valor de resistência em cada incremento, em seguida multiplica-se pelo número de incrementos para saber a variação de resistência necessária para que a tensão no ADC seja superior a 0,5V. Conhecendo este valor é só aplicar a fórmula do algoritmo sem esquecer que o valor de resistência é o valor máximo menos a variação calculada. Dividindo o valor real pela variação em cada incremento obtêm-se a palavra digital correspondente e guarda-se na memória
EEPROM. A variável “i” representa a posição de memória.
Com o valor do potenciómetro calculado passa-se para a configuração do DAC. Neste componente utilizou-se o cálculo do algoritmo do subcapítulo 2.3 sendo de frisar apenas o facto de este DAC ter 16 bits de dados e o microcontrolador apenas conseguir enviar 8 bits de cada vez, ou seja, após o cálculo da palavra digital foi necessário dividi- la em 2 bytes com recurso ao código:
O algoritmo implementado permite configurar os componentes de forma a ser possível obter leituras quer o sensor piezorresistivo esteja sujeito a uma deformação que aumente a sua resistência ou a diminua.
Concluída a programação do sistema passou-se para a fase de testes. Nesta etapa optou-se por desenvolver uma aplicação em linguagem C# de forma a ser mais percetível qual o sensor da matriz a ser lido.
v_ohm=(10000/255); //valor de resistência em cada incremento
ohm=v_ohm*x; //variação necessária para tensão >0,5V
tensao=(float)((5.00*analogRead(A0))/1023); //conversão para tensão
ohm_out=((tensao*(10000-ohm))/(5.00-tensao)); //cálculo do valor real
pot=(ohm_out/v_ohm); //conversão para digital
EEPROM.write(i,pot); //guardar na memória
i++; //incrementar posição de memória
dac_f=((dac_out*65535)/2.97); //cálculo da palavra digital
dac=dac_f&0xff; //máscara para guardar o byte menos significativo
EEPROM.write(i+1, dac); //guardar na memória
dac_f=dac_f>>8; //shift register
dac=dac_f&0xff; //máscara para guardar o byte menos significativo
Sistema auto adaptativo de leitura e aquisição de dados para sensores de pressão piezorresistivos
26
Ilustração 3-5 Aplicativo desenvolvido
O aplicativo é constituído por 3 botões, um para ligar/desligar, outro para mandar configurar o sistema quando os sensores são conectados e o ultimo para receção dos dados lidos. Após o pedido de configuração aparece uma mensagem que informa o término da operação.
Sistema auto adaptativo de leitura e aquisição de dados para sensores de pressão piezorresistivos
27
Iniciou-se os testes ao sistema auto adaptativo com recurso a resistências elétricas. A ilustração 3-7 mostra os valores lidos após a configuração.
Ilustração 3-7 Leitura após configuração do sistema para resistências elétricas
A resistência na L1C1 é de 1kΩ e na L2C1 encontra-se uma de 20kΩ. Realizaram-se medições aumentando o valor da resistência da L1 e diminuindo a da L2.
Sistema auto adaptativo de leitura e aquisição de dados para sensores de pressão piezorresistivos
28
Ilustração 3-9 Leituras para L1C1:20kΩ e L2C1:1kΩ
Na ilustração 3-10 mostra o valor lido após voltar a colocar as resistências iniciais.
Ilustração 3-10 Nova leitura com os valores iniciais de resistências
No final do teste traçou-se o gráfico de evolução da tensão em relação ao valor de resistência. Pela análise do gráfico da ilustração 3-11 pode-se observar que as leituras não estão muito longe de uma evolução linear. O problema pode ser influenciado pela
Sistema auto adaptativo de leitura e aquisição de dados para sensores de pressão piezorresistivos
29
tolerância das resistências que é diferente e pelo erro introduzido pelas leituras do ADC e resolução dos componentes programáveis.
Ilustração 3-11 Gráfico de evolução da tensão em relação ao valor de resistência
Nas ilustrações seguintes apresenta-se as leituras efetuadas com sensores, onde o da L1C1 foi mantido em repouso em todas as leituras e o da L2C1 foi deformado em dois sentidos e depois colocado novamente na posição inicial.
Ilustração 3-12 Leitura dos sensores após configuração
0 0,5 1 1,5 2 2,5 3 3,5 4 1000 2000 3300 5100 10000 20000 Ten são (V) Valor de resistência (Ω) Conf. 1kΩ Conf. 20kΩ
Sistema auto adaptativo de leitura e aquisição de dados para sensores de pressão piezorresistivos
30
Ilustração 3-13 Leitura após deformar sensor no sentido em que decrementa o valor da sua resistência
Sistema auto adaptativo de leitura e aquisição de dados para sensores de pressão piezorresistivos
31 Ilustração 3-15 Leitura após o sensor voltar à posição de repouso
Sistema auto adaptativo de leitura e aquisição de dados para sensores de pressão piezorresistivos
32