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

Título: sensor som
Enviado 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á

Citar
#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);
  }
}
Título: Re: sensor som
Enviado por: microbyte em 10 de Outubro de 2009, 12:31
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. ;)
Título: Re: sensor som
Enviado por: dio123 em 10 de Outubro de 2009, 15:38
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 .

Citar
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á
Título: Re: sensor som
Enviado por: Tyran em 10 de Outubro de 2009, 16:39
Tens isso ligado correctamente (hardware) ?
Título: Re: sensor som
Enviado por: dio123 em 10 de Outubro de 2009, 17:51
no arduino está bem ligado, o maior problema é  valor nao variar com a musica alta e a musica baixa
Título: Re: sensor som
Enviado por: microbyte em 10 de Outubro de 2009, 23:21
Como é que tens isso ligado ao Arduino?
Título: Re: sensor som
Enviado por: tcustodio em 11 de Outubro de 2009, 01:47
é 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.