Olá amigos,
Sou novo aqui, comecei recentemente a utilizar arduino para um projeto, mas tem algo que quero fazer ainda, já tentei de várias formas e não consigo e gostaria da ajuda de vcs pra isso.
Quero que um buzzer ligue por causa de dois potenciômetros, quando um deles estiverem registrando a leitura no pino analógico maior que 500 por um tempo de 2,5 segundos, começa a tocar de forma alternada a cada 1 segundo, até que o pino do potenciômetro registre menos de 500. Caso, o pino analogico registre 500 por menos de 2,5 segundos, nada acontece. Mas não consigo fazer isso.
Já tentei com as funções delay, millis(), atachInterrupt, etc.
Neste momento a programação está assim:
int buzzer = 2;
int sensorEsquerda = A0;
int sensorDireita = A1;
unsigned int valorPotDireita;
unsigned int valorPotEsquerda;
int frequencia = 500;
void setup() {
pinMode (buzzer, OUTPUT);
pinMode (sensorEsquerda, INPUT);
pinMode (sensorDireita, INPUT);
digitalWrite (buzzer, LOW);
}
void loop (){
valorPotDireita = analogRead(sensorDireita);
Serial.println(valorPotDireita);
if (valorPotDireita > 500){
delay (2500);
tone(buzzer, frequencia);
delay (1000);
digitalWrite (buzzer, HIGH);
}
else {
digitalWrite (buzzer, LOW);
noTone (buzzer);
}
valorPotEsquerda = analogRead(sensorEsquerda);
Serial.println(valorPotEsquerda);
if (valorPotEsquerda > 500){
delay (2500);
tone(buzzer, frequencia);
delay (1000);
digitalWrite (buzzer, HIGH);
}
else {
digitalWrite (buzzer, LOW);
noTone (buzzer);
}
}
Poderiam me ajudar a concertar isso? Muito obrigado pela atenção.
Tags:
Olá Gustavo
Não testei, mas acho que a dica abaixo possa funcionar
if (valorPotDireita > 500 && (tempoMillis >= 2500)){
tone(buzzer, frequencia);
delay (1000);
digitalWrite (buzzer, HIGH);
}
No if está testando se as duas condições são válidas para entrar e executar o buzzer.
Terá que criar uma rotina que ao sair o tempoMillis seja zerado (tempoMillis = 0;)
Gustavo, um dos problemas é que depois do deley(2500) vc não verifica se o valor do pot continua maior que 500.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por