CONTROLANDO ARDUINO COM RÁDIO DE AEROMODELO | Curso de Arduino

Поделиться
HTML-код
  • Опубликовано: 20 дек 2024

Комментарии • 79

  • @Pauleiras
    @Pauleiras 9 лет назад +1

    Excelente aula, terá muita serventia para mim! Tenho exatamente esse mesmo rádio.
    WR fiz uma alteração no seu código, estou usando apenas o canal 5 do rádio (associei o potenciômetro PIT TRIM que fica ao lado da chave ELE D/R) e tirei todas as linhas referentes a comunicação serial. O código ficou assim:
    // --- Mapeamento de Hardware ---
    #define ch5 6 //Canal 5 do rádio instanciado à entrada digital 6
    #define LED 13 //LED onboard
    // --- Declaração de variáveis globais ---
    //variável para o canal do rádio
    int canal_05 = 0;
    // --- Rotina de Interrupção ---
    ISR(TIMER2_OVF_vect)
    {
    TCNT2=100; // Reinicializa o registrador do Timer2
    if(canal_05 < 1300) digitalWrite(LED, LOW); //Apaga LED se o pulso do canal 5 for menor que 1300µs
    if(canal_05 > 1600) digitalWrite(LED, HIGH); //Acende LED se o pulso do canal 5 for maior que 1600µs
    // else digitalWrite(LED, HIGH); //Senão, Pisca o LED
    // delay(100);
    // digitalWrite(LED, LOW);
    // delay(100);
    } //end ISR
    // --- Configurações iniciais ---
    void setup()
    {
    // -- Direção dos I/Os --
    pinMode(ch5, INPUT); //Entrada para o canal 5 do rádio
    pinMode(LED, OUTPUT); //saída para o LED onboard
    digitalWrite(LED, LOW); //LED inicia desligado
    // -- Registradores de configuração do Timer2 --
    TCCR2A = 0x00; //Timer operando em modo normal
    TCCR2B = 0x07; //Prescaler 1:1024
    TCNT2 = 100; //10 ms overflow again
    TIMSK2 = 0x01; //Habilita interrupção do Timer2
    } //end setup
    //Loop infinito
    void loop()
    {
    canal_05 = pulseIn(ch5, HIGH, 20000); //Lê pulso em nível alto do canal 5 e armazena na variável canal_05
    delay(100);
    } //end loop
    Quero que repare em na "Rotina de Interrupção ISR(TIMER2_OVF_vect)" com as 4 linhas do ELSE comentadas, o código funciona perfeitamente, isso é, pulso com duração abaixo de 1300ms o LED apaga, acima de 1600ms ele acende.
    Mas basta descomentar essas mesmas 4 linhas do ELSE que o código não funciona (o LED fica permanentemente aceso), pois eu esperava que pulso com duração > 1300 e < 1600ms o LED pisca-se a cada 100ms e isso não ocorre!
    Não entendo o que está ocorrendo, será que não posso colocar delay dentro de uma interrupção? como resolver isso? ou seja, como fazer LED apagado com duração de pulso < 1300ms, LED piscando entre 1300 e 1600ms e LED acesso acima de 1600ms?

  • @joseiltonricardo
    @joseiltonricardo 6 лет назад

    Bom dia! Wagner, gostei muito do vídeo, pois tinha um radio velho de 72.870 MHZ da E-sky e só fiz descobrir a saída digital do meu receptor e, finalmente pude integra-lo ao arduino, porém ainda não sabia os parâmetros adequados a integrar em minha programação, mas com a sua orientação consegui.....Valeu, muito grato!

  • @IRS393
    @IRS393 9 лет назад +1

    Muito boa a aula. Haja critividade e dedicação para fazer um vídeo a cada dia, e sempre com muita qualidade, deve dar um trabalho enorme gerar o conteúdo, fazer a vídeo aula, executarr o trabalho de edição. Sem contar em atualizar as redes socias e upar os arquivos das aulas. Parabéns, muito obrigado por compartilhar do seu conhecimento conosco.

    • @canalwrkits
      @canalwrkits  8 лет назад +1

      +Idelbrando Rocha , muito obrigado pelos elogios e considerações meu amigo! De fato, dá bastante trabalho. Mas contribuir para o conhecimento de vocês e para melhorar a educação deste país, não tem preço.

  • @projetos_leotronico
    @projetos_leotronico 7 лет назад

    Wagner, eu fiz uma alteração no sketch e rodou no UNO perfeitamente:
    /*
    Radio controle acionando um LED
    Sketch modificado do original do Wagner Rambo
    Video #052
    */
    // --- Mapeamento de Hardware ---
    #include
    #include
    #define ch4 5 //Canal 4 do rádio instanciado à entrada digital 5
    #define inv1 13 //Controle de sentido do motor1 (A0)
    // --- Protótipo das funções auxiliares ---
    void atuadores(); //Função de controle dos atuadores do Robô US-2
    void read_channels(); //Função para leitura das entradas dos canais
    void test_channels(); //Testa os 8 canais do Turnigy9x
    // --- Declaração de variáveis globais ---
    short change_ch = 0x00, //variável para determinar qual canal será lido
    counterT2 = 0x00;
    //variáveis para os canais do rádio
    int canal_04 ;
    // --- Interrupção ---
    ISR(TIMER2_OVF_vect)
    {
    TCNT2 = 0x64; // Reinicializa o registrador do Timer2
    counterT2++;
    if(counterT2 == 10)
    {
    counterT2 = 0x00;
    }
    } //end ISR
    // --- Configurações iniciais ---
    void setup()
    {
    // -- Direção dos I/Os --
    pinMode(ch4, INPUT); //Entrada para o canal 4 do rádio
    pinMode(inv1, OUTPUT); //saída inv1
    // -- Registradores de configuração do Timer2 --
    TCCR2A = 0x00; //Timer operando em modo normal
    TCCR2B = 0x07; //Prescaler 1:1024
    TCNT2 = 0x64; //10 ms overflow again
    TIMSK2 = 0x01; //Habilita interrupção do Timer2
    } //end setup
    // --- Loop Infinito ---
    void loop()
    {
    read_channels();
    atuadores();
    } //end loop
    // --- Funções Auxiliares ---
    void atuadores() //Função de controle dos atuadores do Robô US-2
    {
    if(canal_04 < 1300)
    {
    digitalWrite(inv1, HIGH);
    }
    if(canal_04 > 1600)
    {
    digitalWrite(inv1, LOW);
    }
    } //end atuadores
    void read_channels() //Faz a leitura dos 6 primeiros canais do rádio
    {
    canal_04 = pulseIn(ch4, HIGH, 50000); //Lê pulso em nível alto do canal 4 e armazena na variável canal_04
    } //end read channels
    No entanto (a intenção é apenas acionar um único led com um único canal do RC), quando tento compilador pro Attiny85, mudando a placa na IDE do Arduino, não dá certo, aparecem um monte de erros. Acredito que existam diferenças em timer e/ou interrupções, certo? Como adaptar esse código no Attiny85 (porque quero fazer uma placa muito pequena). Pode me ajudar? Já li um monte de sites e foruns mas não encontro nada que funcione.

  • @aldimirodasilva3874
    @aldimirodasilva3874 8 лет назад

    que saudade de assistir boas aulas do grande Wagner Rambo !

    • @canalwrkits
      @canalwrkits  8 лет назад

      +Aldimiro da Silva , olá meu amigo! Nos acompanhe sempre!

  • @CarlosFilmagem2008
    @CarlosFilmagem2008 9 лет назад +2

    nossa que massa, já da pra montar um drone!!!!
    já tenho o rádio do meu já vou tentar, muito bom!!!!

    • @canalwrkits
      @canalwrkits  9 лет назад

      +Carlos Meireles , que ótimo! Depois envia um vídeo para o projeto do assinante.

  • @GilneideMedeiros
    @GilneideMedeiros 9 лет назад +2

    Excelente essa aula Wagner,
    ficaria show projetar um robô com câmera Fpv na série robots utilizando o arduino com rádio de modelismo.

    • @canalwrkits
      @canalwrkits  9 лет назад +1

      +Gilnei de Medeiros , valeu meu amigo! Boa ideia, traremos mais aulas sobre radio controle.

  • @projetos_leotronico
    @projetos_leotronico 7 лет назад

    Testei no meu UNO e funcionou perfeito.Ótimo código e excelente explicação. Como eu faria para setar uma flag (ou variável) ou algo do tipo cada vez que ocorra uma mudança na largura dos pulsos? Por exemplo, se for < 1300 seta, se for >1500 reseta flag. Tipo pra montar um rele comandado por RC.

  • @leonardorventura
    @leonardorventura 7 лет назад

    Wagner Rambo, tenho dois radio controles porem os dois sem receptor, MJX r/c gr246 e outro da WL toys, não to achando os receptores pra comprar, existe um meio de fazer um receptor para um desses modelos? Sabendo que ambos são 2.4Ghz...Fica também uma sugestão de vídeo aula.

  • @dayannafranca8283
    @dayannafranca8283 9 лет назад +1

    Ótima aula. Parabéns.

    • @canalwrkits
      @canalwrkits  9 лет назад

      +Dayanna França , muito obrigado! Nos acompanhe sempre!

  • @eze3434
    @eze3434 8 лет назад +7

    fas um video com esse equipamento mais ponte mais motor dc

  • @beneditodonizetiferreira4785
    @beneditodonizetiferreira4785 8 лет назад +2

    Excelente,show de bola

    • @canalwrkits
      @canalwrkits  8 лет назад +1

      +Benedito donizeti ferreira , muito obrigado!

  • @RenatoSantos-vn1vy
    @RenatoSantos-vn1vy 7 лет назад +2

    Fala Wagner, blz? gostei dessa aula amigo, pois estou lutando exatamente com isso, hehe, esta programação serve para qualquer modelo de radio, ou funciona só com este do vídeo?

  • @tecnologiaecia9322
    @tecnologiaecia9322 3 года назад

    Olá amigo..m inscrevi no seu canal. Estou precisando usar dois servos para um projeto q estou criando..um ornitoptero. Quero usá-los para movimentar as asas. Vc tem algum vídeo que ensina como fazer?

  • @ronaldonunes2158
    @ronaldonunes2158 9 лет назад +1

    Muito bom mesmo ... me ajudo muito no meu projeto !!! vlw !!!

    • @canalwrkits
      @canalwrkits  8 лет назад

      +Ronaldo Nunes , que ótimo! Nos acompanhe sempre!

  • @joaovictordanielipedroso8187
    @joaovictordanielipedroso8187 6 лет назад +1

    Wagner, qual RC voce recomenda comprar ? Posso comprar em sites fora do pais ? Consegue me auxiliar na escolha do modelo ? Valeww !

  • @jscunha5889
    @jscunha5889 7 месяцев назад

    Ola Amigo, porque o RC Efly da art TEC, não movimenta os comandos com o trim, ou seja, não trima

  • @FabioLima-up2mi
    @FabioLima-up2mi 2 года назад

    Opa amigo boa tarde me tira uma dúvida
    O receptor do meu radio futaba t6ex fica piscando verde e não binda.

  • @Leonardorfo
    @Leonardorfo 7 лет назад

    Boa noite, eu tenho um radio Flysky fs-th9x que é basicamente o turnigy 9x com outra capa e alguns dos canais sempre apresentam valor zero quando coloco para monitorar todos os 8 canais disponíveis, entretanto quando coloco estes separadamente obtenho os valores esperados, você tem alguma ideia do que esta acarretando nestes valores nulos ? So consigo notar variação dos pulsos para os canais correspondentes aos cursores, isso é normal ?

  • @alanjonas4073
    @alanjonas4073 7 лет назад

    Olá, Vágner
    Quero agradecer pelos vídeos, neste vídeo eu tive uma dúvida: seu eu quiser ligar o receptor em na bateria do aero e o arduíno numa bateria de 9v, o ground do receptor vou poder ligar no Arduino, ou sempre vou precisar ligar o ground na mesma carga que alimenta o arduíno?. Abraço.

  • @eze3434
    @eze3434 8 лет назад +3

    faça mais vídeos com rádio control controlado motores dc

  • @eduardoalbuquerque1518
    @eduardoalbuquerque1518 5 лет назад

    Olá, professor. É possível fazer um controle fino do joystick, como por exemplo ligar um motor de passo e controlá-lo como se fosse um servo, ou nesse caso a saída é apenas do tipo high ou low?

  • @eltoncesar1375
    @eltoncesar1375 7 лет назад

    Parabéns pelo canal Wagner. Com PIC eu consigo implementar essa função PulseIn? Gostaria de gastaria de controlar portas do Pic com canais do meu RC. Há essa possibilidade? Obrigado.

  • @thytoin1
    @thytoin1 8 лет назад

    Wagner se não me engano a maioria se não todos os servos 0-180º trabalham com pulsos entre 550 ~2400 ms, poderíamos mapear esses valores de saída do receptor no Arduíno para poder obter um deslocamento total do eixo correto ?

    • @canalwrkits
      @canalwrkits  8 лет назад +1

      +Antonio Carlos Oliveira , é possível. Mas existem servos que trabalham entre 1ms e 2ms.

  • @dionisiolima6830
    @dionisiolima6830 4 года назад +1

    Como faço para baixar arquivos desse projeto. Pois Dropbox só dá erro[

  • @apfabinhosilva
    @apfabinhosilva 8 лет назад

    Boa noite Wagner, sou fan seu parabéns pelas diversas aulas, mais me ajuda com um probleminha meu. Esse esquema que vc me passou do potenciômetro.
    pinMode(potPin,INPUT);
    while( analogRead(potPin) > 15 );
    //prende o código aqui até que o potenciômetro esteja quase no mínimo
    delay(2000); //aguarda 2 segundos antes de entrar no loop infinito.
    . como eu faço pra implementar ele aqui nesse código utilizando o radio tentei varia formas e não tive exito. obrigado.

  • @rodrigomaisnovo
    @rodrigomaisnovo 6 лет назад

    Olá. Posso ligar um relé de Arduino direto no receptor para acionar um led, mandado o comando do rádio controle?

  • @Pauleiras
    @Pauleiras 9 лет назад +1

    Consegui fazendo assim, mas descartei totalmente o timer2!
    // --- Mapeamento de Hardware ---
    #define ch5 6 //Canal 5 do rádio instanciado à entrada digital 6
    #define LED 13 //LED onboard
    // --- Declaração de variáveis globais ---
    int canal_05 = 0;
    // --- Configurações iniciais ---
    void setup()
    {
    // -- Direção dos I/Os --
    pinMode(ch5, INPUT); //Entrada para o canal 5 do rádio
    pinMode(LED, OUTPUT); //saída para o LED onboard
    digitalWrite(LED, LOW); //LED inicia desligado
    } //end setup
    //Loop infinito
    void loop()
    {
    canal_05 = pulseIn(ch5, HIGH, 20000); //Lê pulso em nível alto do canal 5 e armazena na variável canal_05
    delay(100); //Delay TAMBÉM determina o intervalo de piscadas do LED
    if(canal_05 < 1100) digitalWrite(LED, LOW); //Apaga LED se o pulso do canal 5 for menor que 1100µs
    else digitalWrite(LED, !digitalRead(LED)); //Inverte estado do LED
    if(canal_05 > 1800) digitalWrite(LED, HIGH); //Acende LED se o pulso do canal 5 for maior que 1800µs
    } //end loop
    Foi o máximo que consegui!

    • @canalwrkits
      @canalwrkits  8 лет назад

      +pauleiras , bacana, é uma boa solução.

  • @rspessanha3627
    @rspessanha3627 2 года назад

    Consigo acionar relés diretamente no receptor de rádio?

  • @clebersoares123
    @clebersoares123 9 лет назад

    excelente aula como sempre. poderia dar um exemplo no cod de como atracar um rele ?com o canal 5 por exemplo que que uma chave liga/deslig?

    • @carolinejuhaz2744
      @carolinejuhaz2744 9 лет назад +1

      +cleber soares funciona do mesmo jeito que com o LED. Você pode programar o Arduino para quando receber mais que 1800 ligar o relé (é só dar um HIGH na saída), e quando receber menos que 1100, desligar. Provavelmente você vai precisar fazer uns ajustes dos valores, mas é basicamente isso.

    • @canalwrkits
      @canalwrkits  9 лет назад

      +cleber soares , exatamente como nosso amigo My Works citou. Mas não esqueça que precisa chavear o relé com transistor. Procure exemplos no canal, de controle de cargas com microcontrolador.

  • @ricardoszarnik5873
    @ricardoszarnik5873 7 лет назад

    olá gostaria de fazer um controle para Aeromodelos usando controle do play 2 sem fio pode me ajudar?

  • @pcrbroquetti
    @pcrbroquetti 9 лет назад +2

    Wagner, ajudou muito mesmo, você tem mais vídeos deste rádio?

    • @canalwrkits
      @canalwrkits  8 лет назад +2

      +Paulo Roquetti , por enquanto não meu amigo. Mas pretendo abordar mais sobre o assunto.

    • @CarlosFilmagem2008
      @CarlosFilmagem2008 8 лет назад

      muito bom!! se poder abordar como agente ligar umas cargar nele seria bom, pra por led de 10w no drone, ou como fazer um shield de motores sendo acionado pelo radio e uma sirene bem alta seria bacana!!!

  • @jailsonlima2250
    @jailsonlima2250 8 лет назад +1

    Wagner, seria possível vc fazer uma vídeo aula ensinando a utilizar um módulo RF (radio frequência), daqueles que a gente usa em Microcontroladores e Arduíno que vem com transmissor e receptor 433Mhz, a vídeo aula poderia ser de preferência para microcontroladores?
    Desde já agradeço!

    • @canalwrkits
      @canalwrkits  8 лет назад

      Olá Jailson, já fiz uma série inteira sobre isso: ruclips.net/video/jVpk2pw77Xw/видео.html

    • @leilaalves7228
      @leilaalves7228 8 лет назад

      Obrigado Wagner!

    • @jailsonlima2250
      @jailsonlima2250 8 лет назад

      Valeu!

  • @jacksonfrancosilva6755
    @jacksonfrancosilva6755 5 лет назад

    Wagner ah possibilidade de conectar um receptor de RC flysky ia6b diretamente a uma ponte H ibt2 43A sem o uso de um arduino obrigado

  • @gatomestre3377
    @gatomestre3377 7 лет назад

    amigo se eu usar dois arduinos (sendo um no controle e um no aeromodelo) eu preciso usar o receptor do controle ?
    Se você tiver um email disponível para me tirar umas dúvidas
    desde já agradeço

  • @lucaspaiva9589
    @lucaspaiva9589 7 лет назад

    Amigo, como você faz para aparecer essa tela de monitoramento do arduino? Essa tela onde você verificou que os canais variam de 1000 a 2000

  • @JulioCesarDrawings
    @JulioCesarDrawings 5 лет назад

    Sei que o vídeo é antigo mais poderia me dar uma pequena luz, seria possível usar um arduino para fazer uma miniatura utilizando Radio controle, e plugar um sistema de som por exemplo imitando motores? como os modulos MFC Tamiya, queria algo mais custo/benefício... pois esses modulos são caros demais

  • @paulocristo1
    @paulocristo1 8 лет назад +2

    vc e o cara.

    • @canalwrkits
      @canalwrkits  8 лет назад

      +Paulo Claudia , obrigado! Continue nos acompanhando.

  • @sandrosilva5956
    @sandrosilva5956 7 лет назад

    como parar a oscilação do pulso que vária muito?

  • @Kongfufrank
    @Kongfufrank 4 года назад

    Mostra montar radio comtrole de 30 canais com arduino. Radio aeromodelismo bons são caros

  • @arnobioaraujo5965
    @arnobioaraujo5965 4 года назад

    valeu

  • @ronaldoalves8239
    @ronaldoalves8239 2 года назад

    E aí galera tudo bem?
    Fiz o passo a passo mais tive um erro. Só está lendo três canais do receptor. Os outros aparecem 0 alguém teve o mesmo problema?

  • @cim8778
    @cim8778 9 лет назад +1

    muito bom...

    • @canalwrkits
      @canalwrkits  8 лет назад

      +CI M , valeu, muito obrigado!

  • @CarlosFilmagem2008
    @CarlosFilmagem2008 9 лет назад +1

    esse video que me despertou o interesse pra estudar Arduino www.blairkelly.ca/arduino-wifly-mini
    ele faz um carrinho ser controlado com vários tipos de controle, e o mais legal é com o volante,
    ele faz projetos muito detalhados iguais aos do WR Kits.

    • @canalwrkits
      @canalwrkits  9 лет назад

      +Carlos Meireles , muito show!

  • @Pauleiras
    @Pauleiras 9 лет назад

    Acabo de tentar isso:
    // --- Rotina de Interrupção ---
    ISR(TIMER2_OVF_vect)
    {
    TCNT2=100; // Reinicializa o registrador do Timer2
    if(canal_05 < 1300) digitalWrite(LED, LOW); //Apaga LED se o pulso do canal 5 for menor que 1300µs
    if(canal_05 > 1600) digitalWrite(LED, HIGH); //Acende LED se o pulso do canal 5 for maior que 1600µs
    else digitalWrite(LED, !digitalRead(LED)); //Inverte estado do LED
    } //end ISR
    também não deu certo

    • @kalelsantana7940
      @kalelsantana7940 8 лет назад

      // --- Rotina de Interrupção ---
      ISR(TIMER2_OVF_vect)
      {
      TCNT2=100; // Reinicializa o registrador do Timer2

      if(canal_05 > 1500) digitalWrite(LED, HIGH);
      else digitalWrite(LED, LOW);
      } //end ISR
      Porque você não tenta apenas assim.

  • @gilbgomez
    @gilbgomez 6 лет назад

    super like

  • @gustavocossentinobruckmarc2219
    @gustavocossentinobruckmarc2219 4 года назад +1

    Eu pensei que o video seria configurando o arduino para ser o novo receptor! E não utilizar o receptor realmente ...

  • @dirafael89
    @dirafael89 8 лет назад

    WR kits >>>>>>>> All eletronics

  • @romariosouza7360
    @romariosouza7360 7 лет назад

    Wagner tem como fazer um vídeo, ensinando a utilizar o módulo RF transmissor do rádio controle, com Arduino utilizando PPM do módulo.
    desse modo
    ruclips.net/video/-kfYwHXg8H0/видео.html. desculpa coloca link de outro canal

  • @eze3434
    @eze3434 8 лет назад

    tem muita gente de atrás

  • @ivanTechtraccarBrasil
    @ivanTechtraccarBrasil 7 лет назад

    topppppp