Sensing light resultado
Tutorial: Sensing light – controlando o brilho do LED com LDR
Índice

Neste tutorial, iremos aprender a criar um Sensing light (sensor de luz) com LDR para acender o LED quando o ambiente estiver escuro.

 
1. Introdução

Observe os postes de luz que ficam na sua rua: eles acendem assim que um sensor detecta ausência de luz no ambiente. Neste tutorial, iremos fazer algo semelhante, mas em proporções menores utilizando o LDR.

 
2. Estrutura do programa

Segue a estrutura completa do programa:

Primeiramente, vamos declarar quatro variáveis, uma para identificar o LDR em uma entrada analógica (int fotocelula = A1;), outra para ler a informação que vem do LDR (int leituraFotocelula;), a terceira é para identificar o LED (int led = 5;) e a última para dizer qual a intensidade que ele deve brilhar (int brilhoLed;).

Outro detalhe importante, é que algumas placas não possuem saídas analógicas, mas apenas entradas (o Arduino UNO é uma delas). Apesar disso, alguns pinos chamados PWM (Pulse-Width Modulation), ou modulação por largura de pulso, “simulam” os resultados como se fossem saídas analógicas. Esses pinos PWM estão identificados com um “~”.

É preciso ficar atento, pois somente essas saídas proporcionam o efeito desejado de “intensidade” de brilho ou, no caso de motores, a velocidade.

Em void setup(), vamos descrever o LED deve como uma saida (pinMode(led, OUTPUT);). Não é necessário declarar o LDR como entrada (INPUT), pois pinMode serve apenas para pinos digitais.

E na última parte, void loop(), descrevemos o procedimento. Instruimos a seguinte informação ao programa: a leitura de informação virá do LDR (leituraFotocelula = analogRead(fotocelula);). A segunda linha comanda a intensidade do brilho usando o comando map. Este “mapeaia” valores seja para arrendondar, seja para inverter; no nosso tutorial isso foi necessário para inverter a ação do LED em relação ao LDR – se este não detectar luz no ambiente o LED acende.

Quando escrevemos 1023 e 512 estamos nos referindo à tensão analógica real que é lida. O valor 1023 está para a fonte de 5V e, significa que o Led está aceso. O oposto também é verdade, 512 ou 0 -> o Led está apagado. Utilizando o map dizemos ao programa para “arredondar” os valores e inverter, ou seja, de 1023 o valor é mapeado” para 255 e 512 para 0.

Na linha “brilhoLed = constrain(brilhoLed, 0, 255);”, dizemos ao programa para restringir/ limitar os valores de 0 até 255. Por padrão, a leitura (digitalRead) tem o valor máximo de 1023 e digitalWrite o valor máximo é de 255, por isso o map e o constrain se fazem necessários.

Finalizamos o loop ordenando ao programa que brilhe de forma invertida conforme o que foi lido pelo LDR (analogWrite(led, brilhoLed);).

 
3. Componentes e materiais

  • Seis cabos jumper macho-macho.
  • Um LED.
  • Um LDR.
  • Uma protoboard.
  • Um resistor de 1k.
  • Um resistor de 10k.
  • Um Arduino UNO.
  • Um cabo USB.

 

cabo-jumper

Cabos jumper

 

led

LED

 

IMG_1796

LDR

 

protoboard

Protoboard

 

IMG_1801

Resistor 1k

 

IMG_1795

Resistor 10k

 

placa arduino uno

Arduino UNO

 

cabo usb

Cabo USB

 

4. Montagem

Começaremos pelas menores peças: posicione o LED em qualquer coluna da protoboard; nas “casas” abaixo coloque o resistor de 1k e, um cabo jumper preto em uma das “pernas” desse resistor com a parte negativa da protoboard, mais um outro cabo jumper vermelho em uma das “pernas” do LED com o pino 5 do Arduino.

 

montagem-ldr-led

 

Com o LDR, faremos o mesmo processo com a adição de um cabo. Posicionamos o LDR em um espaço na protoboard, logo abaixo colacamos o resistor de 10k; em uma das extremidades do resistor alocamos o cabo jumper preto na parte negativa da protoboard, outro cabo vermelho na extremidade do LDR conectando na fonte de alimentação 5V e o último cabo amarelo conectamos exatamente na coluna onde posicionamos o LDR e o resistor.

Para finalizar as conexões da protoboard, devemos conectar o polo negativo da protoboard com o GND do Arduino.

 

montagem-ldr

 

O resultado tem que ser parecido com isto:

 

resultado-fritizing-completo

Resultado do Sensing light

 

Sensing light

Sensing light

 

5. Upload

Lembre-se de conectar o Arduino à entrada USB do seu computador. Verifique se a placa e portas estão já estão configuradas na IDE. Em caso de dúvida, clique aqui e reveja como fazer.

Para efetuar o Upload, clique na seta indicada em vermelho.

 

upload

Upload do programa

 

6. Dicas

  • Troque de porta (entrada USB).
  • Reinicie a placa.
  • Verifique se as placas ou os componentes estão com mau contato.

No próximo tutorial, iremos aprender a controlar o brilho de um LED RGB usando um potenciômetro.

Produtos
Promoção!
Arduino UnoArduino Uno

Uno SMD – Arduino compatível

R$59,90 R$54,90

Ideal para iniciantes, o Uno é um Arduino compatível bem capaz, barato e com diversos shields e sensores compatíveis disponíveis. Se você está começando a aprender sobre microcontroladores e Arduinos, esta é a placa perfeita! Ela é a nossa placa principal nos nossos tutoriais de Arduino.

protoboard-830-2Out Of Stock

Protoboard transparente 830 pontos

R$24,90

Protoboard transparente com 830 pontos para prototipagem é ideal para trabalhos elétricos e eletrônicos com Arduino e microcontroladores em geral. É fácil tem muito espaço para conectar leds, cabos, resistores entre outros.

Os pólos negativos e positivos estão bem identificados para facilitar seu trabalho com vários componentes.

ldr

LDR

R$1,90

O LDR é um resistor cuja resistência varia em função da luminosidade que incide sobre ele, devido ao material fotossensível que cobre o componente.

É possível utilizá-lo para fazer um Dimmer, Theremin, guia condutor de robôs, entre outros – quanto mais luz ele detectar ele aumenta ou diminui o brilho de um Led, a frequência de um Buzzer, etc.

 

Deixe uma resposta

Seu endereço de e-mail não será publicado. Campos obrigatórios estão marcados *

limpar formulárioPostar Comentário