float tempo_aci;
float tempo_aci_led;
float delay_led;
int x;
int button;
void setup() {
// put your setup code here, to run once:
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, INPUT_PULLUP);
Serial.begin(9600);
analogReference(DEFAULT);
}
void loop() {
// put your main code here, to run repeatedly:
/*tempo_aci = (analogRead(A0)/1023) * 20;
tempo_aci_led = tempo_aci + 10;
delay_led = tempo_aci_led * 1000;
digitalWrite(9, HIGH);
delay(delay_led);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
delay(delay_led - 6000);
for (int x=0; x<3; x++) {
digitalWrite(10, LOW);
delay(1000);
digitalWrite(10, HIGH);
delay(1000);
}
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
delay(delay_led);
digitalWrite(11, LOW);
*/
button = digitalRead(5);
if (button == HIGH)
{
delay_led = 20000; // Verificar
digitalWrite(9, HIGH);
delay(delay_led);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
delay(delay_led - 6000);
for (int x=0; x<3; x++) {
digitalWrite(10, LOW);
delay(1000);
digitalWrite(10, HIGH);
delay(1000);
}
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
delay(delay_led);
digitalWrite(11, LOW);
digitalWrite(7, HIGH);
}
if (button == LOW)
{
digitalWrite(9, LOW);
}
}
/*
// Projeto 4 – Semáforo interativo
int carRed = 6; // estabelece o semáforo para carros
int carGreen= 5;
int carBlue = 3;
int button = 2; // pino do botão
int crossTime = 10000; // tempo para que os pedestres atravessem
int state =1;
unsigned long changeTime=0; // tempo desde que o botão foi pressionado
void setup() {
pinMode(carRed, OUTPUT);
pinMode(carGreen, OUTPUT);
pinMode(carBlue, OUTPUT);
pinMode(button, INPUT_PULLUP); // botão no pino 2
// acende a luz verde
Serial.begin(9600);
}
void loop() {
int tempo = 3;
for (int i=0;i<255;i++)
{ analogWrite(carBlue,i);
delay(tempo);
}
analogWrite(carBlue,0);
for (int i=0;i<255;i++)
{ analogWrite(carGreen,i);
delay(tempo);
}
analogWrite(carGreen,0);
for (int i=0;i<255;i++)
{ analogWrite(carRed,i);
delay(tempo);
}
analogWrite(carRed,0);
}
/*
state = digitalRead(button); // state | digitalRead(button);
// verifica se o botão foi pressionado e se transcorreram 5 segundos desde a última vez que
//isso ocorreu
if (state == LOW && (millis() - changeTime) > 10000) {
// Chama a função para alterar as luzes
{changeLights();
state = 1; }
}
Serial.print(state);
Serial.print(" ");
// changeTime = millis();
Serial.println((millis() - changeTime)/1000.);
}
void changeLights() {
digitalWrite(carGreen, LOW); // apaga o verde
digitalWrite(carYellow, HIGH); // acende o amarelo
delay(2000); // espera 2 segundos
digitalWrite(carYellow, LOW); // apaga o amarelo
digitalWrite(carRed, HIGH); // acende o vermelho
delay(1000); // espera 1 segundo, por segurança
digitalWrite(pedRed, LOW); // apaga o vermelho dos pedestres
digitalWrite(pedGreen, HIGH); // acende o verde dos pedestres
delay(crossTime); // espera por um intervalo de tempo predefinido
// pisca o verde dos pedestres
for (int x=0; x<10; x++) {
digitalWrite(pedGreen, HIGH);
delay(250);
digitalWrite(pedGreen, LOW);
delay(250);
}
// acende o vermelho dos pedestres
digitalWrite(pedRed, HIGH);
delay(500);
digitalWrite(carYellow, HIGH); // acende o amarelo
digitalWrite(carRed, LOW); // apaga o vermelho
delay(1000);
digitalWrite(carGreen, HIGH); // acende o verde
digitalWrite(carYellow, LOW); // apaga o amarelo
// registra o tempo desde a última alteração no semáforo
changeTime = millis();
// depois retorna para o loop principal do programa
}
*/