Debounce, Criando uma biblioteca para botões - Curso de Arduino #45

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ก.ย. 2024
  • Debounce, Criando uma biblioteca para botões - Curso de Arduino #45
    Link deste vídeo: • Debounce, Criando uma ...
    Na aula de hoje do nosso curso de Arduino vamos aprender como resolver o problema do bounce ao utilizar botões e vamos também implementar uma super biblioteca para botões.
    Nosso curso de Arduino online gratuito, além de ser um curso bastante completo é a melhor forma de você aprender sobre Arduino.
    Arduíno é uma plataforma de prototipagem eletrônica de hardware livre e de placa única, projetada com um microcontrolador Atmel com suporte de entrada/saída embutido, uma linguagem de programação padrão que é essencialmente C/C++. O objetivo do projeto é criar ferramentas que são acessíveis, com baixo custo, flexíveis e fáceis de se usar por novatos e profissionais. Principalmente para aqueles que não teriam alcance aos controladores mais sofisticados e de ferramentas mais complicadas.
    Pode ser usado para o desenvolvimento de objetos interativos independentes, ou ainda para ser conectado a um computador hospedeiro. Uma típica placa Arduino é composta por um controlador, algumas linhas de E/S digital e analógica, além de uma interface serial ou USB, para interligar-se ao hospedeiro, que é usado para programá-la e interagi-la em tempo real. Ela em si não possui qualquer recurso de rede, porém é comum combinar um ou mais Arduinos deste modo, usando extensões apropriadas chamadas de shields[10]. A interface do hospedeiro é simples, podendo ser escrita em várias linguagens. A mais popular é a Processing, mas outras que podem comunicar-se com a conexão serial são: Max/MSP,[11] Pure Data,[12] SuperCollider,[13] ActionScript[14] e Java.[15] Em 2010 foi realizado um documentário sobre a plataforma chamado Arduino: The Documentary.
    Além do curso de Arduino aqui em nosso canal você vai encontrar vários outros cursos, sempre com foro em informática avançada, todos cursos completamente gratuitos e com uma didática única que você só encontra aqui no CFB Cursos.
    Site Oficial do Arduino
    www.arduino.cc/
    Link direto para download do software
    www.arduino.cc...
    HTML + HTML5: goo.gl/nkEFd9
    CSS3: goo.gl/Aywzrj
    Javascript: goo.gl/HK3ZYn
    PHP + MySQL: goo.gl/5eFh1M
    Site do canal
    cfbcursos.com.br
    Colabore com nosso canal:
    Qualquer valor usando o PIX: pixcfbcursos@gmail.com
    Página de cursos no site
    cfbcursos.com.b...
    e-mails:
    perguntas@cfbcursos.com.br
    canalfessorbruno@gmail.com
    Outros Links:
    Vídeo Colabore com nosso canal: • Video
    Canal youtube: / canalfessorbruno
    Instagram: cfbcursos ou @cfbcursos
    Twitter: @cfbcursos
    Facebook: canalfessorbruno
    TH-cam: / canalfessorbruno
    vakinhas
    www.vakinha.co...
    www.vakinha.co...
    Produção: Bruno P. Campos / CFB Cursos
    Edição: Bruno P. Campos / CFB Cursos
    Licença padrão do TH-cam
    #cfbcursos #arduino #automacaoarduino #automacao #programacaoarduino

ความคิดเห็น • 39

  • @arduinomaquinas
    @arduinomaquinas 3 ปีที่แล้ว +2

    Fessor, a explicação no momento [ 14:46 / 22:57 ] do vídeo, é muito boa, e bem didática. Dá pra entender perfeitamente como funciona o período pré estabelecido adquirido através de millis().
    Haja visto que millis() não pára, sendo possível determinar esse período normalmente.
    Parabéns, forte abraço !

  • @marcoscascelli1049
    @marcoscascelli1049 ปีที่แล้ว

    Ótima biblioteca !
    Muito útil para evitar falhas na leitura de acionamento dos botões e erros com delay() através da função millis().
    Usando classes e orientação a objetos fica muito fácil lidar com botões.
    Parabéns pela aula e obrigado pela biblioteca !

  • @vitaozocca
    @vitaozocca 3 ปีที่แล้ว +8

    por favor, sera que poderia disponibilizar a biblioteca? Obrigado pelas aulas, forte abraço

  • @MarcosPaulo-fp3qt
    @MarcosPaulo-fp3qt ปีที่แล้ว

    Impressionante..

  • @esdrasas
    @esdrasas 2 ปีที่แล้ว +3

    class Btn
    {
    public:
    int *pino;
    bool btnclicado;
    bool btnliberado;
    int ultimoEstadoBtn=LOW;
    unsigned long tempoPrimeiroAcionamento=0;
    unsigned long tempoDebounce=50;
    typedef void (funcao){void};
    //typedef retorno (nome_funcao)(Paramentros de entrada);
    Btn(int p){
    btnclicado=false;
    btnliberado=false;
    this->pino=p;
    }
    void clique(funcao *f){
    //Rotina Debounce
    int leitura=digitalRead(*pino);
    if (leirura!=ultimoEstadoBtn){tempoPrimeiroAcionamento=millis();}
    if((millis()-tempoPrimeiroAcionamento>tempoDebounce){
    //Debounce tratado, comanndos que serão executados no acionamento do botão
    if(digitalRead(*pino)){
    btnclicado=true;
    btnliberado=false;
    }else {
    btnliberado=true;
    }
    if((btnclicado)and(btnliberado)){
    btnclicado=false;
    btnliberado=false;
    f();
    }
    ultimoEstadoBtn=leitura;
    }
    };

  • @Sonhadoresdc
    @Sonhadoresdc 3 ปีที่แล้ว

    Aula show! Iria rodar no tinkercad, mas não é possível exportar a biblioteca para lá. De qualquer forma, irei usar em projetos futuros.

  • @OzielMarques
    @OzielMarques 3 ปีที่แล้ว +2

    Boa tarde Professor. Não estou conseguindo encontrar no site o link para download da biblioteca.

  • @joaovitorfacundo3576
    @joaovitorfacundo3576 ปีที่แล้ว

    Sabe como posso usar essa biblioteca para esp32? Quando vou compilar para a esp no Arduino IDE, ele mostra uma mensagem de erro

  • @polianaoliveira8241
    @polianaoliveira8241 4 ปีที่แล้ว +2

    CFBCursos teria como disponibilizar o link para download

  • @enkiimuto1041
    @enkiimuto1041 11 หลายเดือนก่อน

    Eu to confuso
    tempoPrimeiroAcionamento nunca é resetado, então o valor dele SEMPRE vai ser menor conforme o botão é apertado.
    O código vai funcionar na primeira vez como deveria, mas dai ele sempre vai fazer uma conta e rodar o segundo if que passa a função, não?
    O que eu to perdendo aqui?

  • @wilmarmr3416
    @wilmarmr3416 ปีที่แล้ว

    olá fessor, coloca a pagina on-line e disponibiliza a biblioteca por favor! abc T+

  • @teusocost
    @teusocost 4 ปีที่แล้ว +1

    Consegui compilar o código perfeitamente, contudo parece que o led fica com um brilho baixo. já testei outros led e portas e o problema permanece na programação.

    • @julianotorres9
      @julianotorres9 2 ปีที่แล้ว

      Também estava com este problema, faltou colocar no Setup pinMode(ledPin, OUTPUT);

  • @raquelcunha8337
    @raquelcunha8337 4 ปีที่แล้ว

    Não achei o link da biblioteca Btn, pode enviar

  • @FabioOliveira-pi8ob
    @FabioOliveira-pi8ob 2 ปีที่แล้ว

    Prof. a biblioteca "Btn.h" ainda tá dispensável para baixar? não achei ela no Site do canal.

    • @enkiimuto1041
      @enkiimuto1041 11 หลายเดือนก่อน +1

      tb n achei, copiei a mão só pra er que um cara nos comentários colou ela ali =/

  • @albertocce
    @albertocce 5 ปีที่แล้ว

    Boa tarde! Por favor, como declara mais de um botão? Nesta parte "Btn btn = new Btn(btn_pino);"

    • @flaviorenatofrs
      @flaviorenatofrs 4 ปีที่แล้ว +1

      Seguindo a mesma sequencia do skecth você pode empregar desta forma:
      #define btn_pino1 2
      Btn btn1 = new Btn(btn_pino1);
      #define btn_pino2 3
      Btn btn2 = new Btn(btn_pino2);
      #define btn_pino3 4
      Btn btn3 = new Btn(btn_pino3);

  • @ClebersonFS
    @ClebersonFS 5 ปีที่แล้ว

    nao achei biblioteca btn

  • @ibirapit
    @ibirapit 6 ปีที่แล้ว

    O Arquivo da Biblioteca não está compilando

    • @cfbcursos
      @cfbcursos  6 ปีที่แล้ว

      Troquei o arquivo, confere lá

    • @ibirapit
      @ibirapit 6 ปีที่แล้ว

      Olá Boa Tarde! Tentei mas não consigo, criei uma pasta dentro da Libraries, chamado Btn e coloquei dentro o arquivo Btn.h, mas não consegui fazer o Arduinodriod reconhecer , todos os outros downloads do Curso de Arduino que baixei antes, nunca tive problemas.

  • @leonardoturini7416
    @leonardoturini7416 3 ปีที่แล้ว +2

    Bom dia, poderia disponibiliza a biblioteca do botão.

  • @danielgoldackertec.emeletr6737
    @danielgoldackertec.emeletr6737 4 ปีที่แล้ว +1

    Show

  • @Jurniores
    @Jurniores 3 ปีที่แล้ว

    Qual diferença de instanciar um objeto com new e sem new, e porque em algumas aulas usam um arquivo .cpp para completar a classe e nessa foi tudo dentro de um arquivo só. o .h

  • @dudupotatoes
    @dudupotatoes 2 ปีที่แล้ว

    ao invés disso, poderia apenas usar um delay de 50 mili segundos depois do acionamento do botão?

  • @cristianocarvalho5743
    @cristianocarvalho5743 3 ปีที่แล้ว

    Bom dia, não encontrei o link para baixar a biblioteca.

  • @palitinho-mam
    @palitinho-mam 5 ปีที่แล้ว

    não consegui nem baixar.

  • @orlandosouza6175
    @orlandosouza6175 4 ปีที่แล้ว

    Bom dia, não encontrei o link para baixar a biblioteca.

  • @fabionitrox
    @fabionitrox 4 ปีที่แล้ว

    não consigo importar a biblioteca, o IDE não reconhece

    • @flaviorenatofrs
      @flaviorenatofrs 4 ปีที่แล้ว

      Acredito que para se usar ela tenha característica local. Seu arquivo de Arduíno deve ter na mesma pasta o arquivo Btn.h
      Foi por isso que na inclusão dela no projeto foi utilizada com aspas: #include "Btn.h"

    • @TheOrechio
      @TheOrechio 4 ปีที่แล้ว

      @@flaviorenatofrs não encontrei o link para download

  • @playmateck
    @playmateck 5 ปีที่แล้ว

    Olá Bruno, baixei a biblioteca e instalei no arduino mas não funcionou, alguma dica?

    • @flaviorenatofrs
      @flaviorenatofrs 4 ปีที่แล้ว

      O arquivo Btn.h deve estar na mesma pasta(diretório) do seu arquivo Arduíno e a chamada de inclusão tem que ter aspas.

    • @Elvis-tx7iy
      @Elvis-tx7iy 3 ปีที่แล้ว

      @@flaviorenatofrs manda para o meu email essa biblioteca, não encontrei, elvisalmeida06@gmail.com. Obrigado.

    • @michelrocha6878
      @michelrocha6878 3 ปีที่แล้ว

      @@Elvis-tx7iy se você recebeu o biblioteca, manda para o meu e-mail por favor. mychelrocha@hotmail.com

    • @Elvis-tx7iy
      @Elvis-tx7iy 3 ปีที่แล้ว

      @@michelrocha6878 na realidade é como o Flávio tinha dito, basta o arquivo Btn.h que ele escreveu esta na mesma pasta que funciona mas vou mandar sim. Não precisa incluir isso nas bibliotecas do arduino.

    • @DRAssestec
      @DRAssestec 3 ปีที่แล้ว

      @@Elvis-tx7iy e @Micehel Rocha por gentileza manda a biblioteca para o meu e-mail: rogeroak@outlook.com , obrigado.