LusoRobótica - Robótica em Português
Robótica => Discussão geral sobre robótica => Tópico iniciado por: dio123 em 10 de Outubro de 2009, 09:26
-
Voltei a tentar a fazer novamente o sensor de som, para fazer como este neste topico http://lusorobotica.com/index.php/topic,809.0.html (http://lusorobotica.com/index.php/topic,809.0.html) .
O problema é que nao tinha o 2n3904 trocei por bc 547.
Montei um esquema de várias vezes, e estou desde 7h30m a tentar montar o esquema mas nada funciona.
Com o codigo em baixo e igual ao do topico, acrscentei a opçao para enviar os valores para o pc.
em silencio o led fica a piscar e tenho valores de 640. Depois trocei o valor de 100 por 600, e o led nao pisca e tenho valores de 440.
depois Defeni os valores para 400 e tenho valores de 640.
Mesmo que grite os valored não mudam.
desde já
#define INPUT_PIN 5
#define OUTPUT_PIN 3
#define NOISE_GATE 400
#define DELAY 100
unsigned char state;
unsigned short rd;
void setup() {}
void loop() {
rd = analogRead(INPUT_PIN);
if (rd > NOISE_GATE) {
state = ~state;
analogWrite(OUTPUT_PIN, state);
delay(DELAY);
}
}
-
Tens esta variável:
rd = analogRead(INPUT_PIN);
Esta variavel tem o valor do pin onde supostamente ligaste o micro.
Faz um write desse valor na consola em loop para veres o que ele está a receber e depois decidires qual o valor de Threshold que tens de pôr.
Não te esqueças de pôr um delayzito. ;)
-
adaptei um programa que tinha feito para um piezo de sensor de som e mesmo assim nao funciona como deve ser.
Mesmo que esteja sem muisica ele dá-me valores de 512 se puser musicas alta fica com valores há volta de 512 .
int ledPin1 = 3; /7pino no led
int Sensor =5; //pino do sensor
int val = 0; //variavel onde fica guardado o valor lido
int lvermelho = 0; //valor que decide quando o som detectado
void setup() {
pinMode(ledPin1, OUTPUT);
Serial.begin(9600);
}
void loop() {
val = analogRead(Sensor);
if (val>= lvermelho) {
Serial.println(val);
Serial.println (analogRead(Sensor));
digitalWrite(ledPin1, HIGH);
Serial.println(val);
digitalWrite(ledPin1,LOW);
val=0;
delay(10);
}
}
desde já
-
Tens isso ligado correctamente (hardware) ?
-
no arduino está bem ligado, o maior problema é valor nao variar com a musica alta e a musica baixa
-
Como é que tens isso ligado ao Arduino?
-
é esquesito, dio123, pois já construi esse sensor, e o site onde o descobri, refere que foi usado um BC337, por isso o 547, sendo um NPN, também deveria dar.
http://tinkerlog.com/2007/05/20/cheap-sound-sensor-for-avr/ (http://tinkerlog.com/2007/05/20/cheap-sound-sensor-for-avr/)
Estou mais inclinado para apostar que o problema aí é do circuito do sensor. Confirma as ligações.