Ir ao conteúdo
  • Cadastre-se

Arduino Código para leitura de sensores com Arduino.


Posts recomendados

7 horas atrás, Thiago Miotto disse:

Dá p/ fazer por if, ou escrevendo dígito a dígito. Acho a segunda opção mais fácil:

 

 lcd.setCursor(3, 0);

  lcd.print(voltage/100); // Exibe a tensão inteira

  lcd.print(","); // Exibe a virgula

  lcd.setCursor(5, 0);

  
  lcd.print((voltage%100)/10);  // Exibe o 1º digito  após a virgula

  lcd.print(voltage%10);  // Exibe o 2º digito após a virgula

agora funcionou melhor, estava escrito tensão mas adaptei pra funcionar com a lambda também.

essa parte do código ficou assim:

 

Citação

lcd.setCursor(3, 0);

  lcd.print(voltage/100); // Exibe a tensão inteira

  lcd.print(","); // Exibe a virgula

  lcd.setCursor(5, 0);

  lcd.print((voltage%100)/10);  // Exibe o 1º digito  após a virgula

  lcd.print(voltage%10);  // Exibe o 2º digito após a virgula

 

  lcd.setCursor(12, 0);

  lcd.print(lambda/100); // Exibe a lambda 0 ou 1

  lcd.print(","); // Exibe a virgula

  lcd.setCursor(14, 0);

  lcd.print((lambda%100)/10);

  lcd.print(lambda%10);

 

vou testar no carro amanhã, mas acho que vai funcionar bem, o próximo sensor que vou adaptar é o de pressão de óleo a tabela do fabricante indica que ele funciona assim: 

 

image.png.c71dc4e474e1bdd51289fde76344ccc6.png

 

medi com multimetro deu 33 ohms sem pressão então deve estar correto se não me engano em um tópico mais antigo você @Thiago Miotto me indicou usar um resistor de 100 ohms em série pra fazer a leitura, então neste caso melhor usar a função MAP ou temos que adaptar de outra forma? Porque lendo a tabela parece que não é linear o aumento da resistência, o que acha?

Link para o comentário
Compartilhar em outros sites

12 horas atrás, .if disse:

Fiz exatamente isso em c na versão alpha do programa.😁

unsigned int mil,cen,dez,un;
mil=dado/1000;
cen=(dado-mil*1000)/100;
dez=(dado-mil*1000-cen*100)/10;
un=dado-mil*1000-cen*100-dez*10;

 

você diz na unha mas não achei a função Shiftout  ... por acaso é implementação do hw? tipo spi?

 

Não, é um comando de I/O do Bascom que permite enviar qualquer tipo de variävel bit a bit para um pino de saída, pode será partir do MSB ou do LSB, e você define a velocidade.

 

Existe uma equivalente para a antrada de dados bit a bit no formato serial, usando um outro pino de I/O adicional como sincronismo, e você específica a quantidade de bits a receber e para qual variävel vai ser direcionado.

 

Eu disse na unha porque só usei comandos normais do Bascom.... Poderia ter isolado cada bit e controlado o envio de maneira ainda mais primitiva, mas o comando simplifica demais kkkk

 

Essa técnica que você ainda estä digerindo foi uma maneira de se evitar um erro maior do que 3 casas decimais depois da vírgula nas contas com números inteiros de 16 bits... Na prática o erro do A/D com os ruídos ficou maior do que esse 0,001 Volt mas o meu ponto era apenas ensinar uma matemática de conversão para os iniciantes fugirem dos pontos flutuantes.

 

Acho que fazer um voltímetro com essa resolução com pouco mais de 1Kb fica num tamanho razoável para um programa em Basic, linguagem com mais de 60 anos kkkkk !

 

 

@GustavoH93,

 

Melhor fazer uma tabela para usar a função MAP semelhante a essa do sensor  e linearizar cada intervalo para se obter um resultado melhor....  O erro inicial desse sensor ė de 30% e vai diminuindo atė perto de 5% no limite superior.

 

Use a função MAP com valores adequados para cada uma dessas 11 faixas.

 

Mas antes ... Cuidado com os 12V do sensor, verifique se o que sai dele é uma resistência em relação ao GND ou em relação ao 12V senão você queima o microcontrolador. Faça um divisor resistivo adequado para nunca aplicar mais tensão no pino do que a tensão que o microcontrolador esteja sendo alimentado.

 

Paulo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

 

22 horas atrás, GustavoH93 disse:

as vezes não entendo 100% do que tá escrito

Mas se entendeu o basic de Paulão, tamo no lucro😁

 

 

12 horas atrás, aphawk disse:

Eu disse na unha porque só usei

Na unha pra mim era usar só os recursos do hw do mc com zero libs e facilitações. Era porque hoje em dia deito e rolo nas libs mastigadas também kk

 

12 horas atrás, aphawk disse:

comandos normais do Bascom

Suponho que assim como um printf() é do c, lcd.print() é do arduíno... tudo aos olhos não treinados, 'normal'. Facilita tudo mas lá 'em baixo' é que o bixo pega...

ok .. foi só . de vista. Não está em pauta e etc. Deixa a molecada se divertir pow. 🤪

 

em tempo... melhorei..desisti do autodesafio...
 

  • Haha 1
Link para o comentário
Compartilhar em outros sites

14 horas atrás, aphawk disse:

Melhor fazer uma tabela para usar a função MAP semelhante a essa do sensor  e linearizar cada intervalo para se obter um resultado melhor....  O erro inicial desse sensor ė de 30% e vai diminuindo atė perto de 5% no limite superior.

neste caso iria usar então 10 if e dentro de cada if usar um MAP para fazer um mapeamento dentro daquela faixa por exemplo de 71 a 88 ohms fazer um map que vai de de 3 a 4 bar?

 

Poderia fazer também uma Matriz por exemplo se estiver de 71 a 88 ohms o LCD exibe 3 bar, de 88 até 106 exibe 4 bar... É mais rápido e pratico mas a leitura intermediária não vai ter, de 3 já pula pra 4  não tem leitura após a virgula, acho que para essa função talvez não seria tão adequado, ou seria? Se não me engano @.if que me falou algum tempo atrás sobre array...

 

2 horas atrás, .if disse:

Mas se entendeu o basic de Paulão, tamo no lucro😁

Aos poucos estou aprendendo, por falar nisso por  increça que parível  estava tentando aprender a usar o APP inventor achei que ia ser tranquilo porque é programação visual, ledo engano estou boiando naquele treco, acho que vou migrar para o android studio lá parece que é java, obviamente não entendo nada de java, mas acho que vou me dar melhor com a programação por linha de código mesmo...

 

15 horas atrás, aphawk disse:

Mas antes ... Cuidado com os 12V do sensor, verifique se o que sai dele é uma resistência em relação ao GND ou em relação ao 12V senão você queima o microcontrolador. Faça um divisor resistivo adequado para nunca aplicar mais tensão no pino do que a tensão que o microcontrolador esteja sendo alimentado.

Na verdade este sensor vou usar para medir a pressão do combustível, no carro tenho um gêmeo dele que faz a leitura da pressão do óleo já com o manômetro dele, os 12v vão no manômetro, o sensor só tem um terminal o outro é a própria carcaça que fica ligada ao GND.

 

image.thumb.png.cd2019492595fe10bc3c8a14f2607417.png

 

Apesar da tabela do fabricante estar indicando 12v posso alimentar ele com 5v porque é basicamente um resistor não? Fora que alimentar com 5v tem menos chance de queimar alguma coisa se der errado...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
3 horas atrás, GustavoH93 disse:

aprender a usar o APP inventor achei que ia ser tranquilo porque é programação visual, ledo engano estou boiando naquele treco, acho que vou migrar para o android studio lá parece que é java, obviamente não entendo nada de java,

TLJ (Literalmente). Não me achei naquela pô ha de appinventor. Muita criancisse. 🤪 Comecei também no java mas não rolou. Até meio que fiz um hello world 100% original com ele... algo como um jogo da forca pra adivinhar um número aleatório. Ideia 1oo% original que tive nos 80's em basic.

Pra conversar do mc pro android usei o mastigado bluetooth electronics... até que meio que deu certo pro propósito inicial

 

3 horas atrás, GustavoH93 disse:

de 71 a 88 ohms o LCD exibe 3 bar, de 88 até 106 exibe 4 bar..

A dica que dou é não esquentar com unidades por enquanto. Meça como o ad e mostre num display os valores em bytes mesmo...o que eu chamo de unidades de ad. Outra... valores de resistência baixos exigem maiores correntes... só a aplique quando for medir... a não ser que o sistema já mantenha aplicada... aí é só medir a V nela.

Link para o comentário
Compartilhar em outros sites

6 horas atrás, GustavoH93 disse:

Apesar da tabela do fabricante estar indicando 12v posso alimentar ele com 5v porque é basicamente um resistor não? Fora que alimentar com 5v tem menos chance de queimar alguma coisa se der errado...

Depende. Só testando p/ saber. Pode existir alguma eletrônica no sensor, que precisa dos 12V p/ rodar adequadamente. Mas pode ser um potenciômetro que desliza c/ uma mola. Então acho que vai funcionar nos 5V como você pensou.

Seria algo tipo isso:
https://produto.mercadolivre.com.br/MLB-1144809488-regua-potenciometrica-25mm-retorno-com-mola-ktr25-_JM#position=3&search_layout=stack&type=item&tracking_id=86d5a281-e624-4334-ac14-9c8ab11c652e

Link para o comentário
Compartilhar em outros sites

Bom pessoal hoje fui testar a leitura da sonda com o arduino e ia fazer a medição da pressão do sensor, mas quando fui girar a chave pra bomba de combustível ligar descobri que a bateria estava totalmente zerada, deixei ela carregando mas consegui fazer a leitura do gerenciador de sonda, a leitura está meio diferente, como imagem vale mais do que palavras gravei um viceo para vocês:

 

 

 

O gerenciador está dentro dessa caixinha e usa um LCD 16x2 quando comprei até achei que tinha um arduino dentro, mas não tem não é uma placa com um CI grande por dentro, ele indica no LCD o valor da lambda e a temperatura da sonda. Mas deem uma olhada por favor a leitura do arduino parece não estar 100% fiel, será que é a tensão do sensor ou alguma coisa errada com o código?

 

Em 28/05/2023 às 16:55, .if disse:

TLJ (Literalmente). Não me achei naquela pô ha de appinventor. Muita criancisse. 🤪 Comecei também no java mas não rolou. Até meio que fiz um hello world 100% original com ele... algo como um jogo da forca pra adivinhar um número aleatório. Ideia 1oo% original que tive nos 80's em basic.

Pra conversar do mc pro android usei o mastigado bluetooth electronics... até que meio que deu certo pro propósito inicial

se der vou me arriscar no java, mas parece que para o app studio não tem os drivers para comunicar o arduino via usb só por bluetooth e aí complica bastante porque o tablet não tem o bluetooth 😕

 

Em 28/05/2023 às 16:55, .if disse:

A dica que dou é não esquentar com unidades por enquanto. Meça como o ad e mostre num display os valores em bytes mesmo...o que eu chamo de unidades de ad. Outra... valores de resistência baixos exigem maiores correntes... só a aplique quando for medir... a não ser que o sistema já mantenha aplicada... aí é só medir a V nela.

Então eu ia fazer a leitura direta da porta mesmo de 0 a 1023 e comparar com o manômetro do carro, o bom é que lá poderia ajustar a pressão para 0,5 bar e ver a leitura, ajustar pra 1 bar e ver a leitura, ajustar pra 2 e ter a leitura... Daria pra montar uma tabela bem melhor do que a do fabricante mas pra variar a bateria resolveu descarregar...

 

Em 28/05/2023 às 19:41, Thiago Miotto disse:

Depende. Só testando p/ saber. Pode existir alguma eletrônica no sensor, que precisa dos 12V p/ rodar adequadamente. Mas pode ser um potenciômetro que desliza c/ uma mola. Então acho que vai funcionar nos 5V como você pensou.

Seria algo tipo isso:
https://produto.mercadolivre.com.br/MLB-1144809488-regua-potenciometrica-25mm-retorno-com-mola-ktr25-_JM#position=3&search_layout=stack&type=item&tracking_id=86d5a281-e624-4334-ac14-9c8ab11c652e

Nunca tinha visto potenciômetros como esses, mas eu também acho que deve ser um potenciômetro com mola é um sensor muito simples, mas agora pra ligar em série com ele teria que ser um resistor de 100r mesmo né? Se fosse 12v imagino que o resistor teria que ser bem maior pra não queimar a porta

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
12 horas atrás, GustavoH93 disse:

para comunicar o arduino via usb só por bluetooth e aí complica bastante porque o tablet não tem o bluetooth

12 horas atrás, GustavoH93 disse:

arriscar no java,

Cria uma página algo como 192.168.0.34 no seu dispositivo e usa o navegador do tablet. Só teoria.. nunca fiz isso 🤪

 

12 horas atrás, GustavoH93 disse:

potenciômetros como esses,

Que barato! pena que não se pode dizer o mesmo do preço 😁

 

12 horas atrás, GustavoH93 disse:

a leitura está meio diferente,

Eu acho tolerável a diferença que vi. Sobre a instabilidade: leia vários e tire a média...

char i=8, valor=0;

while(i) {valor+=adcread();delay(tempinho);}

valor/=8; //base 2, lembra?

e no hw, filtro rc ou só c

 

 

Link para o comentário
Compartilhar em outros sites

8 horas atrás, .if disse:

Eu acho tolerável a diferença que vi. Sobre a instabilidade: leia vários e tire a média...

char i=8, valor=0;

while(i) {valor+=adcread();delay(tempinho);}

valor/=8; //base 2, lembra?

e no hw, filtro rc ou só c

 

Eu sugiro um filtro RC grande, algo como C de 47uF em paralelo com um de 0.1 uF,  e um R de 10K, e, claro, média de 8 leituras. Afinal pressão de óleo não deve variar muito rápido não ....

 

Eu costumo usar um algoritmo que vai calculando a media e ajustando automaticamente o resultado... Existem vários na Internet.

 

Paulo

Link para o comentário
Compartilhar em outros sites

Em 29/05/2023 às 20:07, GustavoH93 disse:

Nunca tinha visto potenciômetros como esses, mas eu também acho que deve ser um potenciômetro com mola é um sensor muito simples, mas agora pra ligar em série com ele teria que ser um resistor de 100r mesmo né? Se fosse 12v imagino que o resistor teria que ser bem maior pra não queimar a porta

Sim. Se usar os 12 V, tem que calcular um resistor para sempre chegar menos de 5v na porta.

Link para o comentário
Compartilhar em outros sites

Em 30/05/2023 às 09:02, .if disse:

Cria uma página algo como 192.168.0.34 no seu dispositivo e usa o navegador do tablet. Só teoria.. nunca fiz isso 🤪

viajando na sua ideia parece que dá pra comunicar o arduino com o tablet via wifi, será que dá pra comunicar direto sem o roteador entre eles? Só pensando longe agora kkkkkk

 

18 horas atrás, aphawk disse:
Em 30/05/2023 às 09:02, .if disse:

Eu acho tolerável a diferença que vi. Sobre a instabilidade: leia vários e tire a média...

char i=8, valor=0;

while(i) {valor+=adcread();delay(tempinho);}

valor/=8; //base 2, lembra?

e no hw, filtro rc ou só c

 

Eu sugiro um filtro RC grande, algo como C de 47uF em paralelo com um de 0.1 uF,  e um R de 10K, e, claro, média de 8 leituras. Afinal pressão de óleo não deve variar muito rápido não ....

vou pensar no filtro então pessoal,  a leitura da sonda está aparentemente finalizada agora preciso fazer a leitura do sensor de pressão de combustível/óleo, alterei o código aqui do começo para exibir no lcd a leitura da porta de 0 a 1023 e a tensão também, coloquei no sensor com tudo desligado deu perto de 98 de leitura, liguei a bomba de combustível e pelo manômetro deu 0,6 bar de pressão mas a leitura no arduino não mudou também, achei estranho então fui medir a resistência do sensor, com a bomba desligada 14,7 ohm com a bomba ligada 14,7 ohm, ou seja não tá funcionando como deveria...

 

Mas é estranho o sensor só tem um pino de saída e o GND é a carcaça dele, estou boiando  liguei dessa forma:

 

5v do arduino ligado em um resitor de 100r, o resistor está ligado com o pino analógico do arduino e também com o pino de saída do sensor, o GND do arduino está na carcaça do sensor e também ligado junto com o negativo da bateria do carro, é pra ser assim mesmo não? 

 

14 horas atrás, Thiago Miotto disse:

Sim. Se usar os 12 V, tem que calcular um resistor para sempre chegar menos de 5v na porta.

Pensei nisso mas como calcularia o resistor? Mas estou achando bem estranho o sensor precisar de tensão para trabalhar sendo que ele só tem um pino, pelo mesmo pino colocamos a tensão e fazemos a leitura? Que estranho...

 

 

Fui fazer um teste com o chat GPT perguntei pra ele qual resistor poderia usar em série com o sensor para que fique no máximo em 5v para não queimar a porta do arduino, e ele me respondeu que com essa resistência de 15 ohms do sensor poderia colocar um resistor de  6,25 ohms em série.   não entendo bem essa parte, mas com essa resistência de 6,25 tenho certeza que iria pegar fogo, taí mais um erro da inteligencia artificial...

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
6 minutos atrás, GustavoH93 disse:

taí mais um erro da inteligencia artificial...

Não fala isso! Ela se ofende!. O que lhe (te) falta são dados adicionais. Nem eu (apenas eu e o chpt, claro) entendi direito.

8 minutos atrás, GustavoH93 disse:

5v do arduino ligado em um resitor de 100r, o resistor está ligado com o pino analógico do arduino e também com o pino de saída do sensor, o GND do arduino está na carcaça do sensor e também ligado junto com o negativo da bateria do carro, é pra ser assim mesmo não? 

.. nem tem como saber sem saber de que se trata este sensor, de onde vem, que dado ele fornece, e alguns etc. Talvez (só talvez) alguém do ramo eletroautomotivo... Ou talvez o chgpt fizer uma parceria com o chuck norris 😁

  • Haha 1
Link para o comentário
Compartilhar em outros sites

9 minutos atrás, .if disse:

O que lhe (te) falta são dados adicionais. Nem eu (apenas eu e o chpt, claro) entendi direito.

pior que nem eu tenho mais informações, parece que tem um monte de fábricas chinesas que fazem o mesmo sensor, comprei um idêntico ao que eu uso no carro, o link é esse aqui onde tem as informações e aquela tabela que mandei antes:

 

https://pt.aliexpress.com/item/4001215450521.html?spm=a2g0o.order_list.order_list_main.62.73f9caa4FpODuP&gatewayAdapt=glo2bra

 

vou pesquisar se acho mais alguma coisa mas tá difícil, o manometro do sensor só tem a conexão GND sinal que é o fio do sensor e entrada dos 12v é um negócio que deveria ser simples mas agora está parecendo quase bruxaria 🤔

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Amigo ele é só um resistor que varia de 10 a 184 ohms

Hf2f5a87ac6a640a8a14d167f3b5a6a68O.jpg

 

Basta colocar um resistor de p.ex. 1K em série com ele, aplicar 12V (estabilizado) e ler as tensões com o ad do mc. Depois de ter os dados da faixa que quer medir, você pode usar uma tabelinha simples tipo aquela que passei ou dá até mesmo (aos meus olhos) deduzir visualmente uma formulazinha matemática pra esta tabela daí de cima. Dica: alimente as duas primeiras colunas no excel pra você ter uma ideia do gráfico.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, .if disse:

Amigo ele é só um resistor que varia de 10 a 184 ohms

 

4 minutos atrás, aphawk disse:

Se for só um resistor, porque tem uma tensão DC aplicada nele na tabela ?

Eu também estava pensando a mesma coisa porque teria 12v na tabela, e estava encafifado com o sensor não mudar a resistência mesmo com a pressão do combustível subindo e foi aí que percebi, ele só começa a mudar a resistência quando a pressão já está perto ou acima de 1 bar, percebi isso porque o sensor de pressão de óleo tem o manômetro no painel e como disse antes ele usa o mesmo sensor que comprei para medir a pressão do combustível olha os dois manômetros aí:

 

image.thumb.png.8c816e9857eb912a7d4901f7f1e71c2a.png

 

o sensor de pressão de combustível (a direita) é mecânico tem nada elétrico, o sensor de pressão de óleo (a esquerda) usa 12v e o sensor,  mas repara na escala praticamente começa a indicar acima de 1, ou seja o sensor só funciona com pressão mais elevada, para ter ideia a bomba de combustível estava ligada e no manômetro a direita estava marcando 0,2 de pressão e essa é a pressão que costumo usar, para o teste fui apertando o parafuso do dosador que controla a pressão do combustível e olha só:

 

de 0 até 0,9 bar a resistência fica em 11,9 ohms (não varia)

com 0,9 bar  deu 12,8 ohms

com 1 bar 17,2 ohms

1,2 bar 22,9 ohms

 

aí já parei de subir a pressão   porque percebi que menos de 0,9 bar não vai medir nada 🙄 posso usar esse sensor para a pressão do óleo que não fica abaixo de 1,2 mesmo com o motor girando bem devagar, mas pelo jeito para pressão de combustível não vai dar ele não tem sensibilidade nenhuma abaixo de 0,9 bar... Vou ter que comprar outro sensor infelizmente.

 

 

@.if  a formula para saber o resistor é essa aqui:?  R = ((Vout * R1) / Vin) - R1

 

Vout seria 5v que é a tensão do arduino 

R1' seria a resistência mínima do sensor  nesse caso aqui seria uns 10 ohms

Vin seriam os 12v

 

Quero aprender a calcular direitinho o resistor porque tenho que fazer a leitura de mais uns 6 sensores analógicos todos eles com a resistência variando por pressão, temperatura... Fora a bóia do tanque que desliza em um resistor também 😅

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
44 minutos atrás, aphawk disse:

Se for só um resistor, porque tem uma tensão DC aplicada nele na tabela ?

Só pra lembrar, esta tabela aparentemente tem origem chinesa e se você não sabe eles não se importam tanto com padronizações internacionais. O 12v é só algum tipo de referência automotiva. P.ex. existe sistema 24V..e na sua época era tudo 6V kk

 

 

24 minutos atrás, GustavoH93 disse:

com 0,9 bar  deu 12,8 ohms

com 1 bar 17,2 ohms

1,2 bar 22,9 ohms

Esta tabela prática meio que confirma que o dado é em ohm mesmo.

 

imagem-3-e1598032950505.jpg

https://blog.wika.com.br/know-how/como-funciona-um-transmissor-de-pressao/

 

Tive contato direto com alguns tipo deste

pic_pr_s_20_de_de_700px_47731.jpg-388x38

São só 2 fios mesmo e varia só a R mesmo.

 

35 minutos atrás, GustavoH93 disse:

aprender a calcular direitinho o resistor porque tenho que fazer a leitura de mais uns 6 sensores analógicos todos eles com a resistência variando por

Amigo você precisa essencialmente só dos dados. A grosso modo, apenas do valor máximo e mínimo da R. Assim sendo basta dar uma estudadela em divisor de tensão (google it) pra converter a R pra de 0 a 5V.. na prática deve ser menor. De novo, pra valores baixo de R há de se rebolar 1 pouco com implementações otimizadoras caso a caso

Link para o comentário
Compartilhar em outros sites

Em 31/05/2023 às 16:40, .if disse:

Amigo você precisa essencialmente só dos dados. A grosso modo, apenas do valor máximo e mínimo da R. Assim sendo basta dar uma estudadela em divisor de tensão (google it) pra converter a R pra de 0 a 5V.. na prática deve ser menor. De novo, pra valores baixo de R há de se rebolar 1 pouco com implementações otimizadoras caso a caso

Ok, como vou ter que adaptar vários sensores desses vou tentar fazer um a um depois se estiver com mais duvidas ou se estiver com dificuldade em algum deles abro um novo tópico, por hora vamos seguir com os outros sensores, o próximo é esse aqui:

 

 

Em 31/05/2023 às 16:40, .if disse:

São só 2 fios mesmo e varia só a R mesmo.

 

Pois é dei azar desse sensor ser 2 fios e só funcionar com pressões mais altas, deve ter sensor com 2 fios e ser mais sensível mas acho que vou preferir um de 3 fios, mais tranquilo para fazer funcionar (ou não) agora continuando com os sensores que preciso fazer funcionar está o sensor de vácuo/pressão, ele tem essa tabela aqui que mandei no outro tópico:

 

image.thumb.png.ef277d757432decdac943a87cf5c5d32.png

 

 

Teoricamente abaixo de 1v indica vácuo e acima de 1v indica pressão positiva, eu peguei o código anterior que media a tensão e lambda e alterei para mostrar a tensão e o valor lido na porta analógica, só de ligar deu 1,27v   e   260  de leitura da porta, então descobri dois problemas um deles é que o que está na tabela não está certo, e outra coisa é que é bem sensível a leitura fica variando 260, 261, 259, 262 e a tensão varia também, é beeem pouco cerca de 0,05v para mais ou para menos.

 

Neste caso:

 

1- Tenho o manômetro que mede a pressão no carro, melhor ligar o sensor junto com o manômetro e ir aumentando e diminuindo a pressão para "criar uma tabela" que vai corresponder a pressão lida no manômetro para depois pensar como fazer o código?  Imaginei fazer algo como if leitura da porta maior que 260 usar uma tabela ou MAP, e abaixo de 260 usar outra tabela ou MAP, o que acham?

 

2- Tem como a gente diminuir essa variação da leitura? Que tipo de filtro podemos usar, seria no código ou filtro com capacitor mesmo?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
1 hora atrás, GustavoH93 disse:

melhor ligar o sensor junto com o manômetro e ir aumentando e diminuindo a pressão para "criar uma tabela" que vai corresponder a pressão lida no manômetro

Faça isso. Mostre no display o valor ad. Esquece unidades de medida pressão, tensão e etc.

 

1 hora atrás, GustavoH93 disse:

para depois pensar como

fazer a conversão.

 

1 hora atrás, GustavoH93 disse:

diminuir essa variação da leitura? Que tipo de filtro podemos usar, seria no código ou filtro com capacitor mesmo?

Ambos. Fazendo a média de várias medidas (que acho que já expliquei em algum tópico agora há pouco) e uso de capacitor pra estabilizar. Claro a V do sensor deve ser estabilizada também. Num caso de um sensor muito fruta, deve ser exclusiva pra ele.

Link para o comentário
Compartilhar em outros sites

Em 01/06/2023 às 20:45, .if disse:

Faça isso. Mostre no display o valor ad. Esquece unidades de medida pressão, tensão e etc.

Como reaproveitei o código a tensão tá aí também mas vamos focar no valor AD então.

 

Em 01/06/2023 às 20:45, .if disse:

Ambos. Fazendo a média de várias medidas (que acho que já expliquei em algum tópico agora há pouco) e uso de capacitor pra estabilizar. Claro a V do sensor deve ser estabilizada também. Num caso de um sensor muito fruta, deve ser exclusiva pra ele.

Esse sensor é meio temperamental, ou é a alimentação dele apesar de eu pegar do próprio arduino tá diferente deve ser sensível demais, mas acho que um filtro deve resolver.

 

Tive que fazer uma baita gambiarra aqui pra gerar vácuo e pressão de forma mais controlada usei um motor de geladeira que estava parado aqui, é difícil fazer a pressão ficar constante se colocar direto o motor da geladeira a pressão passa de 1 bar quase no mesmo instante então tive que deixar escapar um pouco o ar pra ser uma coisa mais linear, dessa vez o sensor sem pressão já marcava  1,04v ou 213 AD, que estranho quando liguei semana passada deu 1,27v   e   260  de leitura da porta quando estava sem pressão nenhuma 0.o

 

Bom a tabelinha ficou mais ou menos assim:

 

Pressão    Leitura    tensão

 

-0,7              53           0,25v

-0,6              74           0,36v

-0,5              95           0,46v

-0,4              114         0,55v

-0,3              137         0,66v

-0,2              159         0,77v

-0,1              178         0,86v

  0                 213         1,04v

 0,1               228         1,11v

 0,2               237         1,15v

 0,3               262         1,28v

 0,4               320         1,56v

 0,5               435         2,12v

 

Pra variar acima de 0,5 de pressão o manômetro mecânico pirou, mas também fica difícil controlar o ar aí, porque se vazar demais a pressão não sobe e se pressionar demais a pressão sobe rápido demais, mas como a pressão positiva máxima que vou ter aqui vai ser 0,5bar acho que tá tranquilo até aí.

 

Gravei o Vídeo comparando as leituras:

 

 

 

O primeiro é tensão e o segundo é a leitura AD com base nessas leituras como acham que podemos fazer a conversão?

Link para o comentário
Compartilhar em outros sites

41 minutos atrás, GustavoH93 disse:

dessa vez o sensor sem pressão já marcava  1,04v ou 213 AD, que estranho quando liguei semana passada deu 1,27v   e   260 

Uma bateria carregada tem entre 12V e 12,5V. Com o alternador funcionando vai para uns 14,4V. A proporção entre motor ligado e desligado é a mesma da variação apresentada nas duas leituras (1,27V e 1,04V). São poucos os sensores que possuem geração própria de tensão sem excitação externa (termopar, medidor de acidez). De onde vem essa tensão, como está sendo alimentado isso?  Um desenho rabiscado ajudaria e muito.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Sérgio Lembo disse:

De onde vem essa tensão, como está sendo alimentado isso?

Então Sérgio o sensor possui o negativo, positivo e a saída do sinal, e está tudo ligado nos 5v e GND do arduino, no primeiro teste semana passada liguei o arduino na fonte de PC na bancada que uso como teste, hoje liguei o arduino na bateria do carro que dá 12v, mas a tensão de alimentação do arduino influencia nos 5v de saída dele? Não cheguei a ligar o carro só liguei na bateria mesmo, será que a tensão de entrada do arduino pode interferir na saída 5v dele?

 

image.thumb.png.2ea13e4735844baede5814c358e4f923.png

 

Lembrei de algo que pode fazer diferença, semana passada não estava direto assim, o sensor estava ligado nos mesmos pinos mas os pinos estavam passando por uma protoboard porque eu estava fazendo  outros testes protoboard é sujeita a interferência, mas seria tanta interferência ao ponto de alterar tanto assim a leitura?

 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, GustavoH93 disse:

mas a tensão de alimentação do arduino influencia nos 5v de saída dele?

Sim e não😄

 

Explico: A saída vai ser os mesmos 5v. Mas enquanto você conecta 5V de um usb, essa fonte que dá tem alguma corrente menor ou maior. Talvez toque todos sensores de boa, ou sofra antes. Já quando você pluga os 12V, a redução via de regra é feita por um 7805, que tem 1A de datasheet, mas via de regra entrega bem menos no mundo real (a não ser que você ponha um dissipador gigante nele.

Talvez se c/ a fonte comece a ter problemas que não ocorriam antes, você já sabe o porque.

Link para o comentário
Compartilhar em outros sites

Em 04/06/2023 às 17:54, Thiago Miotto disse:

Sim e não😄

 

Explico: A saída vai ser os mesmos 5v. Mas enquanto você conecta 5V de um usb, essa fonte que dá tem alguma corrente menor ou maior. Talvez toque todos sensores de boa, ou sofra antes. Já quando você pluga os 12V, a redução via de regra é feita por um 7805, que tem 1A de datasheet, mas via de regra entrega bem menos no mundo real (a não ser que você ponha um dissipador gigante nele.

Talvez se c/ a fonte comece a ter problemas que não ocorriam antes, você já sabe o porque.

Entendi, bom dessa vez fiz diferente usei uma plaquinha reguladora de tensão:

 

image.thumb.png.dc0592e7d2687a7b2b201e39fac44d67.png

 

 

Dessa vez a alimentação de tudo foi feita por essa plaquinha que regulei para 5v e alimentei o arduino pelo pino Vin, conectei a plaquinha na protoboard e alimentei o sensor com ela, então tudo ficou alimentado com 5v regulados, e pelo que comentou @Thiago Miotto imaginei que pudesse ser o arduino sofrendo para manter a corrente do sensor porque ele fornece energia pro o LCD 16x4 também, mas agora tudo está com a mesma tensão.

 

Mas o problema continua deem uma olhada mesmo sem vácuo ou pressão o sensor já tá marcando 1,19v O.o

 

 

image.thumb.png.e589722a0d85164fb2f82e728527c8a4.png

 

Estava pensando algo aqui, o sensor precisa saber qual a pressão atmosférica para calcular se está trabalhando com vácuo ou pressão positiva, será que a pressão atmosférica no momento interfere com a leitura do sensor?

 

Neste caso será que tem como criarmos um código para que ao ligar o arduino  independente da tensão que esteja saindo do sensor o arduino considera essa tensão no momento como zero e a partir deste ponto ele pode calcular pressão positiva ou negativa?

 

Por exemplo liguei o sensor e estava com 1,2v neste caso essa tensão será considerada como zero naquela hora, um outro dia ao ligar o sensor deu 1,0v então neste momento o arduino considera 1,0v como pressão zero e então tendo este ponto definido ele pode calcular pressão positiva ou negativa, o que acham?

Link para o comentário
Compartilhar em outros sites

4 horas atrás, GustavoH93 disse:

5v e alimentei o arduino pelo pino Vin

Se você já regulou os 5v, tem que colocar no pino 5v.

O Vin seria p/ caso você colocasse mais de 5V e precisasse que o 7805 fizesse seu serviço.
Tenta injetar uns 7 ou 8 V no Vin. porque talvez isso o 7805 resolve s/ esquentar muito.

4 horas atrás, GustavoH93 disse:

Estava pensando algo aqui, o sensor precisa saber qual a pressão atmosférica para calcular se está trabalhando com vácuo ou pressão positiva, será que a pressão atmosférica no momento interfere com a leitura do sensor?

você já postou foto ou link desse sensor?

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!