Olá pessoal, neste projeto você aprenderá como fazer uma barra de LED’s e LDR como sensor de luminosidade. Você perceberá que conforme a variação da luminosidade e consequentemente variação de resistência, a sequência de LED’s irão acender ou apagar. Os códigos serão todos comentados para melhor entendimento, podendo ser retirados após a compreensão de cada linha. Bom trabalho !!!
COMPONENTES NECESSÁRIOS
1 Arduino Uno R3
1 Protoboard
1 LDR (Light Dependent Resistor(Resistor dependente de luz))
8 LED’s de qualquer cor
8 Resistores de 330 ohms *
1 Resistor de 10K ohms
Fios jumpers
* Esse valor pode ser diferente, dependendo do LED que você utilizar.
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB. Agora, pegue todos os componentes acima e conecte-os como mostra a figura.
Observação importante: Verifique a polaridade dos LED’s.
Não importa se você utiliza fios de cores diferentes ou furos diferentes na protoboard, desde que os componentes e os fios estejam conectados na mesma ordem da figura. Tenha cuidado ao inserir os componentes na protoboard. Caso sua protoboard seja nova, a superfície dos furos ainda estará rígida. A não inserção cuidadosa dos componentes pode resultar em danos. Certifique-se de que todos os componentes estejam conectados corretamente. Quando você estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e conecte o cabo USB.
AGORA VAMOS AO CÓDIGO
// Projeto 6 – Barra de LED’s e LDR
/* A função Map do Arduino, mapeia uma faixa de valores em outra.
Segundo o site do Arduino temos o seguinte prototipo:
map(value, fromLow, fromHigh, toLow, toHigh)
onde,
value: Informa o valor lido da porta analógica.
fromLow: Início da escala de origem.
fromHigh: Fim da escala de origem.
toLow: Início da escala de destino.
toHigh: Fim da escala de destino.
Esta função converte os parâmetros PWM de 0, 1023 para a escala de 0, 255
*/
int ldrMap = 0; // Variável iniciando com valor igual a 0.
int analogPin = 1; // Variável utilizando o pino analógico A1.
void setup()
{
for(int a = 0; a<=10; a++) // Iniciando os pino digitais do Arduino...
pinMode(a, OUTPUT); // como saída
}
void loop()
{
// Verifica a função Map, o 22 pode ser mudado
ldrMap = map(analogRead(analogPin), 0, 1023, 22, 0);
for(int a = ldrMap; a>=0; a--) // Quando a resistência do LDR diminui...
digitalWrite(a, HIGH); // acende todos os LED's
for(int a = ldrMap; a<=10; a++) // Quando a resistência do LDR aumenta...
digitalWrite(a, LOW); // apaga todos os LED's
}
Para certificar se o código está correto pressione o botão Verify/Compile. Se tudo estiver correto pressione o botão Upload para fazer o upload do código para seu Arduino. Pronto, agora verifique o que acontece quando você muda a luminosidade(resistência) no LDR.
fonte: facacomarduino.info