Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int pin[] = {22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52};
- int led[] = {A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15};
- int pulsador[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
- int var6[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
- int pinRAND[] = {18,19};
- int var1 = 0;
- int varR = 0;
- int pul1 = 0;
- int comple = 0;
- unsigned long previousMillis = 0;
- unsigned long previousMillis2 = 0;
- const long interval = 30000; // intervalo
- void setup() {
- pinMode(18,INPUT);
- for(var1 = 0; var1 < 16; var1++){
- pinMode(pin[var1],INPUT);
- }
- for(var1 = 0; var1 < 32; var1++){
- pinMode(led[var1],OUTPUT);
- digitalWrite(led[var1],HIGH);
- }
- for(var1 = 0; var1 < 16; var1++){
- digitalWrite(led[var1],LOW);
- delay(1000);
- digitalWrite(led[var1],HIGH);
- }
- }
- void loop() {
- for(var1 = 0; var1 < 16; var1++){
- CLED1(var1, pin[var1],led[var1]);
- delay(5);
- CRAND();
- }
- }
- void CLED1(int var5, int IN1, int LED1){
- //leemos pulsador
- pulsador[var5] = digitalRead(IN1);
- //si esta en estado bajo y no se pulso antes
- if (pulsador[var5] == HIGH && var6[var5] == 0){
- bool valor = digitalRead(LED1);
- digitalWrite(LED1, !valor);
- var6[var5] = 1;
- }
- //si esta en estado alto y se pulso antes
- if(pulsador[var5] == LOW && var6[var5] == 1){
- var6[var5] = 0;
- delay(100);//para evitar rebotes pulsador
- }
- }
- void CRAND(){
- //funcion que controla encendido de luz aleatoria simulando presencia
- int pul = digitalRead(18);
- if(pul == HIGH && pul1 == 0){
- CTMP(0);
- pul1 = 1;
- }
- if(pul == LOW && pul1 == 1){
- pul1 = 0;
- CTMP(1);
- }
- }
- void CTMP(int op){
- bool comp = false;
- if(op == 0){
- int indice = 0;
- unsigned long currentMillis;
- do{
- currentMillis = millis();
- if (currentMillis - previousMillis >= interval) {
- previousMillis = currentMillis;
- bool valor2 = digitalRead(led[indice]);
- digitalWrite(led[indice], !valor2);
- indice++;
- }
- if (indice >= 6){
- comp = true;
- indice = 0;
- }
- }while(!comp);}
- if(op == 1){
- int indice1 = 5;
- unsigned long currentMillis;
- do{
- currentMillis = millis();
- if (currentMillis - previousMillis >= interval) {
- previousMillis = currentMillis;
- bool valor3 = digitalRead(led[indice1]);
- digitalWrite(led[indice1], !valor3);
- indice1--;
- }
- if (indice1 == 0){
- comp = true;
- digitalWrite(led[0], HIGH);
- indice1 = 0;
- }
- }while(!comp);}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement