Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
735
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.18 KB | None | 0 0
  1. void setup(){
  2.   pinMode(2,OUTPUT);
  3.   pinMode(3,OUTPUT);
  4.   pinMode(4,OUTPUT);
  5.   pinMode(5,OUTPUT);
  6.   pinMode(6,OUTPUT);
  7.   pinMode(7,OUTPUT);
  8.   pinMode(8,OUTPUT);
  9.   pinMode(12,INPUT);
  10. }
  11.  
  12. int led[7]={2,3,4,5,6,7,8};
  13. int pos=0;
  14. bool forwards=true;
  15. int lvl=1;
  16.  
  17. void blinklol(int lostPin){
  18.   for (int i=0;i<7;i++){
  19.     digitalWrite(led[lostPin],HIGH);
  20.     delay(100);
  21.     digitalWrite(led[lostPin],LOW);
  22.     delay(100);
  23.   }
  24.   if (lostPin==3){
  25.     lvl++;
  26.   }else{
  27.     int score=lvl-1;
  28.     lvl=1;
  29.     pos=0;
  30.     forwards=true;
  31.     for (int i=0;i<7;i++){
  32.       if (score>=pow(2,(6-i))){
  33.         score=score-pow(2,(6-i));
  34.         digitalWrite(led[6-i],HIGH);
  35.       }
  36.     }
  37.     while (!(digitalRead(12))){
  38.       delay(10);
  39.     }
  40.     for (int i=0;i<7;i++){
  41.       digitalWrite(led[i],LOW);
  42.     }
  43.     delay(500);
  44.   }
  45. }
  46.  
  47. void loop(){
  48.   if ((pos==0 && !forwards)||(pos==6 && forwards)){
  49.     forwards=!forwards;
  50.   }
  51.   if (forwards){
  52.     pos++;
  53.   }else{
  54.     pos--;
  55.   }
  56.   digitalWrite(led[pos],HIGH);
  57.   long temp=micros();
  58.   while (true){
  59.     if (digitalRead(12)){blinklol(pos);};
  60.     if ((micros()-temp)>(1000000/lvl)){break;}
  61.   }
  62.   digitalWrite(led[pos],LOW);
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement