Olá garagistas. Eu estou querendo fazer um programa onde um sinal entra no pino 2 e esse sinal faz acender um LED no pino 5 por 10seg e também acionar um buzzer no pino 4 por 500ms. Fiz esse sketch, mas não funcionou. Alguem pode me dar uma ajuda? Valeu!
int botao = 2; // Botao tem que ser no pino 2
int buzzer = 4;
int led = 5;
// ------------------------------- funcao principal Setup -------------------------------
void setup() {
pinMode(botao,INPUT_PULLUP); // botao entrada
pinMode (buzzer, OUTPUT); // saída buzzer
pinMode (led, OUTPUT);// saída LED
void loop(){
if (digitalRead (botao) ==0) {// se acionar o botão ele vai a 0
digitalWrite (led, HIGH);//acende led por 10seg
delay(10000);
digitalWrite (led, LOW);}
digitalWrite (buzzer, HIGH);aciona buzzer por 500ms
delay( 500);
digitalWrite(buzzer, LOW);
}
}
Tags:
Olá Carlos,
Quando vc comenta que não funcionou, o que deu errado? o programa não funcionou como esperado?
não acionou o botão? não subiu o código e deu um erro?
Beleza imhugo. Vou dar uma olhada.
Oi CAS, bom dia.
Não entendi a relação do titulo do seu tópico com o seu código.
Depois, voce está usando um botão no pino 2, mas não se preocupou com o "boucing", (repique),
que é um efeito muito comum em botões e chaves mecânicas.
Talvez seja este o seu problema principal.
Uma sugestão: procure por "debouncing" no google e encontrará diversos tópicos.
Uma copia de um pedaço de code:
if(botao ==1) // Se bot foi pressionado
{
delay(100); // Aguarde 100ms
if(botao ==1) // Se bot continua pressionado
{
............
}
}
Rui
Olá Rui. Realmente naun fiz isso no cód. Vou dar uma atenção maior para isso. Obrigado.
Pois é Pedroso, sou iniciante e ainda desconheço algumas funçoes. Meu projeto funcionaria assim.
aciono um botão, um buzzer ira tocar por 500ms e logo em seguida o LED se acenderia por 10seg. Abç
Fala Pedroso. Meu, desculpe. O cód naum subiu e deu erro
Atente-se ao que o Pedroso disse. No código que você colocou o LED permanecerá acesso por 10 segundos e só então que o buzzer irá tocar.
No quesito do bouncing, acredito que você não terá problemas com isso já que no seu código existe um intervalo de tempo muito grande entre uma leitura e outra do botão e o bouncing ocorre em um intervalo de tempo pequeno.
Uma coisa que pude reparar no seu código é que o colchetes do setup não está fechado, corrija isso e tente novamente.
O João Arthur matou a questão. O setup não está fechado. Ele quis dizer que está faltando a chave de fechamento "}".
Isso vai causar um erro de compilação.
Obs: tem outro erro na linha:
digitalWrite (led, LOW);}
Provavelmente essa chave de fechamento não deveria existir. Ou use ela para fechar o setup.
Uma dica para quem está iniciando é que, quando observar um erro de compilação:
1) Leia o erro. A mensagens de erro do compilador ajudam a identificar em que linha o erro ocorreu e também a natureza do erro.
2) Leu erro e, mesmo assim, não conseguiu resolver: Poste sua dúvida com a mensagem de erro e o código. Fica mais fácil para obter ajuda.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por