Advertisement
Diego_Frenoux

Untitled

Aug 17th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  1. int pin[] = {22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52};
  2. int led[] = {A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15};
  3. int pulsador[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  4. int var6[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  5. int pinRAND[] = {18,19};
  6. int var1 = 0;
  7. int varR = 0;
  8. int pul1 = 0;
  9. int comple = 0;
  10.  
  11. unsigned long previousMillis = 0;
  12. unsigned long previousMillis2 = 0;
  13. const long interval = 30000; // intervalo
  14.  
  15. void setup() {
  16. pinMode(18,INPUT);
  17. for(var1 = 0; var1 < 16; var1++){
  18. pinMode(pin[var1],INPUT);
  19. }
  20. for(var1 = 0; var1 < 32; var1++){
  21. pinMode(led[var1],OUTPUT);
  22. digitalWrite(led[var1],HIGH);
  23. }
  24. for(var1 = 0; var1 < 16; var1++){
  25. digitalWrite(led[var1],LOW);
  26. delay(1000);
  27. digitalWrite(led[var1],HIGH);
  28. }
  29. }
  30.  
  31. void loop() {
  32. for(var1 = 0; var1 < 16; var1++){
  33. CLED1(var1, pin[var1],led[var1]);
  34. delay(5);
  35. CRAND();
  36. }
  37. }
  38.  
  39.  
  40.  
  41. void CLED1(int var5, int IN1, int LED1){
  42. //leemos pulsador
  43. pulsador[var5] = digitalRead(IN1);
  44. //si esta en estado bajo y no se pulso antes
  45. if (pulsador[var5] == HIGH && var6[var5] == 0){
  46. bool valor = digitalRead(LED1);
  47. digitalWrite(LED1, !valor);
  48. var6[var5] = 1;
  49. }
  50. //si esta en estado alto y se pulso antes
  51. if(pulsador[var5] == LOW && var6[var5] == 1){
  52. var6[var5] = 0;
  53. delay(100);//para evitar rebotes pulsador
  54. }
  55. }
  56.  
  57. void CRAND(){
  58. //funcion que controla encendido de luz aleatoria simulando presencia
  59. int pul = digitalRead(18);
  60. if(pul == HIGH && pul1 == 0){
  61. CTMP(0);
  62. pul1 = 1;
  63.  
  64. }
  65. if(pul == LOW && pul1 == 1){
  66. pul1 = 0;
  67. CTMP(1);
  68. }
  69. }
  70.  
  71.  
  72. void CTMP(int op){
  73. bool comp = false;
  74. if(op == 0){
  75. int indice = 0;
  76. unsigned long currentMillis;
  77. do{
  78. currentMillis = millis();
  79. if (currentMillis - previousMillis >= interval) {
  80. previousMillis = currentMillis;
  81. bool valor2 = digitalRead(led[indice]);
  82. digitalWrite(led[indice], !valor2);
  83. indice++;
  84. }
  85. if (indice >= 6){
  86. comp = true;
  87. indice = 0;
  88. }
  89. }while(!comp);}
  90.  
  91. if(op == 1){
  92. int indice1 = 5;
  93. unsigned long currentMillis;
  94. do{
  95. currentMillis = millis();
  96. if (currentMillis - previousMillis >= interval) {
  97. previousMillis = currentMillis;
  98. bool valor3 = digitalRead(led[indice1]);
  99. digitalWrite(led[indice1], !valor3);
  100. indice1--;
  101. }
  102. if (indice1 == 0){
  103. comp = true;
  104. digitalWrite(led[0], HIGH);
  105. indice1 = 0;
  106. }
  107. }while(!comp);}
  108.  
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement