eu não consigo por o LRD, olha o programa :
//**Programa Semaforo interativo
//com detecção de avanço ao sinal vermelho.
//*** Criando as variaveis dos led’s e organizando as portas ***
int LEDVERDE = 3;
int LEDAMARELO = 4;
int LEDVERMELHO = 5;
int LEDVERDE1 = 6;
int LEDVERMELHO1 = 7;
int LEDVERMELHO2 = A0; //Led do LDR
int VALORLDR = 0;
unsigned long previa = 0; //Amazena o ultimo valor
int estado = 0; // Estado inicial dos led’s
bool CARROVERMELHO = false;
//=========================================================================================
// ***Programando os pinos dos led’s como entrada ***
void setup() {
pinMode(LEDVERMELHO, OUTPUT);
pinMode(LEDAMARELO, OUTPUT);
pinMode(LEDVERDE, OUTPUT);
pinMode(LEDVERMELHO1, OUTPUT);
pinMode(LEDVERDE1, OUTPUT);
pinMode(LEDVERMELHO2, OUTPUT);
}
//==========================================================================================
//Começando a fazer o pregrama funcionar
void loop() {
//Immprime o valor do LDR no monitor serial
Serial.println(VALORLDR);
//***O valor será lido entre 0 e 1023
VALORLDR=analogRead(LEDVERMELHO2);
unsigned long TempoTotal = millis();
if (TempoTotal - previa <= 2000){
// Acende o led vermelho dos carros e o led verde dos pedestres
digitalWrite(LEDVERMELHO, 1);
CARROVERMELHO = true;
digitalWrite(LEDAMARELO, 0);
digitalWrite(LEDVERDE, 0);
digitalWrite(LEDVERMELHO1, 0);
digitalWrite(LEDVERDE1, 1);
}
//===========================================================================================
if (TempoTotal - previa > 2000 && TempoTotal - previa < 4000){
// Acendendo o led verde dos carros e o led vermelho dos pedestres
digitalWrite(LEDVERMELHO, 0);
digitalWrite(LEDAMARELO, 0);
digitalWrite(LEDVERDE, 1);
digitalWrite(LEDVERMELHO1, 1);
digitalWrite(LEDVERDE1, 0);
}
//============================================================================================
if (TempoTotal - previa >= 4000 && TempoTotal - previa<=6000){
// Acendendo o led amarelo dos carros e mantendo o led vermelho dos pedestres aceso
digitalWrite(LEDVERMELHO, 0);
digitalWrite(LEDAMARELO, 1);
digitalWrite(LEDVERDE, 0);
digitalWrite(LEDVERMELHO1, 1);
digitalWrite(LEDVERDE1, 0);
}
//=============================================================================================
if (CARROVERMELHO && VALORLDR > 600){
digitalWrite(LEDVERMELHO2, 1);
}
else {
digitalWrite(LEDVERMELHO2, 0);
}
// Retornando o programa para o inicio, assim deixando o loop eterno
if (TempoTotal - previa >= 6000){
previa=TempoTotal;
}}