Projeto de sensor de detecção de Luz com som

Este é um projeto que mostra a variação da intensidade da luz utilizando uma fotocélula com Arduino. De acordo com a variação da intensidade da luz, os leds acendem ou apagam e se não houver luz nenhuma, um buzzer apita. Neste projeto foi utilizado:

  • 1 Arduino UNO Rev.3
  • 1 fotocélula
  • 1 resistor de 10kOhm
  • 8 leds
  • 8 resistores de 220 Ohm
  • 1 buzzer

 

Primeiramente, faça as ligações como demonstrado abaixo:

A fotocélula é um resistor que varia de acordo com a intensidade da luz. Quanto maior a luminosidade, maior a resistência da fotocélula. Na figura acima, mostra um divisor de tensão com a fotocélula e um resistor de 10kOhm. Essa divisão é necessária para que a porta analógica A0 do Arduino possa detectar a sua variação. Assim se caso haja muita luminosidade, apenas 1 Led acenderá, se houver pouca luminosidade, alguns Leds acenderão e se houver nenhuma luminosidade, todos os leds acenderão e o buzzer tocará. A programação para o funcionamento está demonstrada abaixo:

#include <Tone.h>

int LDRpin=A0;
int LDRval=0;
Tone player;
int note[]={NOTE_A3,NOTE_G4};

void setup()    //Setup the output pins and play the buzzer
{
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
player.begin(10);
Serial.begin(9600);
}

void loop()
{
LDRval=analogRead(LDRpin);
if(Serial.available()>0)
{
Serial.println(LDRval);
}
delay(100);
if(LDRval>850)
{
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
player.stop();
}
if(LDRval>800 && LDRval<850)
{
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
player.stop();
}
if(LDRval>750 && LDRval<800)
{
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
player.stop();
}
if(LDRval>700 && LDRval<750)
{
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
player.stop();
}
if(LDRval>650 && LDRval<700)
{
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
player.stop();
}
if(LDRval>600 && LDRval<650)
{
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
player.stop();
}
if(LDRval<600)
{
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
player.play(note[1]);
}

}

Referências:

http://arduino.cc/en/

http://labdegarag1.lojatemporaria.com/arduino-original.html

http://labdegarag1.lojatemporaria.com/mini-fotocelula.html

http://www.ladyada.net/learn/sensors/cds.html

Exibições: 32077

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Carlos José em 20 novembro 2012 às 19:43

Opa, baseado nesse projeto, será que alguém pode me ajudar?

Ao invés de usar a LDR, queria usar o fotodiodo SFH203P, como posso ligar esse elemento no arduino e fazer funcionar?

O datasheet do SFH203P basta colocar no google que aparece, é da OSRAM.

Sei que precisa ligar alguma resitencia, será que precisa de algo mais?

Obrigado.

Comentário de Wallace Navarro Carvalho em 16 abril 2012 às 21:19
Comentário de Wiechert em 11 abril 2012 às 19:39

Sidney,

esta library gera tons em onda quadrada em um determinado pino com controle da frequencia e da  duração dos tons.

Olhe no link abaixo para saber mais:

http://code.google.com/p/rogue-code/wiki/ToneLibraryDocumentation

Comentário de Sidney Alves Bastos em 11 abril 2012 às 19:10

Amigos,

que biblioteca é esta <Tone.h>?

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço