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);
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
Códigos Fonte para outros sons que voce pode obter incluindo melodias estão disponiveis na pasta abaixo
Se você quiser baixar uma biblioteca com as notas musicais para o Arduino. Segue o link
Veja outros exemplos para gerar sons com o Arduino
Nenhum comentário:
Postar um comentário