Ir ao conteúdo

GustavoH93

Membro Pleno
  • Posts

    834
  • Cadastrado em

  • Última visita

Tudo que GustavoH93 postou

  1. Eita eu fiz o teste hoje a tarde mas foi com o código antigo @mlegnari vi seu comentário agora pouco se não eu teria testado seu código antes obrigado pela ajuda em breve vou testar seu código na prática, mas cheguei a um outro problema, como comentei antes o rele desliga o negativo da bobina, e descobri que isso interfere no conta giros do painel, dá pra ouvir no video pelo som do motor que ele não acelera, mas o conta giros do painel está indicando que está acelerando. https://www.youtube.com/watch?v=nuu_5Zcra3Y aqui o esquema da ignição, o problema é que ele não mostra a ligação do contagiros do painel, pelo que entendi o contagiros pega o sinal de pulsos com a bobina, não é o sinal que sai do módulo de ignição. https://golcht.com.br/wp-content/uploads/2020/05/modulo142gauss-350x275.jpg baseando pelo esquema, sabe de algum outro fio que podemos interromper no lugar do negativo da bobina?
  2. voltei no código anterior pra testar e fiquei quebrando a cabeça agora de madrugada (já devia ter ido dormir kkkkk) Estava desistindo de colocar o potenciometro de ajuste da velocidade de piscar o led então achei melhor apagar essa parte, iria deixar apenas o potenciometro de ajuste que faz o led piscar acima da frequência desejada. foi aí que percebi um erro que passou batido por todos nós. aqui: eu defini o primeiro potenciometro como pot no pino A0 e o segundo como potb no pino A1 e a ideia era usar o pot para selecionar a frequencia que o led iria piscar, e o potb para ajustar o delay que faz o led piscar, só que nas linhas: eu coloquei pot para as duas funções, ou seja ele estava baseando o tempo de delay e o ajuste de frequencia pelo mesmo potenciometro, por isso estava doidão Arrumei isso mandei o código consertado pro arduino, ainda tem um pouco de lentidão, mas estou usando o monitor serial então acho que isso afeta a velocidade também, teve um desempenho não 100% mas acho que está dentro do esperado, vou montar tudo amanhã no carro e ver se funciona. off-topic: @aphawk @mlegnari @Thiago Miotto tô beeeem longe de ser um programador, mas posso considerar ter descoberto esse erro de usar o mesmo potenciometro para as duas funções como meu primeiro erro debugado? kkkkkkk
  3. É pessoal deu e não deu... seguindo o link que o @Sérgio Lembo mandou, baixei a biblioteca freqmeasure e fiz o teste aqui, testei com a comunicação serial depois desabilitei para ver se melhorava a resposta e não mudou muito... o código atual é esse: usei o código cru sem nada e ele realmente é mais preciso do que o anterior, ele mede até décimos de frequência, mas é mais devagar do que o código usando a biblioteca freqcount e curiosamente em frequências mais baixas fica mais lento ainda, a atualização das linhas do monitor serial sobem mais devagar, depois que passa de uns 150Hz aí começa a ficar mais rápido. Alterei o código para ler o potênciômetro também e aí e ficou mais lento ainda, o potenciometro cumpre a função de alterar a frequência que o led pisca, só que assim como as linhas sobem mais devagar no monitor serial o led também pisca mais devagar em frequencias mais baixas, depois que a frequência aumenta aí começa a responder melhor. (não sei porque isso acontece, mas é assim) Estou achando que terei que voltar para o código anterior e trabalhar com uma fração da frequência real, no código anterior dava para determinar qual seria o tempo que a frequência seria medida, no caso coloquei para 100ms então se em 100ms teve uma frequencia de 10 pulsos em 1000ms seriam 100 pulsos ou 100Hz, com certeza terá uma precisão menor, porém se tiver uma resposta mais rápida pode funcionar bem. @aphawk será que justamente por este código usar a interrupção ele tem mais precisão porém perde desempenho em outras funções? Me corrija se entendi errado, mas quando ocorre a interrupção o AT328 para tudo o que está fazendo e foca naquilo que foi programado para fazer durante a interrupção, nesse caso contar pulsos, e justamente por contar exatamente todos os pulsos ele tem muito mais precisão, porém durante a interrupção ele faz apenas isso, não lê potenciometro nem manda nada para o monitor serial nem pisca led, então não é que ele está lento, é que ele está focando na contagem de pulsos e o restante fica em segundo plano dando impressão de estar mais lento, é isso?
  4. alterei como você pediu e ainda continua doido... estava pesquisando mais coisas e vi esse comando: o problema é que assim ele não converte nada só faz a leitura do potenciometro, mas pode ser que funcione, vou tentar adaptar aqui. Pois é @aphawk sei que o AT328 é parrudo o problema é programar tudo é bem complexo, tem que entender bastante do hardware e do software, eu mesmo começei a "programar" em um mês, malemá sei usar a função iF kkkkk mas devagar vamos longe, em breve vamos conseguir, e como eu comentei eletronica é um hobby pra mim então não tenho como dedicar muito tempo, mas no meu tempo livre vou progredindo aos poucos. bem interesante @Sérgio Lembo não tinha reparado, mas estou usando a biblioteca FreqCount desse mesmo site, e esse link que me mandou é do mesmo criador mas usa a biblioteca FreqMeasure, e lendo aqui está escrito para usar as bibliotecas nesses casos: FreqCount: best for 1 kHz to 8 MHz (up to 65 MHz with Teensy 3.0 & 3.1) FreqMeasure: best for 0.1 Hz to 1 kHz ou seja para frequências baixas que é meu caso já que o hall do distribuidor não deve passar de uns 250Hz o mais indicado é usar essa mesma do link que me mandou a FreqMeasure, inclusive olhando aqui parece que ela usa a tão falada função interrupt: At the end of each cycle, an interrupt routine runs. The actual capture of elapsed time is done by hardware, so some interrupt latency is acceptable. At relatively low frequencies, under 1 kHz, only minimal CPU time is used. However, as the frequency increases, the interrupt demands more CPU time. A hardware low-pass filter is recommended if the input frequency could possibly be much higher than several kHz. Bom vou mudar tudo aqui e tentar usar essa biblioteca freqmeasure e vamos ver, é bom porque já poderei fazer outro teste prático nesse fim de semana. ei @aphawk está assim no site dessa biblioteca: At the end of each cycle, an interrupt routine runs. The actual capture of elapsed time is done by hardware. quer dizer que a cada fim de ciclo da frequência que está sendo medida uma rotina de interrupção acontece, e a contagem de tempo é feita por hardware, nesse caso é aquilo que você havia comentado antes, contar o tempo por hardware é usar um dos timers do ATmega328 e quando chega o fim do ciclo acontece uma interrupção, ou seja a função interrupt, é isso mesmo ou estou enganado?
  5. certo @aphawk vou colocar o resistor quando for testar no carro, por hora não estou usando porque estou apenas testando na bancada (mesa do meu quarto) estou usando apenas um led na saida, quando for substituir o led pelo rele aí sim usarei o resistor. Falando em contagem de pulsos ser atrapalhada pelo programa não sei se fiz algo errado, mas agora coloquei o segundo potenciometro para poder ajustar a velocidade que o led pisca e pronto o trêm ficou doido. O led não muda a velocidade que ele pisca de acordo com o segundo potenciometro, o led pisca mais rápido ou mais devagar de acordo com a frequência, se for mais baixa pisca mais rápido, se a frequencia for maior ele pisca mais devagar, na verdade está acontecendo a mesma coisa com o monitor serial, ele vai subindo as linhas mais rápido se a frequencia for menor, se a frequencia for maior ele vai subindo as linhas mais devagar, parece que quanto maior a frequencia mais lento fica tudo aqui, ahn o brilho do led tá variando também, quando pisca mais rápido o brilho é mais fraco e piscando lento fica com brilho mais forte. Tirei a parte do monitor serial pra ver se ficava mais rápido, mas tá lento mesmo assim, será que ler os dois potenciometros, o botão, e contar os pulsos é muita coisa e está começando a sobrecarregar o sistema do ATmega deixando tudo lento ou eu que fiz trapalhada no software de novo? Curiosamente foi a primeira vez que abri a IDE coloquei o código e não deu nenhum erro na hora de compilar kkkkk o que acham@Thiago Miotto @mlegnari ? aqui está o código atual:
  6. Agora funcionou bem melhor: a parte de ler o botão e o do potenciometro ficou assim: agora quero ver se descubro como colocar um outro potenciometro para alterar a velocidade que o led pisca, pra aumentar ou diminuir o tempo de delay nesse caso é 50 mas se eu quiser mais tempo ou menos tempo tenho que voltar no PC alterar o código mandar pro arduino e aí testar no carro, então se der pra mudar isso na hora usando o potenciometro vai ser bem melhor... Viu @Thiago Miotto dessa vez como a anterior usei esse comando como você havia me falado: Aí para aprender melhor fui fuçar na documentação do arduino e estava assim: Me corrija se estiver errado, mas pelo que entendi a função input_pullup faz exatamente a mesma função do resistor ligado em 5v que colocamos para evitar flutuações, e usando essa função não é mais necessário colocar o resistor porque internamente já está ligado em 5v, ou mesmo assim é bom colocar o resistor de pullup externo?
  7. então eu também não sei ao certo, será que dentro da biblioteca FreqCount pode ter alguma coisa que automáticamente já faça o pino 5 trabalhar como no nointerrupt? Como o gringo disse no email aquele dia para funcionar necessáriamente precisa ser no pino 5, só fuçando no manual do hardware ou explorando sobre a biblioteca pra saber mesmo... bom agora vou tentar programar o restante, o potenciometro para ajuste, o botão e o rele também, vou testar até qual velocidade o rele consegue ligar e desligar, mas deve haver um ponto em que ele não vai conseguir acompanhar a velocidade e vai começar a ficar estranho, vou testar aqui e amanhã posto o resultado.
  8. @Thiago Miotto @mlegnari olha que doido tirei a parte da comunicação serial e nada do led piscar, então fiz tipo o pisca led bem basiquinho, estava assim: ficou assim: aí agora mesmo usando a comunicação serial funciona normal, vai entender... Mas da ultima vez usando a função delay fazia a medição da frequencia ficar toda louca, agora mesmo usando comunicação serial está funcionando de boa, será que justamente por usar o pino 5 a função delay não interfere com a medição? Isso seria o tal do nointerrupt pin?
  9. sim, aqui está o esquema completo do meu sistema de ignição: voce acha que seria melhor interromper o sinal do hall ao módulo? No caso seria o fio azul, hall imput certo? @mlegnari sim com rele está funcionando, mas creio que dá pra melhorar, mas vamos lá o código atual é esse aqui: Ele mede a frequencia em 100ms, mas no meu caso não preciso multiplicar por 10 para saber qual seria a frequencia, a ideia é que 100ms é a frequencia dividida por 10 então 2000RPM =66Hz nesse caso em 100ms ele vai mostrar 6.6Hz e está certo ele mostra 6-7hz só que a ideia era fazer o led piscar quando passar de 15 e isso não está acontecendo, creio que seja algum bug, porque na hora de compilar e fazer upload não dá erro nenhum... Consegue ver algum erro?
  10. Fuçando na documentação dessa biblioteca FreqCout vi que depois que ela foi instalada ela cria um exemplo para facilitar, aí abri o exemplo, só que tinha algo errado faltava colocar: const int sensor_pin = 5; depois que coloquei ajustei para medir por 100ms, então a frequência que iria aparecer no monitor serial seria 10 vezes menor do que a frequência real, fiz isso e deu certo. Mas na hora de colocar a restante do código para o led piscar no pino 7 ele faz o upload não aparece nenhum erro e funciona normal, mas o led não pisca de jeito nenhum, o que pode ser? @Thiago Miotto aqui o código, está bem basiquinho só que não estou entendendo porque ele não pisca o led... veja se consegue achar algum erro por favor:
  11. sim sim baixei e instalei o zip pela propria ide arduino sim liguei direto no pino 5, achei que esses esquemas era apenas se a tensão do sinal da frequência fosse maior que 5v aí ele iria abaixar para 5v... Mas olha que reviravolta @Thiago Miotto uns 3 dias antes de criar o tópico eu tinha mandado email para o criador do esqueminha original, esse aqui: https://create.arduino.cc/projecthub/adrianos_botis/automotive-engine-rev-limiter-9c05cc aí falei pra ele sobre a frequencia do hall que 33Hz é igual a 1000RPM e achei que ele poderia ajudar também, mas ele nunca mais respondeu, aí hoje do nada ele me mandou o código e o link para a biblioteca que ele usa, dizendo que demorou para responder porque está muito ocupado, o código que ele mandou é esse aqui: e ele deixou claro que era para usar o pino 5 como entrada de sinal nessa mensagem: Entendi mais ou menos o que ele diz aí, porém se ele usa o pino 5 imaginei que dessa forma fosse mais preciso, então coloquei no arduino e conectei no carro e ele começou a limitar em 1000RPM o que é estranho porque no código coloquei pra limitar em 2000, então voltei no PC e imaginei que estivesse contando os pulsos dobrados no hall, mudei para 4000 no código achando que ele iria limitar em 2000 e deu certo limitou em 2000. MAS por incressa que parível esse código dele funcionou bem pior que aquele anterior que tinhamos feito, ele limita o rpm só que "vareia" demais, o anterior que fizemos era bem mais estável, eu fui acelerando lentamente até chegar 2000rpm e mantive o pedal do acelerador paradinho, mas olha como ele ficou variando do nada: Estou achando que vou basear no código dele a parte de contar a frequência porque usando o pino 5 deve ser mais preciso, mas vou deletar tudo sobre a parte de multiplicar por 5 e converter para RPM, estou achando que esse é um dos motivos dele ser beem impreciso, vou usar aquela parte do código anterior que criamos para ligar e desligar o rele sem converter para RPM, creio que assim vai ter uma resposta melhor. Outra coisa que estava pensando, o rele interrompe o fio negativo da bobina, nesse caso será que no lugar do rele poderia usar esse módulo com transistor? o que acham @.if @aphawk @mlegnari? Já tenho ele aqui, e acho que com ele podemos conseguir ligar e desligar bem bais rápido do que usando o rele, além de ser mais silencioso(o rele ligando e desligando rápido parece a seta do carro fica estranho kkkkk)
  12. Nossa pessoal estou desde cedo em cima disso e não tá saindo nada, vi videos do cara tentei começar baseando no código que a @.if colocou e não virou em nada também, tem que estudar e entender muito bem o hardware do atmega328 e como ele funciona certinho além de estar tudo em inglês, mesmo lendo o manual e os links que me mandaram não deu certo, imagino que é algo muito avançado e teria que ser craque em programação pra ir pra algo desse nível... Por curiosidade fui pesquisar se existia algo assim ou parecido com isso pra ter um inicio mais fácil, e olhando esse site achei algo mais ou menos parecido: http://interface.khm.de/index.php/lab/interfaces-advanced/arduino-frequency-counter-library/index.html É um frequencimetro básico que mostra a frequência no monitor serial e está escrito que ele usa o pino 5 como entrada por causa disso aqui: Então imaginei que fosse mais preciso do que aquele meu frequencimetro anterior, compilei o código e mandei para o arduino, e pra variar sem alterar nadinha do código original ele simplesmente não funciona, todas as frequencias que eu medi ele não acerta nenhuma, mostra 10,17,6hz tudo errado... Sinceramente estou perdido
  13. eu malemá entendo a C quanto mais outras linguagens kkkkkk tu tem uma aversão a virar páginas mesmo ein? kkkkk Bom hoje estou estudando os links que me passaram, e é um assunto denso e complexo ein? estou entendendo mais ou menos, achei alguns videos em inglês tipo esse aqui: É bem complexo mesmo mas acho que estou progredindo, é bem provável que eu empaque em alguma etapa ou dê erro na hora de compilar, aí eu corro aqui no tópico novamente kkkkkk
  14. dessa eu não sabia! e olha que joguei super nintendo ein, mas essas baterias devem ser de vida bem longa também, ou os circuitos que usam ela devem puxar uma corrente baixíssima creio eu. Ué Isadora Ferraz eu lembro, a uns tempos atrás ela me ajudou em uns parangolés que eu queria fazer em um tópico que já nem me lembro mais, mas era escrito o nome todo não apenas if e tinha a foto do mr bean se não me engano... bom voltamos ao zero entendi mais nada kkkkkkk @mlegnari é uma ótima ideia o bom é que nem precisaria comprar o micro 8051 daria pra simular em algum programa como o protheus certo? e o pic16f eu tenho um PIC12F675 aqui, usei ele pra fazer um pisca led kkkkkk Era um esqueminha com leds para ficar acendendo e apagando estilo supermáquina, mas não desenvolvi nada do zero foi só copiar e colar o código do blog do lários: http://picsource.com.br/archives/5821 Falando nisso a programação para PIC não é o mesmo do arduino né? Se não me engano a IDE do arduino usa linguagem C e dos pics eu nem imagino qual seja... A principal vantagem de saber essas coisas é que pode economizar dinheiro em determinados sistemas ou evitar problemas usando um PIC com mais funções, por exemplo usar um MC como o Atmega328 para ler um sensor de presença e acender uma lampada acaba sendo um desperdício porque existem outros MC com menos recursos porém mais baratos que conseguiriam fazer essa mesma função, correto? Falando nisso já sei qual vai ser o próximo projeto, mas vou terminar esse primeiro, o outro vai ser mais difícil kkkkkk @Thiago Miotto Off: atualmente estão taxando bem mais coisas, a uns 3 anos comprei minha placa de video no aliexpress, paguei menos da metade do que ela custava aqui e era nova veio na caixa original rapidinho e não foi taxado, mas outra vez comprei um celular bem simples que era mais barato que a placa de video e ele foi taxado e a taxa é salgada ein? Vai entender, atualmente ser taxado ou não depende simplesmente de pura sorte... isso me lembra no SENAI era pra montar um treco que nem me lembro direito só lembro que usava uns 4 ou 5 CI e era sobre portas lógicas, tinha jumper na protoboard toda e eu conferindo cada jumper pra não ter risco de ligar errado, levei umas 3h pra montar tudo, montei conferi os cabos pra ter certeza que não ia dar errado então pensei está pronto vou ligar! aí inverti positivo e negativo na fonte que alimentava a protoboard, ou seja QUEIMOU TUDO, nem preciso falar que virei piada né? kkkkkkk
  15. e funcionou sem trocar pilhas por 10 anos? O thinkercad eu uso algumas vezes para simular arduino é bem interessante, agora debugador não sabia que ele tinha essa função vou me aprofundar nisso. quando criei o primeiro tópico aqui sobre o limitador de RPM no fim do ano passado ela recomendou não pule a etapa do pisca led! eu achei curioso o apelido ser .if achava que era abreviação do nome alguma coisa assim, aí depois quando comecei a programar fui aprendendo algumas funções e seus nomes como: tone, map, else, if... aí quando escrevi iF no código parei e pensei if é uma função de programação e também é o apelido aí pensei assim: Rotor de antenas por acaso tem haver com aquele motorzinho que fica na ponta da antena parabólica? Desmontei um quando era pequeno e fiquei pensando porque tem um motor na antena? kkkkkkk e realmente a simulação ajuda mesmo a fazer as coisas principalmente projetos novos, eu mesmo "simulei" a rotação do motor usando outro arduino para gerar a mesma frequência do hall do distribuidor em determinadas RPM, isso foi extremamente util se não fosse assim toda vez que eu mudasse o código iria ter que ir no carro ligar o motor e ficar acelerando pra ver se funciona... demais! É que não tenho muito tempo livre para estudos mas no fim de semana principalmente domingo vou estudar isso, já está até aberto no navegador os links que me mandaramr, falando nisso essa parte de interrupt e contagem por hardware usando arduino pelo que percebi não tem muitos projetos na internet, isso é porque contagem por hardware e interrupção é bem mais complexo de se programar do que a programação comum que usa apenas o software?
  16. era esse mesmo que estava pensando em comprar kkkkk na china estou achando por 100 a 120 reais e aqui no mercado livre achei ele por 190 reais já montado (o que é bom porque não tem risco de eu montar errado e torrar tudo kkkkkk) Pelo preço ele parece ser bem básico, mas pra hobby creio que seja o ideal, eu me lembrava que era caro mas pesquisando por aí tem OSC de mais de 2000 reais, Eu ein kkkkkk com certeza seria para trabalho mesmo esse tipo de coisa. O clock de tempo pode ser baseado no cristal, agora o clock da frequência vai para um pino do MC e ao contrário do clock do cristal que é fixo o clock da frequência pode variar, no meu caso vai aumentar a freq quanto maior a rotação do motor, certo? Ahn sim posso usar a saida de som do PC para gerar sinais, onda quadrada, senoidal e por aí vai... É bom para testar o circuito, esse OSC de pc é bem capenga mas a saida de áudio do PC pode ser bem util pra algumas coisas.
  17. Pra eu fazer isso aí e tirar coelho da cartola é a mesma coisa, tem jeito não kkkkkkkkk Eu fiz SENAI de eletricista de manutenção a 11 anos atrás e no curso teve aulas de eletrônica analógica e digital, mas era bem básico o foco era comandos elétricos de máquinas, Relês, contatores, motores... Eu aprendi muita coisa lá, mas em eletrônica aprendi mais estudando por conta própria, atualmente pra mim eletronica é hobby, trabalho com algo bem diferente, mas ainda me interesso bastante pelo assunto, inclusive eu que fico inventando moda de fazer esses projetos doidos estou pensando em adquirir algum osciloscopio simples e baratinho, quase não tenho utilidade pra ele, mas dessa vez que precisei e não tinha deu bem mais trabalho e fez muita falta kkkkk Ahnnnn eu tirei umas conclusões me corrija se estiver errado: Os timers são contadores que podem ser usados para contar pulsos, mas também podem ser configurados para contar tempo, no caso precisamos usar um para contar os pulsos e o outro para contar o tempo e tendo o tempo e os pulsos teremos então a frequência correto? E o sinal de clock que você comentou vem do cristal soldado na placa do arduino né? Olhei nele e está estampado 16.000 então suponho que seja ele mesmo a base de tudo...
  18. Claro que sim @aphawk a primeira vez que usei Arduino foi para montar uma CNC, mas não entendia nadinha só montei a máquina joguei o código pronto no Arduino e já era. No tópico anterior aprendi bastante porque não tendo osciloscópio conseguimos montar um frequencimetro que apesar de ser meio capenga já deu uma ideia de qual seria a frequência que eu iria encontrar no hall do distribuidor e isso serviu de base para a criação do outro código, com a ajuda de todos mesmo ele sendo lento e com problemas funcionou. Assim aprendi mais sobre a função If, ll, map,tone... Que vocês já estão acostumados, mas é que pra mim é tudo novo, esse contador mesmo que o @.if comentou pelo que entendi ele faz o cálculo com hardware certo? Nem sabia que daria pra fazer isso, achei que tudo o que o Arduino faz era através do software, isso é completamente novo pra mim. Quando fiz o teste do circuito anterior fiquei bem contente porque fiz alguma coisa que funcionou e não explodiu nem pegou fogo kkkkk tenho pouco tempo livre por causa do trabalho, mas não vou desistir estamos cada vez mais perto.
  19. vocês dois sabem que eu provavelmente não vou conseguir fazer isso né? Kkkkkk Vou tentar e ver o que vai dar, eu geralmente apreendo melhor quando vejo alguém fazendo e tento fazer igual ou alterar algumas coisas, mas enfim o jeito é tentar. Flag, Basic, main, é tudo grego pra mim kkkkk
  20. Rapaz se isso aí for simples imagina o que for complicado kkkkk eu entendi mais ou menos Paulo, bom na teoria o frequencimetro nada mais é do que um contador de pulsos por um determinado tempo. Por exemplo se for programado para contar os pulsos durante meio segundo ele vai contar os pulsos armazenar na memória e vai zerar o contador para começar uma nova contagem, ao mesmo tempo ele vai multiplicar por 2 os pulsos do tempo anterior para mostrar no display a frequência, o problema é que isso for feito como está sem usar a interrupt na hora de multiplicar por 2 o contador pode perder pulsos e bagunçar tudo, correto?
  21. Me embananei todo tentando adaptar essa função no código atual, então vou tentar fazer um código novo, primeiro bem simples apenas para medir a freq e mostra no display. depois ir acrescentando as funções necessárias. Este tópico está bem grande e isso incomoda algumas pessoas, quem será né?kkkkkkk @.if Então criei um novo tópico e fiz um teste usando o código antigo, gravei um video para vocês darem uma olhada, ele está no novo tópico, aqui:
  22. Oi pessoal este é o novo tópico para continuar o antigo, este aqui: O tópico anterior estava muito longo, e agora consegui fazer um teste prático mesmo usando o esquema antigo, gravei um video e coloquei no youtube: Vamos lá algumas observações: Essa programação foi para teste mesmo é que estou bematarefado aqui, mas no fim de semana vou reescrever o código para usar a função interrupt, começarei do zero primeira coisa é fazer o arduino contar certinho os pulsos do hall e mostrar no display, depois disso colocar pra ligar desligar o rele, usar o botão, potênciometro e por aí vai... Algumas considerações: O video foi curto mas programei pra ligar e desligar o rele quando chegasse em 66Hz ou 2000RPM só para teste mesmo e como dá pra ver no video ele conseguiu manter, mas variou bastante se afundar o pé no acelerador de uma vez ele chega quase a 3000RPM antes de limitar e fazer cair para 2000, creio que isso seja porque está programado para contar os pulsos durante meio segundo multiplicar por 2 e aí dar a frequência, não sabia mas meio segundo dá pro motor girar bem mais do que está programado, e além de poder perder pulsos por não usar ininterrupt creio que esteja variando assim também porque acho que o relê leva bastante tempo pra ligar e desligar, no video dá pra ouvir quando ele liga e desliga. Então pensei: O ideal é trocar o rele por um transistor de potencia para ligar e desligar mais rápido? Usar a função ininterrupt para contar os pulsos é importantissímo, em breve tentarei programar para usar essa função. Contar os pulsos dentro de um tempo menor, 100 ou 200ms, porque 500ms é tempo demais, nesse caso 66Hz seriam 13.2 pulsos a cada 100ms, mas aí sem usar interrupt com esse código antigo vai fazer a margem de erro aumentar né?
  23. eu tinha lido essa parte, mas não consegui compreender totalmente, a função interrupt é bem mais complexa do que as outras funções do arduino. eu fiz mais correções mas mesmo assim não sai de 0Hz. Com certeza fiz algo errado mas não sei o que, eu li várias vezes aquela documentação do arduino e também já alterei o código várias vezes umas vezes dava erro na hora de compilar, outras vezes travava outras congelava e agora fica travado em 0
  24. @mlegnari realmente me enganei nessa parte, corrigi algumas coisas e dessa vez o display acendeu mas não sai de 0Hz o que será que fiz errado agora? Não deu nenhum erro na hora de compilar. Hoje também consegui os componentes para montar o filtro do circuito que você passou.
  25. @aphawk @.if @Thiago Miotto Oi pessoal, hoje iria testar no carro do jeito que está pra ver se funciona e não deu tempo, fiquei o dia todo trocando fios organizando tudo em baixo do painel do carro, estava bem bagunçado, fios que não vão pra lugar nenhum, nem imaginava que em baixo do painel tinha tanto fio, se for medir tudo em linha reta deve passar de 1km... Voltando ao circuito tentei usar a função interrupt RISING e na hora de compilar não deu erro, mas depois que carreguei pro arduino travou ele liga e já congela... Podem ver onde estou errando por favor? Fiz meio baseando no código que o @mlegnari passou.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!