Olá.
Primeiramente gostaria de dizer e como podem ver ( risos ) sou iniciante com arduino pois sempre utilizei PIC e aprendi da forma mais errada possível que foi em PIC-BASIC mas modéstia parte me viro muito bem com o PIC.
Mas como vi um grande potencial no arduino estou a me atualizar.
Estou com um grande problema em transformar a frequência em largura de pulso lida em algo que eu possa utilizar.
Estou lendo o sinal de um receptor RC e de acordo com o valor lido será o valor da pausa em que o programa irá utilizar.
Tentei algo escroto e funcionou, porem a rotina ficou muito lenta e o mais estranho é que todo o código está trabalhando em cima do tempo desta variável, o que não deveria pois está dentro de um IF .
Estou utilizando o Arduino Mega
O ch2 é o canal em questão e o valor lido é salvo na variável pot1 e após a conversão salva o valor na variável pausa.
Inicialmente a ideia era ter uma variável de " 0 a 255 " onde utilizaria de 0 a 150 pois são esses valores que preciso e assim jogaria dentro do delay()
A saída brilho apenas implementei como teste para ter certeza ( e tive ) que o código esta lendo constantemente dentro dos IFs.
Se alguém puder dar uma força eu agradeço.
Tags:
Boa noite Ricardo, seja bem vindo !
Primeiramente, o pessoal do fórum vai falar para você não colocar o seu código no corpo da mensagem e sim para anexar como arquivo (particularmente eu não gosto assim pois quem quiser ajudar tem que fazer o download do código, mas são costumes aqui do fórum).
Segundo, pesquise sobre a função MAP do arduino, ela faz isso pra você.
https://www.arduino.cc/reference/pt/language/functions/math/map/
Olá André, boa noite.
Muito obrigado pela dica de não postar o código, e aproveito para pedir desculpa a todos pois não sabia, vou ver se consigo editar isso.
A respeito da função a qual me passou acho que é por ai mesmo, muito obrigado vou testar amanhã para ver.
Olá André.
Muito obrigado, a função MAP me ajudou bastante não só no problema apresentado como também em uma implementação adicional.
Muito obrigado.
Olá Américo, boa noite.
O sinal a qual estou lendo é por largura de pulso com uma frequência um pouco diferente e não PWM cru , pela lógica de muitos geradores de sinal para servo seria sim PWM cru mas esse receptor não sei porque é diferente dos que conheço e envia um sinal com uma modulação diferente ( porem percebi que a resposta e a precisão desse rádio RC é espetacular ).
O rádio é um hitec aurora 9.
Olá Américo.
Muito obrigado, testei sua sugestão também e funcionou porém o resultado foi mais satisfatório com a função MAP.
Muito obrigado.
Boa noite Ricardo,
Acho importante que informe as especificações do seu control remoto. (frequencia do pulso, largura max e min do pulso - Duty cycle, , etc).
Referência sobre a função pulsein:
https://www.arduino.cc/reference/en/language/functions/advanced-io/...
Talvez isso poderá ser útil pata você:
http://labdegaragem.com/forum/topics/desvendando-controle-remoto-rf
http://labdegaragem.com/profiles/blogs/tutorial-descodificando-cont...
http://labdegaragem.com/forum/topics/projeto-alarme-sem-fio-arduino...
Achei o modelo do seu RC HITEC Aurora 9:
https://hitecrcd.com/products/aircraft-radios-receivers-and-accesso...
Modulação :
Resolution = 1024
Manual = https://hitecrcd.com/images/products/pdf/17_Aurora_9_manual.pdf
O melhor Fórum sobre Rádio Contole com todo tipo de informação:
https://www.rcgroups.com/forums/index.php
Sobre Protocolos de Radio Controle:
https://www.rcgroups.com/forums/showthread.php?2301242-The-Beginner...
Olá Jusé Gustavo.
Muito obrigado pelas pesquisas, vão ser de muita ajuda, o problema foi sanado com a função que nosso querido André apresentou ( MAP ).
Muito obrigado.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por