Neste tutorial vou falar sobre as resistências LDR (Light-Dependent Resistor). As foto-resistências LDR são um tipo de resistências cujo valor resistivo varia em função da luz que incida sobre elas , o que as faz especialmente úteis em sistemas automáticos. Além disso, as resistências LDR não são apenas afetadas pela luz visível, o seu valor resistivo também vai variar com a luz infravermelha e ultravioleta. Devido às suas caraterísticas poderá funcionar como sensor de luminosidade em vários projetos.
Os LDR estão compostas principalmente por Sulfeto de cádmio (CdS). O cadmio é reagente à luz, deixando que os seus eletrões se movam livremente, permitindo a passagem da corrente elétrica.
O seu comportamento é o seguinte:
Mais luz = menor resistência eléctrica
Menos luz = maior resistência eléctrica
Vamos ver agora como usar uma das resistências LDR com o Arduino.
Montagem e ligações
Ligamos uma perna da resistência LDR a GND (negativo) e a outra perna ao pino analógico ou (Ao) do Arduino. Seguidamente intercalamos uma resistência de 10K entre o pino Ao do Arduino e o pino VCC (5v) do Arduino.
As resistências LDR não têm polaridade, por isso não importa em que perna ligamos.
Para mais, informações, pode ver esta imagem:
Sketch de teste
Agora vejamos vários sketchs se testes com diferentes formas de interagir com as resistências LDR:
Obter o valor da resistência LDR
int Pin_LDR = A0; //Usamos o pino 0 analógico (A0) int Lectura_LDR = 0; //Variável do tipo Integer para armazenar a leitura do LDR void setup(){ Serial.begin(9600); //Iniciamos a comunicação serie } void loop(){ //Obtemos a leitura da resistência LDR //Armazenámo-la numa variável de tipo integer Leitura_LDR = analogRead(Pin_LDR); Serial.println(Lectura_LDR); //Mostramos a leitura pelo monitor serie delay(1000); //Pequena pausa para a leitura ser mais fácil }
Ligando e desligando um led baseado num limiar (threshold)
int LEDPin = 13; //Definimos o pino do LED int LDRPin = A0; //Definimos o Pino do LDR int threshold = 100; //Definimos o valor do limiar void setup() { pinMode(LEDPin, OUTPUT); //Definimos o pino do LED como saída pinMode(LDRPin, INPUT); //Definimos o pino o LDR como entrada } void loop() { //Obtemos leitura da resistência LDR //Armazenamos numa variável de tipo integer int input = analogRead(LDRPin); if (input > threshold) { //Se o valor do LDR é maior que o valor do limiar digitalWrite(LEDPin, HIGH); //Ligamos o LED } else { //Em caso contrário digitalWrite(LEDPin, LOW); //Apagamos o LED } }
Gostaram deste artigo ? Deixem o vosso comentário no formulário a baixo.
Não se esqueçam de fazer like na nossa página no facebook.
Todos os produtos utilizados neste artigo podem ser encontrados na loja de componentes eletrónicos ElectroFun.