Galera, fiz um código em C para acender palmas, o problema é que o microfone de eletreto varia muito. Ou seja tem horas que ele bate 200,3,10,5, e assim vai aleatorio.
O que percebi e que quando bato palma o monitor marca 0, então fiz o código assim, mas as vezes ele bate 0 do nada e o led acende, queria algo fixo 0 ou 1.
boolean ValorSensor;
boolean estadoLed = 0;
const int PinoSensor = 0;
const int led1 = 8;
void setup(){
pinMode(led1, OUTPUT);
Serial.begin(9600);
}
void loop(){
ValorSensor = analogRead(PinoSensor);
Serial.print("Valor do Sensor = ");
Serial.println(ValorSensor);
if (ValorSensor == 0){
estadoLed = !estadoLed ;
}
digitalWrite(led1,estadoLed);
}
Tags:
Penso que o que pretende é "capturar" o evento PinoSensor igual a zero volts; nesse caso o melhor será usar "interrupts".
Com "interrupts" o evento é detectado e é chamada uma função para tratar do mesmo.
Desculpe a perguta, mas é tipo isso mesmo que falou, quero que capture o evento.
Mas como uso o comando interrupts?
Este link é o suficiente para perceber o funcionamento:
http://www.jeremyblum.com/2011/03/07/arduino-tutorial-10-interrupts...
Opa vlw, tentei isso e funcionou usei outro exemplo na verdade do próprio site arduino, só que mesmo assim o eletreto é muito sensivel, então acho que terei q usar um potenciometro para o valor ficar em 0 e 1 né? Como coloco este potenciometro? Tem algum exemplo para ligar, desculpe é por que sou leigo na parte eletrica...
O meu é daqueles que já vem com circuito pronto e tem uma saída 5vdc , gnd e analogica, só estou usando ele...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por