Ir ao conteúdo
  • Cadastre-se

GustavoH93

Membro Pleno
  • Posts

    818
  • Cadastrado em

  • Última visita

Tudo que GustavoH93 postou

  1. Como reaproveitei o código a tensão tá aí também mas vamos focar no valor AD então. 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?
  2. 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: 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: 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?
  3. 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í: 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
  4. 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
  5. 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 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? 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...
  6. 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? 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 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... 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
  7. 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... 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... 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. 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...
  8. agora funcionou melhor, estava escrito tensão mas adaptei pra funcionar com a lambda também. essa parte do código ficou assim: 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: 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?
  9. funcionou muito bem, tentei aplicar o mesmo sistema na exibição da sonda no LCD mas não dá certo, imagino que é porque de 68 até 136 não dá pra dividir por 100 e ter o resultado exato, ou estou enganado? O código ficou assim: lambda e voltage vejo no monitor serial que está funcionando direitinho, mas no LCD só voltage aparece corretamente, a sonda 0, ou 1, aparece normal mas depois da virgula dá uma leitura absurda como 1,99 e na serial vejo que está 136. mesmo sendo curto eu as vezes não entendo 100% do que tá escrito aí tento decifrar o que a @.if escreve kkkk de qualquer forma em alguns casos não tem como terei que usar float, mas como vou colocar um monte de funções no arduino quanto menos coisas nele melhor. agora entendi, vou tentar alterar aqui e ver como fica, a função MAP como o @Thiago Miotto sugeriu está funcionando bem, não estou conseguindo exibir o valor da sonda no LCD mas quando conseguir vou usar a conta que sugeriu Sérgio, é bom porque testando no sensor e funcionando poderemos escolher qual ocupa menos recursos do micro.
  10. mas a tensão teria que ser float, ou seria int e trabalhariamos diretamente com o 0 até o 1023 para exibir no lcd? Se bem que a tensão só quero saber para ver se o resultado da sonda está fazendo sentido, não vou utilizar a tensão futuramente... Tive que ir lá nos tópicos antigos para relembrar, consegui fazer parecido mas não tá funcionando totalmente com certeza tô fazendo alguma coisa errada, @.if o seu truque de colocar o ponto artificialmente tá quase funcionando só que no lugar do micro quem não tá executando bem sou eu kkkk dá uma olhadinha por favor, atualmente está assim o código: @.if passei perto faltou pouco para acertar né?
  11. fiz o que pediu Sérgio e o código ficou assim: #include <LiquidCrystal_I2C.h> // Inicializa o display no endereço 0x27 LiquidCrystal_I2C lcd(0x27, 16, 4); const int lambdaPin = A3; // Pino analógico utilizado para ler a tensão do gerenciador de sonda lambda //float voltageToLambda(float voltage); unsigned int voltage; void setup() { Serial.begin(9600); // Inicializa a comunicação serial lcd.init(); lcd.setBacklight(HIGH); lcd.setCursor(0, 0); lcd.print("V= L="); } void loop() //{float voltage = analogRead(lambdaPin) * (5.0 / 1023.0); // Leitura da tensão em volts //float lambda = 0.68 + (voltage - 0.0) * (1.36 - 0.68) / (5.0 - 0.0); {voltage = analogRead(lambdaPin); float lambda = voltage * (1.36 - 0.68); float lambda = 0.68 + lambda / 1023; lcd.setCursor(3, 0); lcd.print(voltage, 2); // Exibe a tensão com 2 casas decimais lcd.setCursor(13, 0); lcd.print(lambda); // Exibe o fator lambda com 2 casas decimais Serial.print("Voltage: "); Serial.println(voltage); Serial.print("Lambda: "); Serial.println(lambda); delay(300); } Compilation error: redeclaration of 'float lambda' Está dizendo que a lambda foi declarada duas vezes, mas isso é estranho porque na linha: float lambda = voltage * (1.36 - 0.68); ele declara a variável local lambda e na linha a baixo: float lambda = 0.68 + lambda / 1023; ele atualiza a variável declarada anteriormente não cria uma nova variável, ou estou entendendo errado? tentei, adicionei a linha de comando: int lambda = map(voltage, 0.0, 5.0, 68, 136); // Mapeia a tensão para o intervalo correspondente de fator lambda por incrível que pareça a leitura ficou mais estranha, parece que ficou um buraco utilizei um potenciômetro e veja de 95 ela pula para 108 com menos de 0,10v de diferença: Acho que a função MAP junto com as funções if, else são umas das primeiras que apresentam nos cursinhos de arduino do youtube, é bem fácil utilizar com resultados bem interessantes, não sei porque não está funcionando adequadamente aqui, estou suspeitando se a saída do gerenciador pode não ser tão linear assim... Olha realmente o GPT está ajudando muita gente na programação ele cria o básico e ajuda no aprendizado, eu mesmo já troquei mais de uma centena de mensagens com ele sobre programação e os poucos vou aprendendo. No começo estava achando que usar ele seria uma "trapaça" porque eu não iria criar os códigos totalmente do zero mas agora estou achando que usando ele ou não estou aprendendo também, porque acabamos aprendendo quais funções usar, por exemplo executar uma tarefa usamos if se algo acontecer, se não acontecer usamos else, se quisermos mapear uma leitura usamos MAP... Acho interessante aprender as funções mesmo não sabendo escrever totalmente só de saber o que precisamos fazer qual função usar já é uma forma de aprender, e mesmo usando o GPT temos que ter o "desconfiometro" também tem umas coisas que acontecem de forma errada lá, seja por ele não entender o objetivo ou porque simplesmente comete erros, de qualquer forma é uma ferramenta que pode ser muito util. essa é uma das primeiras funções que usei no arduino, para simular o sensor hall do motor, pedia para gerar tom de frequência baixa ali perto dos 60hz para ver se a leitura que eu iria fazer com outro arduino estava correta kkkkk (baita gambiarra e pra variar gerar o tom funcionou, agora a leitura do meu código ficou uma porcaria)
  12. Boa noite pessoal, estou continuando a saga dos meus tópicos anteriores onde o objetivo é fazer com que o arduino MEGA faça a leitura dos sensores do carro e envie para um Tablet. Demorei para continuar porque estava esperando mais componentes chegarem da China, chegaram a alguns dias e alguns sensores já consegui fazer funcionar, agora peço a ajuda de vocês para que possamos continuar o projeto, alguns sensores estão sendo bem mais complicados do que eu imaginei, pedi ajuda ao chatGPT e ajudou em algumas coisas mas tem coisa que ele se complica demais e não funcionam bem. A programação do tablet também é complicada, por isso consegui um display I2C 16x4 e vou utilizar ele, depois que a leitura de todos os sensores estiverem funcionando bem no display então passarei a programação com o tablet. A leitura do primeiro sensor que peço ajuda é o da sonda lambda que faz a leitura dos gases do escapamento, junto com a sonda comprei um gerenciador de sonda que faz a leitura da mesma e controla o aquecedor interno que a sonda possuí, o gerenciador exibe a temperatura e a leitura da sonda em um lcd pequeno e também tem algumas saídas para injeção eletrônica. O sensor exibe a leitura da sonda no fator lambda que vai de 0,68 até 1,36 onde: 0,68 tem combustível demais e pouco ar. 1,36 tem pouco combustível e muito ar. 1,00 ideal, o ar e o combustível estão na mesma proporção. O gerenciador vem com essa informação na conexão dos fios: Na saída 4 tem uma tensão linear correspondente a leitura da sonda e vai de 0 a 5v ou seja ideal para o arduino fazer a leitura, e aí está o problema, tentei fazer a leitura com a função MAP no arduino e não funcionou de jeito nenhum, se colocar de 0 até 100 por exemplo a função map funciona, mas se colocar de 0,68 até 1,36 fica travado marcando 0,0 tentei me acertar com o chatGPT e ele me disse que a função MAP é indicada para fazer a relação de valores lineares, no meu caso ela não se aplica, enviei meu código ele sugeriu usar uma tal de interpolação linear alterou o código e ficou assim: #include <LiquidCrystal_I2C.h> // Inicializa o display no endereço 0x27 LiquidCrystal_I2C lcd(0x27, 16, 4); const int lambdaPin = A3; // Pino analógico utilizado para ler a tensão do gerenciador de sonda lambda float voltageToLambda(float voltage); void setup() { Serial.begin(9600); // Inicializa a comunicação serial lcd.init(); lcd.setBacklight(HIGH); lcd.setCursor(0, 0); lcd.print("V= L="); } void loop() {float voltage = analogRead(lambdaPin) * (5.0 / 1023.0); // Leitura da tensão em volts float lambda = 0.68 + (voltage - 0.0) * (1.36 - 0.68) / (5.0 - 0.0); lcd.setCursor(3, 0); lcd.print(voltage, 2); // Exibe a tensão com 2 casas decimais lcd.setCursor(13, 0); lcd.print(lambda, 2); // Exibe o fator lambda com 2 casas decimais Serial.print("Voltage: "); Serial.println(voltage); Serial.print("Lambda: "); Serial.println(lambda); delay(1000); } De fato este código funcionou, mas não está 100% fiel ao que o gerenciador da sonda exibe, quando ligo o gerenciador até ele aquecer a sonda para ter uma leitura correta ele exibe o valor 1,02 por alguns segundos depois vai subindo até 1,36 porque o motor está desligado logo não tem combustível nenhum, mas utilizando este código quando acabo de ligar comparando as leituras ficam assim: gerenciador arduino 1,02 1,02 1,03 1,07 1,11 1,09 1,36 1,36 parece que a leitura do arduino é meio aproximada tanto para mais quanto para menos, elas só ficam iguais quando o gerenciador fica com o mesmo valor por um tempinho, tanto que quando acabo de ligar ambos ficam em 1,02 e quando a sonda termina de aquecer ambos ficam em 1,36 a leitura só fica meio doida no meio do caminho. Será que isso é por causa da tal interpolação linear que o GPT sugeriu? Pensei que a função MAP seria ideal para executar essa função mas ela simplesmente não funcionou, será que é uma faixa muito pequena ela não consegue ser executada corretamente e isso faz ela não funcionar?
  13. Wifi ele tem mas parece que não é fácil também e com wifi até onde sei preciso ter um roteador pra conectar o tablet e o arduino ao roteador e aí sim eles conseguem conversar entre sí, só que como precisa ser um treco móvel fica ruim levar um roteador junto fica muita coisa pra pouca coisa, o cabo seria o mais fácil e barato porque não precisaria comprar nada, mas tá terrível programar isso O nano é realmente mais barato, mas será que não teria soquete para o AT328P? Assim a gente solda o soquete na placa e espeta o CI nele.
  14. Então pra mim não diria mais fácil eu diria menos difícil mas a ideia é essa mesma, ter um código base para começar e ir adaptando e colocando funções que precisamos, se o chatGPT não ficar 100% pago em breve (o que acho que vai acontecer) ele pode ser mais uma ferramenta pra gente é só saber usar, é tipo um multimetro comum, dá pra fazer muita coisa com ele, mas se for medir DC e colocar na escala de AC vai ter leitura errada, agora sabendo usar pode ser extremamente util. Agora mesmo estou no APP Inventor, e estou reparando que tem coisas parecidas com a programação do arduino tais como: variáveis, funções, cálculos... Mas aquela programação visual me causa estranheza, sei programar bem pouco no arduino agora nessa programação visual "tô boiando". Entendi algumas coisas com os aplicativos de exemplos, baixei um app no celular para se comunicar com o arduino acender e apagar um led quando envio "0" ou "1" o curioso é que não é só espetar o arduino via cabo, quando conecto o celular vai identificar qual modelo de chip USB que está na placa e selecionar o driver correto para se comunicar essa parte é bem complexa, o que estou fazendo é editar este aplicativo para eliminar todas as coisas que não vou utilizar e deixar o mínimo do mínimo para que a comunicação funcione, e depois disso começo a colocar as funções que vou precisar no aplicativo, mas tem que ficar identificando o que não preciso, apagar e ir testando isso leva tempo estou eliminando coisas desde ontem e parece que vai levar um bom tempo pra terminar... Engraçado que via cabo tem pouca coisa na internet, agora por bluetooth tem bem mais coisas e parece ser até mais fácil como @.if mencionou, o duro é que o tablet que vou utilizar é tão jurássico que nem bluetooth tem só dá pra se comunicar via cabo mesmo. Imagino que seja mais barata mesmo, e eu fico todo atrapalhado pra soldar um 555 imagina um SMD Gota de epoxi tipo aqueles que tampam os CI de calculadora de 1,99? Quando era criança achava que aquilo era o chip não uma resina por cima dele kkkkkk Sim mas nos outros tópicos vi que precisava utilizar timerOne para fazer a contagem com precisão aí já diminuem os pinos para essa função e o @Sérgio Lembo me falou sobre o STM, o que vai ser muito bom porque vou utilizar para ficar contando coisas e enviar para o arduino a informação já pronta, fora que utilizando timerOne algumas funções específicas do arduino ficam limitadas, confesso que não entendi bem essa parte mas pesquisando e vendo as respostas nos tópicos essa parece ser a melhor opção. É bem isso mesmo, atualmente um arduino xing ling sai mais barato e praticamente não gasta tempo nenhum em montagem dos componentes, fora que como já está montado é só conectar os componentes que precisa no arduino e pronto, agora se for montar como antigamente além dos custos e tempos pode dar algum erro na montagem e queimar alguma coisa (o que comumente ocorre comigo)
  15. Ótimo @Sérgio Lembo vou estudar o STM e como ele pode trabalhar com vários interrupt posso medir mais coisas com ele e depois enviar tudo via I2C para o Arduino MEGA que vai juntar as leituras dos outros sensores e enviar via serial para o monitor. Ótimo isso vai ser a base para o código, conversando com o oráculoGPT ele parece saber programar o STM, duvido que conseguiria programar tudo da forma que eu preciso, mas posso tirar algumas duvidas com ele principalmente pedindo explicação linha por linha do código. O bom é que como você mencionou em outro tópico posso programar o STM via IDE arduino o que facilita pois estou mais familiarizado. Falando nisso a resposta do GPT quando questionei o que ele sabia programar: Interessante, mas já tem alguns planos de assinatura pra ele e são bem salgados por enquanto está liberado como fase de testes, não ficaria surpreso se em algum tempo ele se tornar 100% pago. Pra mim que malemá sei acender os leds com arduino e consegui queimar um com imã no outro tópico tu imagina o desafio kkkkkk mas o bom é que com paciência e ajuda de vocês vamos caminhando. Verdade, a algum tempo no site chines eu tinha procurado ATMega 328p pra comprar e usar stand alone, mas não compensa ele está com diferença de preço de uns 3 reais e se fosse só ele teria que fazer a plaquinha colocar o cristal, capacitores... compensa mais comprar a plaquinha pronta e colocar numa caixinha se for projeto definitivo... Com certeza já estarem na plaquinha facilita muito, é quase plug n' play se for código pronto é só conectar na USB transferir o código e tá pronto, se tivesse que colocar cristal, capacitores, conectar a fonte de alimentação iria afugentar muita gente de querer programar... E com relação aos DVDs me lembro que começaram a chegar os discos Blueray que apesar de ter uma qualidade e capacidade bem superior chegaram juntos com os serviços de streaming, que na ponta do lápis compensavam mais por custarem pouco mais mas oferecer muito mais coisa em cima do valor pago, e isso foi o começo do fim das vídeo-locadoras...
  16. Falando nisso parece que tem essa "programação visual" para arduino também, não é o mesmo que programar diretamente em C mas é uma forma de programar, vou ver como vou me sair com essa programação visual no app inventor e depois posso utilizar essa programação para arduino também. Concordo, ele é basicamente a internet, tem bastante conteúdo mas você tem que filtrar e ver o que realmente faz sentido e está correto se não pode acabar caindo em fake news. Criando um código no gpt pode ser util, mas se ele não estiver funcionando corretamente posso achar que está com defeito em um componente ou algum fio mal encaixado enquanto na verdade é código que tem uma falha. Bom pessoal futuramente vou ver se coloco as mãos em um LM35 mas por hora o sensor DS18B20 deve me atender bem, comprei mais sensores e um STM32F030F4P6 por recomendação do @Sérgio Lembo no outro tópico, como é da China vai levar um tempo para chegar. Enquanto isso vou estudar a programação visual no APP Inventor e como comunicar ele com o arduino, em breve vou criar outro tópico para ter auxílio de vocês na leitura dos sensores porque sei que terei duvidas Obrigado a todos que responderam e me ajudaram, vocês são feras \o/\o/\o/
  17. Realmente programação é beem ampla, tem vários tipos e várias funções, paralelo ao tópico estou tentando apreender a usar o APP inventor que é para criar aplicativos e usa programação em blocos, coisa que nunca vi antes e vou precisar para comunicar via serial com arduino... Continuo esmiuçando o ChatGPT e deem uma olhada: este é o código para utilizar dois DS18B20 com a biblioteca Dallastemperatura.h em uma porta digital: Pedi para ele criar outro código com a mesma função mas sem usar a biblioteca dallas: Os dois códigos utilizam (13%) de memória dinâmica, o código sem a dallas utiliza 3712 bytes (11%) de armazenamento e o código com a dallas utiliza 5110 bytes (15%) de armazenamento, mas tem um detalhe bem curioso, O CÓDIGO SEM A DALLAS NÃO FUNCIONA. Com dois sensores no mesmo fio um fica travado em 26 graus e o outro em 0, agora utilizando o código com a biblioteca funciona normal, estranho... O chatGPT cria códigos sim mas também comete erros. @Sérgio Lembo perguntei aquilo que comentamos anteriormente sobre o envio da biblioteca ao arduino e essa foi a resposta:
  18. Aí está, programação leva anos para aprender e também quando a pessoa trabalha diretamente com isso fica um pouco mais fácil porque tem contato direto todos os dias, eu mesmo não tenho muito tempo livre então estudo o pouco que dá, assim demora mais porém dá pra começar e aos poucos vou chegando ao objetivo, esse é o legal do forum cada um tem um conhecimento diferente e compartilhando aqui todos acabam se beneficiando. Perguntei isso pro chatgpt a um tempo e ele não programa pic infelizmente, mas isso foi superficial alguma coisa ele pode saber sim. Realmente acaba barateando um pouco, arduino mesmo era caro a uns anos atrás hoje tá bem mais acessível. E eu fiz algo parecido, precisava fazer a leitura da sonda lambda do carro, ela marca de 0 até 1v tentei fazer usando LM3914 e consegui a façanha de não funcionar ainda queimei o dito cujo, depois comprei PicKit 3 e com ajuda do pessoal daqui do forum e do artigo no picsource usei um pic 16f676 pra fazer a mesma coisa e funcionou muito bem. Exatamente, ele tem uma capacidade muito alta para vários projetos eu tenho uma CNC que montei usando um arduino e demonstra como aquilo é poderoso, estou nesse projeto agora para fazer o painel do carro, mas em um aeroclube que fui ano passado o pessoal conseguiu montar um simulador de voo inteiro utilizando arduino. E o ideal é usar ele para essas funções, mas para coisas mais simples, tem CI, PIC e a eletrônica clássica, lembro quando fiz um amplificador de som, era básico e tinha ruidos mas fiquei felizão de ter funcionado kkkkkk Opa obrigado @aphawk vou ler sim, junto com o material que o @Renato.88 me mandou a algum tempo e ainda não li essas coisas são ótimas porque ajudam o iniciante e incentivam a buscar mais conhecimento. Se fossem LM35 estariam zoados mesmo, mas ao que tudo indica eram fakes, testei tudo tudo, usei potenciômetro pra ver a programação, usei capacitores pra filtrar, inverti os terminais, testei com multímetro, mudei a porta de entrada e nada, juntando ao fato de que tem várias mensagens no link da compra alegando que eram falsos então eu diria que fui enganado mesmo Pessoal estou fazendo os testes com o DS18B20 e o chat GPT daqui a pouco posto os resultados. Testes utilizando o ChatGPT e o DS18B20: Primeiro teste utilizando bibliotecas oneWire e DallasTemperature (idêntico ao que o @Thiago Miotto postou) Sketch uses 5384 bytes (16%) of program storage space. Maximum is 32256 bytes. Global variables use 258 bytes (12%) of dynamic memory, leaving 1790 bytes for local variables. Maximum is 2048 bytes. No segundo teste eu pedi para refazer o código anterior apenas utilizando a biblioteca oneWire: Sketch uses 3934 bytes (12%) of program storage space. Maximum is 32256 bytes. Global variables use 232 bytes (11%) of dynamic memory, leaving 1816 bytes for local variables. Maximum is 2048 bytes. Terceiro teste utilizando apenas oneWire e mudei na mão de float para int: Sketch uses 3304 bytes (10%) of program storage space. Maximum is 32256 bytes. Global variables use 220 bytes (10%) of dynamic memory, leaving 1828 bytes for local variables. Maximum is 2048 bytes. Realmente não usar a biblioteca dá diferença no tamanho da programação, e alterar de float para int também altera o tamanho e imagino que poupe bastante recursos do micro. Todos os códigos funcionaram normalmente, o que ultimo que usei int no lugar de float ficou assim:
  19. Dessa eu não Sabia, acreditava que a biblioteca inteira era transferida ao arduino, mas como @.if e @alexandre.mbm comentou o melhor é não usar biblioteca se possível porque a programação dela pode não ser totalmente eficiente para aquilo que queremos fazer correto? Queria ter essa manha que vocês tem para programação, comecei a estudar isso menos de 1 ano e malemá consegui usar if else e entender o que é variável local, global e os tipos das variáveis, quem sabe um dia chego perto de escrever um código que faça mais do que piscar leds kkkkkk estou pesquisando agora sobre a comunicação onewire mas não tem muito em português, bora fuçar nas coisas em inglês. gera sim, na verdade @.if desde aquele tópico da válvula de borboleta comecei a usar ele não só para código mas para estudar programação. sério já tenho umas 15 conversas lá só perguntando um monte de coisa que seria simples pra qualquer programador mas que é bem complexo pra mim, tipo agora pouco fui pesquisar o que era assembly sabia que existem vários tipos de programação como C++ pyton entre outras agora assembly nunca tinha ouvido falar até o Sérgio comentar aqui em cima e lá fui eu atrás saber o que é. É bom porque as duvidazinhas eu fico esmigalhando ele e as complexas eu vejo com vocês assim não fico criando tópico por bobeira. Verdade! Se pedir coisas muito complexas ele vai se enrolar, se não pedir de forma clara com poucas palavras ele se enrola todo também. Pois é não entendo de programação mas vira e mexe fico brincando com componentes eletrônicos e vejo por aí pessoal colocando um arduino uno para simplesmente acender uma luz usando um botão e deixam lá eternamente O.o é realmente matar mosca com canhão porque daria pra fazer o mesmo com um pic, ou com eletrônica clássica, tem um monte de circuitinhos simples na internet ou naquelas revistas eletrônicas como a saber eletronica que apesar de serem antigas são muito boas, o @Renato.88 que sabia mais delas se não me engano. Bessoal vou macetar o chatgpt e ver o que posso descobrir sobre comunicação wire e amanhã volto com os resultados quero ver se ele gera sem a biblioteca e se tem grandes diferenças de tamanho de uso de memória.
  20. Realmente é verdade, vi o d.s. do sensor e descobri que ele opera em 9, 10, 11, e 12 bits e quanto menor a resolução mais rápido fica, e fuçando na biblioteca dallastemperature.h vi que ela tinha bastante coisa desnecessária, por exemplo quero a temperatura apenas em celsius, mas ela também tem os arquivos para ter a temperatura em fahrenheit e mais um monte de coisa que pode ser util para várias aplicações mas não para o que eu preciso. Então fui deletando algumas coisas e substituindo float por int, e consegui dar pau na biblioteca toda hora que ia compilar dava erro kkkkk Vou tentar fazer alguma coisa pra funcionar com o sensor sem usar essa dallastemperature só usando onewire, vamos ver o que vai sair... vou ver se encontro LM35 na loja de eletrônica aqui da cidade, pela internet o frete é o valor de outra peça... De qualquer forma estou focado em fazer o DS18B20 funcionar porque ele veio por engano no lugar do LM35, melhor criar outro tópico ou continuo aqui mesmo para fazer o DS18B20 funcionar sem a biblioteca?
  21. curiosamente olhei este mesmo site agora pouco, peguei as informações dele e montei na protoboard com o código, funcionou perfeitamente ao contrário do LM35, se bem que esse LM35 era falsificado, mas mesmo assim só de montar e funcionar em menos de 15 minutos é um recorde para mim, a maioria das coisas ou demora horas ou dias ou simplesmente pega fogo... Algumas coisas que vou medir vão ter que ser analógicas mesmo, mas pelo menos utilizando este sensor vou usar uma porta digital isso deixa um pino analógico livre do arduino que eu possa utilizar pra outra coisa. Então mas quanto mais coisas para fazer ou dependendo da forma que os dados são tratados pode afetar a velocidade final não é? Uma coisa que estava pensando é que o DS18B20 utiliza duas bibliotecas para funcionar, e já trata a temperatura como float mas no meu caso não preciso dos números após a virgula, pra deixar como int, teria que tentar editar a biblioteca? E realmente valeria a pena mudar de float para int para ganhar desempenho? queria fazer aquilo que tu explicou que aparece no display o ''0,0" sem ter que usar float só que editar biblioteca deve ser bem complicado e não sei se compensa o que acha?
  22. entendi @.if estava esperando pra responder porque tinha comprado 2 LM35 e chegaram hoje e adivinha? Mandaram errado, mandaram o DS18B20 quando abri o pacote até estranhei que vieram resistores juntos, mas agora tô perdido, por um lado o DS18B20 é digital imagino que sofra menos interferência que o LM35. Mas pro DS18B20 funcionar precisa usar uma biblioteca e ele trabalha com uma comunicação chamada OneWire não sei se isso é "pesado''. A ideia é utilizar menos recursos do micro porque ele vai trabalhar fazendo a leitura de vários sensores e vai enviar tudo por serial para o tablet, neste caso o que consome menos recursos o LM35 ou o DS18B20 que é digital? Tô pensando em ficar com o DS18B20 só pra não ter dor de cabeça pra devolver, mas se ele exigir mais recursos que o LM35 então posso devolver...
  23. O 328P tem a função analogReference(internal) que deixa a tensão de referencia em 1.1v será que isso seria melhor para medir os diodos? Ou é necessário criar um circuito de amplificação mesmo? @Sérgio Lembo @aphawk Realmente cabo de rede por aqui só vi o comum sem blindagem, será que só o cabo manga com a malha externa funcionaria? Este cabo acho fácil agora o cabo de rede blindado não achei nas lojas aqui.
  24. Também não li material do victor nem do nextion, mas realmente para essa finalidade eles seriam mais indicados, o problema maior é o custo... o orange e o raspberry seriam bem interessantes para um projeto mais rápido, só que não contam com a parte para enviar o vídeo diretamente ao LCD, teria que usar uma placa adaptadora, aí seria o orange + a placa de lcd + o LCD. fica um negócio de muita coisa pra fazer uma coisa só... Aí talvez volte na ideia de usar um tablet só pra exibir a informação, ganhei um tablet de 9 polegadas que ficaria lindo no painel, só que ele usa um android bem antigo e não tem mais atualização pra ele, pro aplicativo rodar teria que instalar um android mais novo utilizando alguma gambiarra e correndo risco de dar pau e o tablet ficar travado. Então estou pensando em arrumar mais dor de cabeça e tentar criar um APP que consiga ler as informações do arduino via cabo USB e que funcione no tablet, deve ser demorado e complicado, mas é o velho ditado o que é um pra quem tá né? Pra deixar o tablet mais rápido tentaria usar algum APP que desliga coisas que não estão em uso como wi-fi e 3g e também. Ainda estou pensativo sobre isso, o que custaria menos e o que daria menos trabalho pra fazer.
  25. pior que faz mais de um mês que chegou então não está mais liberado pra abrir reclamação ou pedir reembolso Falamos sim no outro tópico, parece que esse esquema com diodo funciona bem mas precisa colocar a temperatura ambiente no código para que o arduino calcule a temperatura do diodo. Então fiz um comentário no vídeo do electrolab e ele respondeu, dá pra usar um LM35 como base da temperatura para calcular as temperaturas dos diodos, assim facilita porque dá pra usar um unico LM35 e usar vários diodos para ter diferentes fontes de temperatura a vantagem é economizar $$ porque um LM35 custa muito mais que um diodo, se fosse comprar um para cada temperatura que fosse medir iria ficar bem caro. Pior que já passou o prazo, mas já tive problemas de outras compras e fui reembolsado também, mas esse meu caso felizmente é raro, tem muito vendedor bom lá, comprei por exemplo um arduino leonardo e dois uno, funcionou normalmente e saiu pelo mesmo preço de comprar um arduino uno por aqui, é a dica de sempre, ver a reputação da loja ver comentários e ficar atento ao prazo, pena que cometi um deslize dessa vez e não tem mais o que fazer é dinheiro perdido. Vou usar esses cabos manga blindados e usar os capacitores que o @aphawk mencionou, o LM35 vai ser usado no carro então quero evitar ao máximo as interferências ainda mais que tem a bobina de ignição ali perto. O A0 está conectado o tempo todo, o ângulo da foto parece que está vazio mas o cabinho azul está conectado ao A0 e quando troquei por um potenciômetro o código funcionou bem, infelizmente é caso de peça falsificada mesmo. Tentei aqui inverti a alimentação, inverti capacitores e nada do dito cujo funcionar, vou tentar testar como transistor, se funcionar então é transistor mesmo.

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!