Sensor de Luz com Arduino | ZigTek
NOVIDADES:
Carregando...

Sensor de Luz com Arduino


Hoje apresentamos como utilizar um simples LDR (sensor de luz) com o Arduino.
Os LDR's caracterizam-se por fazer variar a sua resistência interna de acordo com a luz que incide sobre eles.
Visto que estes componentes reduzem a sua resistência interna com o aumento de luz, vamos ligar um dos terminais aos 5volts (VCC) e o outro a entrada analógica 0, assim como se mostra na imagem seguinte. É necessário ainda colocar uma resistência entre a saída do sensor e os 0 volts (GND), de forma a reduzir um pouco a tensão na entrada desta porta analógica.



Após a montagem deve proceder-se a programação do Arduino.
É necessário apenas ler os dados da porta analógica 0 e envia-los através da porta serie.
o código deve ser o seguinte:

void setup() { //função de inicialização
Serial.begin(9600); //abertura da porta a 9600 bps
}

void loop() { //função loop
int sensorValue = analogRead(A0); //leitura da porta analógica 0
Serial.println(sensorValue, DEC); //envio do inteiro lido via porta serie
delay(500); //compasso de espera de 500 milissegundos
}

Como pode ver-se no código do Arduino é aberta uma porta serie a 9600 bps e são enviados via porta serie os dados da porta analógica 0 com um compasso de 500 milissegundos, na aplicação do PC deve ter-se em atenção esta informação.
no código do pc deve criar-se uma variavel global de tipo serialport, como se mostra a seguir:

SerialPort porta = new SerialPort();

para se utilizar a porta serie deve adicionar-se o seguinte using:
using System.IO.Ports;

deve criar-se um botão para que seja feita a ligação ao modulo externo, e uma caixa de texto onde deve indicar-se o nome da porta serie a utilizar, por ultimo deve criar-se um timer com um período de 500milissegundos.
o texto a seguir mostra o conteúdo da função do botão:

porta.BaudRate = 9600; // configuração da velocidade da porta serie
porta.PortName = textBox1.Text; // atribuição da porta serie a abrir
try // bloco try catch para que seja tratada a excepção de problemas na abertura da porta serie
{
porta.Open(); //abertura da porta serie
timer1.Start(); // inicio do timer responsável por ler os dados recebidos pela porta serie
}
catch
{
MessageBox.Show("Impossivel abrir a porta pretendida, por favor verifique se está a ser usada, ou se ela existe"); // mensagem de erro na abertura da porta serie
}
}

Código do timer:
string lido = porta.ReadLine(); // leitura da porta serie
lido = lido.Substring(0, lido.Length - 1); // formatação dos dados recebidos
progressBar1.Value = Convert.ToInt32(lido); // atribuição do valor recebido ao progressbar , para que se possa ter a noção mais facilmente da intensidade da luz.




Código do Arduino e do PC(Visual Studio C#):

5 comentários: Leave Your Comments

  1. Boa noite!! Fiz testes aqui com seu cidigo Vlw pela ajuda!! Mais uma coisa, qual o software que vc usou pra desenhar esse Arduino com os componentes?

    ResponderEliminar
  2. Olá Franciel.
    Ficamos contentes que tenhas conseguido usar este código. O software para fazer estas imagens é o Fritzing. esté disponível no site: http://fritzing.org/

    ResponderEliminar
  3. ola tenho uma duvida gostaria de ligar ldr`s no teclado do meu pc no intuito de escrever determinada letra quando não existir luz é possivel ?..deve haver uma alimentação para o LDR`s?... e a instalação como poderia ser simplificada pois sou leigo nesta area......muito obrigado antecipadamente...meu e-mailé
    adrianoviepie@hotmail.com

    ResponderEliminar
  4. Olá Prof. ViePie.
    Se a ideia é iluminar o teclado eu sugeria utilizar LEDs com ligação USB.
    Se utilizar o Arduino poderia utilizar o sensor de luz (LDR) para verificar a luz ambiente e ligar LEDs nas portas digitais do Arduino, para iluminar o teclado quando estivesse escuro.
    Não sei se ajudámos.
    Cumprimentos.

    ResponderEliminar
  5. ola obrigado pela explicação...gentil
    porem minha duvida é a seguinte....
    quero colocar um ldr no teclado de forma que este na aisencia de luz acione a tecla....
    ou seja que escreva determinada tecla...
    ja mapiei a tecla na placa do teclado...só falta instalar este sistema....desculpe se me falta termos tecnicos ....me envie e-mail por favor...
    adrianoviepie@hotmail.com

    obrigado...po ajudar

    ResponderEliminar