A ideia deste experimento é produzir um som cuja frequencia depende da intensidade da luz.
Circuito:
1. Um LDR é conectado através do um resistor a entrada analogica do Arduino (no exemplo analog 0). No exemplo utilizamos R= 33 Kohms conectado no +V e o LDR em GND.
2. Utilizaremos a saida 9 do Arduino e apenas por precaução um resistor de 330 a 1 Kohms em serie com o alto falante. Veja a figura abaixo com o esquema
A foto da montagem também pode ser visualizada abaixo
O código segue abaixo
int LDR; //declara variavel
float VLDR;
int som; // variavel som para o alarme
void setup(){
Serial.begin(9600);
pinMode(A0, INPUT);// entrada A0
}
void loop(){
LDR = analogRead(A0);
VLDR=LDR*5.0000000/1024;
Serial.print(LDR);
Serial.print(" ");
Serial.print(VLDR);
Serial.println ( "\t");
delay(2);
int som = map(LDR, 100, 200, 100, 1000); // toca o som com uma frequencia que
//varia de 100 a 1000 Hz de acordo com a distancia:
tone(9, som, 10000);
}
Segue o link para o tutorial "Tone" que mostra como utiliza-lo lhttp://arduino.cc/en/Reference/Tone
O uso esta resumido abaixo
tone ( pino, frequência, tempo de duração )
Passos:
1. Cole o código acima na IDE do Arduino
2. Imprima os valores lidos no LDR e verifique o intervalo que pretende obter o sinal sonoro
3. A função " int som = map(LDR, 100, 200, 100, 1000)" fará esta conversão em valor lido no LDR (aqui está em decimal , varia de 0 a 1023 e está em vermelho) e a saída para o pino 9 será um sinal cuja frequência esta variando de 100 a 1000 e está em azul)
4 a função " tone(9, som, 10000)" indica; pino de saída , frequência, que no caso deixaremos dependente da distancia e portanto da leitura no LDR, e o tempo de duração em geral maior do que 100 ms, para retirar o ruido de fundo.
Segue abaixo video que mostra o efeito que se obtem com este circuito
Nenhum comentário:
Postar um comentário