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
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 !
Ó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 !
por favor, sera que poderia disponibilizar a biblioteca? Obrigado pelas aulas, forte abraço
Impressionante..
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;
}
};
Aula show! Iria rodar no tinkercad, mas não é possível exportar a biblioteca para lá. De qualquer forma, irei usar em projetos futuros.
Boa tarde Professor. Não estou conseguindo encontrar no site o link para download da biblioteca.
Sabe como posso usar essa biblioteca para esp32? Quando vou compilar para a esp no Arduino IDE, ele mostra uma mensagem de erro
CFBCursos teria como disponibilizar o link para download
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?
olá fessor, coloca a pagina on-line e disponibiliza a biblioteca por favor! abc T+
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.
Também estava com este problema, faltou colocar no Setup pinMode(ledPin, OUTPUT);
Não achei o link da biblioteca Btn, pode enviar
Prof. a biblioteca "Btn.h" ainda tá dispensável para baixar? não achei ela no Site do canal.
tb n achei, copiei a mão só pra er que um cara nos comentários colou ela ali =/
Boa tarde! Por favor, como declara mais de um botão? Nesta parte "Btn btn = new Btn(btn_pino);"
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);
nao achei biblioteca btn
O Arquivo da Biblioteca não está compilando
Troquei o arquivo, confere lá
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.
Bom dia, poderia disponibiliza a biblioteca do botão.
Show
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
ao invés disso, poderia apenas usar um delay de 50 mili segundos depois do acionamento do botão?
Bom dia, não encontrei o link para baixar a biblioteca.
não consegui nem baixar.
Bom dia, não encontrei o link para baixar a biblioteca.
não consigo importar a biblioteca, o IDE não reconhece
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"
@@flaviorenatofrs não encontrei o link para download
Olá Bruno, baixei a biblioteca e instalei no arduino mas não funcionou, alguma dica?
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.
@@flaviorenatofrs manda para o meu email essa biblioteca, não encontrei, elvisalmeida06@gmail.com. Obrigado.
@@Elvis-tx7iy se você recebeu o biblioteca, manda para o meu e-mail por favor. mychelrocha@hotmail.com
@@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.
@@Elvis-tx7iy e @Micehel Rocha por gentileza manda a biblioteca para o meu e-mail: rogeroak@outlook.com , obrigado.