Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Liga led com tempos variados
- // para uso educativo
- // Rui 20/05/2015
- int Botao = 2; // Botão tem que ser no pino 2
- int Led0 = 4; // Leds
- int Led1 = 5;
- int Led2 = 6;
- int Led3 = 7;
- int Led4 = 8;
- int Led5 = 9;
- int Led6 = 10;
- int Led7 = 11;
- int Led8 = 12;
- int Led9 = 13;
- long Tempo[10]; // tempo de acendimento do LED
- int BotaoSeq = 0; // Sequencia de acendimento do LED
- // ------------------------------- Seup ---------------------------
- void setup()
- {
- pinMode(Botao,INPUT); // botao entrada
- digitalWrite(Botao,HIGH); // Pull-up
- pinMode(Led0,OUTPUT); // Led0 Saida
- pinMode(Led1,OUTPUT); // Led1 Saida
- pinMode(Led2,OUTPUT); // Led2 Saida
- pinMode(Led3,OUTPUT); // Led3 Saida
- pinMode(Led4,OUTPUT); // Led4 Saida
- pinMode(Led5,OUTPUT); // Led5 Saida
- pinMode(Led6,OUTPUT); // Led6 Saida
- pinMode(Led7,OUTPUT); // Led7 Saida
- pinMode(Led8,OUTPUT); // Led8 Saida
- pinMode(Led9,OUTPUT); // Led9 Saida
- attachInterrupt(0, LigaLed, FALLING); // Enable interrupt 0 no pino D2
- }
- // ---------------------------------- LigaLed -------------------------------
- void LigaLed() // Rotina de tratamento do itrpt
- {
- if (BotaoSeq == 10) BotaoSeq = 0; // Se contagem = 10 zera contagem
- Tempo[BotaoSeq] = 1; // Tempo = 1 no Led indicado pelo botão
- for (unsigned j = 0; j < 10; j++) // Faça 10 vezes
- {
- if (Tempo[j] > 0 ) // Se tempo maior que zero
- {
- Tempo[j] = Tempo[j] + 10000; // Some mais 10000 (ajustar este tempo para 1seg)
- }
- }
- BotaoSeq++; // Incrementa contagem de LED
- }
- // --------------------------- loop --------------------------
- void loop()
- {
- for(;;) // Faça sempre
- {
- for (unsigned k = 0; k < 10; k++) // Faça 10 vezes
- {
- Tempo[k]--; // Decrementa tempo de cada LED
- if (Tempo[k]< 0) Tempo[k] = 0; // Se ficar negativo, zera
- }
- if (Tempo[0] >0) digitalWrite(Led0,HIGH); // Se tiver tempo acende LED
- else digitalWrite(Led0,LOW); // Se não apague
- if (Tempo[1] >0) digitalWrite(Led1,HIGH);
- else digitalWrite(Led1,LOW);
- if (Tempo[2] >0) digitalWrite(Led2,HIGH);
- else digitalWrite(Led2,LOW);
- if (Tempo[3] >0) digitalWrite(Led3,HIGH);
- else digitalWrite(Led3,LOW);
- if (Tempo[4] >0) digitalWrite(Led4,HIGH);
- else digitalWrite(Led4,LOW);
- if (Tempo[5] >0) digitalWrite(Led5,HIGH);
- else digitalWrite(Led5,LOW);
- if (Tempo[6] >0) digitalWrite(Led6,HIGH);
- else digitalWrite(Led6,LOW);
- if (Tempo[7] >0) digitalWrite(Led7,HIGH);
- else digitalWrite(Led7,LOW);
- if (Tempo[8] >0) digitalWrite(Led8,HIGH);
- else digitalWrite(Led8,LOW);
- if (Tempo[9] >0) digitalWrite(Led9,HIGH);
- else digitalWrite(Led9,LOW);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement