Com o circuito montado para leitura no LDR, montamos um programa e um sistema físico em que tenhamos uma sequencia de leds acendendo conforme a distancia de bloqueio de luz no LDR.
A sequencia deve ser a seguinte: Com a dimiuição da distância acenderemos os leds na seguinte sequência:
* Maior distancia: led azul
* Distancia intermediaria1 (mais próxima led verde)
* Menor distancia vermelho
Para acender os leds use as portas digitais e inserimos linhas de programação com condições de “if”, conforme o código-fonte abaixo:
Obs: O vídeo, esquema e código-fonte são os mesmos do R1
int LDR; //declara a variavel
unsigned long tempo; //declara tempo
int LedAzul = 7;
int LedVerde = 6;
int LedVermelho = 5;
void setup() {
pinMode(A0, INPUT);
pinMode(LedAzul, OUTPUT);
pinMode(LedVerde, OUTPUT);
pinMode(LedVermelho, OUTPUT);
Serial.begin(9600);
}
void loop() {
tempo= millis(); // base de tempo para a coleta
LDR = analogRead(A0);
{
Serial.print(tempo);
Serial.print(" "); // introduz um espaço entre as colunas
Serial.print(" ");
Serial.print(LDR);
if ( LDR > 100){
digitalWrite(LedAzul,HIGH);
}
else {
digitalWrite(LedAzul,LOW);
}
if ( LDR > 150){
digitalWrite(LedVerde,HIGH);
}
else {
digitalWrite(LedVerde,LOW);
}
if ( LDR > 200){
digitalWrite(LedVermelho,HIGH);
}
else {
digitalWrite(LedVermelho,LOW);
}
}
Serial.println(); // imprime em linhas
delay(100);
}
Nenhum comentário:
Postar um comentário