Codigo com push button

Bom dia,
preciso fazer um codigo onde ele funcione apenas uma vez apos apertar o botão

exemplo
usarei um botao e um modulo de som
apos apertar o botão o codigo do som pode ou não ser executado caso detect o som necessario e para novamente. para usar novamente é necessario que o botão seja novamente apertado.

Good Morning,
you posted your topic in the English language category, but you wrote it in Portuguese.
Ask moderators to change your category topic.

Bom dia,
você postou seu tópico na categoria de língua inglesa, mas escreveu em Português.
Peça aos moderadores para mudar seu tópico de categoria.

Você está pedindo autorização para faze-lo?

Your topic was MOVED to its current forum category as it is more suitable than the original

Seu tópico foi movido para a categoria atual do fórum, pois é mais adequado que o original

E o que é preciso fazer para o sistema saber se o botão tem de ser apertado de novo?

entao deixa eu te explicar melhor.
vou utilizar um botao e uma placa de detecção de som.
ao precionar o botao e soltar, a placa de som entra em funcionamento e caso ela detect o som o comando sera enviado e o programa deve parar. so podera funcionar novamente se eu apertar o botão.

Por favor, coloque um link para a placa de som que você vai usar, sem que pouco possa ser feito

int son = 2; // pino out do módulo conectado ao pino 2
int bot = 3; // pino 3--->botao--->GND

void setup() {
  pinMode (son, INPUT);
  pinMode (bot, INPUT_PULLUP);
}

void loop {
  while (digitalRead (bot) == HIGH); // aguarde a pulsação
  while (digitalRead (bot) == LOW);  // aguarde a liberação do botão
  while (digitalRead (son) == LOW) { // enquanto não houver som, ele funciona
    // seu programa
  }
}

13:6: error: variable or field 'loop' declared void
14:3: error: expected primary-expression before 'while'
14:3: error: expected '}' before 'while'
15:3: error: expected unqualified-id before 'while'
16:3: error: expected unqualified-id before 'while'
16:36: error: expected unqualified-id before '{' token

int son = 2; // pino out do módulo conectado ao pino 2
int bot = 3; // pino 3--->botao--->GND
int led1 = 10;
int led2 = 13;
void setup() {
pinMode (son, INPUT);
pinMode (bot, INPUT_PULLUP);
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);

}

void loop {
while (digitalRead (bot) == HIGH); // aguarde a pulsação
while (digitalRead (bot) == LOW); // aguarde a liberação do botão
while (digitalRead (son) == LOW);{// enquanto não houver som, ele funciona
// seu programa
if (digitalRead(son) == HIGH)

{

digitalWrite(led2, HIGH);
delay (500));
digitalWrite(led2, LOW);

}
}

Desculpe, esquecimento imperdoável e não testando a compilação, você deve colocar:

void loop () {

Muito obrigado meu amigo
funcionou perfeitamente graças a você.

deixa eu te perguntar uma duvida se é possivel.
sobre esse modulo de detecção de som, eu poderia limitar a captação de sons de certas frequencias?? exemplo gostaria que ele so funcionasse com frequencias de 4000hrz a 6000hrz.

Não com esse módulo, esse módulo só detecta o volume do som, (ajustável com o trimmer), você terá que usar um com saída analógica como:

E detectar essa faixa de frequências? Suponho que sim (não sei como fazê-lo), mas talvez usar uma biblioteca de transformação Fourrier consiga algo. Para isso, outro colega terá que ajudá-lo.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.