Boa noite pessoal, primeira postagem minha no grupo. Estou sem acentuacao no meu teclado e sem saco para consertar isto novamente agora pois minha cabeca esta pensando Arduino desde quando acordo ate quando durmo. kkkk
Estou precisando de tirar uma duvida com sensores LDR e a programacao que fiz pois os LEDs nao estao funcionando como deveriam.
O projeto que estou fazendo segue esta logica:
1 - 3 sensores LDR irao fazer a medicao da luz do ambiente.
2 - Cada sensor LDR funcionara em conjunto com um par de LEDs.
3 - Quando a luz no sensor for alta, acende LED 1 e apaga o 2. E vice-versa.
Por algum motivo o codigo que fiz funciona perfeitamente para um grupo de 1 LDR e 2 LEDs mas quando aumento as linhas de codigo para abrigar mais 2 sensores LDR e seus respectivos LEDs, o sistema inteiro age de maneira estranha, com luzes de LED ficando fracas e nao obedecendo o codigo que as faz acender ou apagar.
Segue o codigo que fiz:
int sensor0 = 0; //Pino analógico em que o sensor 0 está conectado.
int sensor1 = 1; //Pino analógico em que o sensor 1 está conectado.
int sensor2 = 2; //Pino analógico em que o sensor 2 está conectado.
int valorSensor0 = 0; //variável usada para ler o valor do sensor em tempo real.
int valorSensor1 = 1; //variável usada para ler o valor do sensor em tempo real.
int valorSensor2 = 2; //variável usada para ler o valor do sensor em tempo real.
const int ledVerde0 = 2;
const int ledVermelho0 = 3;
const int ledVerde1 = 4;
const int ledVermelho1 = 5;
const int ledVerde2 = 6;
const int ledVermelho2 = 7;
//Função setup, executado uma vez ao ligar o Arduino.
void setup(){
//Ativando o serial monitor que exibirá os valores lidos no sensor.
Serial.begin(9600);
//Definindo pinos digitais dos leds como de saída.
pinMode(ledVerde0,OUTPUT);
pinMode(ledVermelho0,OUTPUT);
pinMode(ledVerde1,OUTPUT);
pinMode(ledVermelho1,OUTPUT);
pinMode(ledVerde2,OUTPUT);
pinMode(ledVermelho2,OUTPUT);
}
//Função loop, executado enquanto o Arduino estiver ligado.
void loop(){
//Lendo o valor do sensor.
int valorSensor0 = analogRead(sensor0);
int valorSensor1 = analogRead(sensor1);
int valorSensor2 = analogRead(sensor2);
//Os valores da luminosidade podem ser alterados conforme a necessidade.
//Luminosidade baixa.
if (valorSensor0 < 750) {
apagaLeds();
digitalWrite(ledVermelho0,HIGH);
}
if (valorSensor1 < 750) {
apagaLeds();
digitalWrite(ledVermelho1,HIGH);
}
if (valorSensor2 < 750) {
apagaLeds();
digitalWrite(ledVermelho2,HIGH);
}
//Luminosidade alta.
if (valorSensor0 >= 750) {
apagaLeds();
digitalWrite(ledVerde0,HIGH);
}
if (valorSensor1 >= 750) {
apagaLeds();
digitalWrite(ledVerde1,HIGH);
}
if (valorSensor2 >= 750) {
apagaLeds();
digitalWrite(ledVerde2,HIGH);
}
//Exibindo o valor do sensor no serial monitor.
Serial.println(valorSensor0);
Serial.println(valorSensor1);
Serial.println(valorSensor2);
delay(50);
}
//Função criada para apagar todos os leds de uma vez.
void apagaLeds() {
digitalWrite(ledVerde0,LOW);
digitalWrite(ledVermelho0,LOW);
digitalWrite(ledVerde1,LOW);
digitalWrite(ledVermelho1,LOW);
digitalWrite(ledVerde2,LOW);
digitalWrite(ledVermelho2,LOW);
}
Segue tambem uma foto de como esta montada a protoboard. Na foto estou medindo somente um sensor pois ja estava desistindo de fazer tudo funcionar, portanto desconsiderem a posicao dos fios e analisem por favor somente a posicao dos componentes LDR, LEDs e resistores.
Obrigado!