Advertisement
TolentinoCotesta

Untitled

Nov 16th, 2018
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ......
  2. unsigned int state = 0;
  3. unsigned int blinkTime = 333;
  4. unsigned long blinkStartTime;
  5. .........
  6.  
  7. void loop(){
  8.   if (digitalRead(selbutton) == HIGH){
  9.    
  10.     // Per evitare il rimbalzo del pulsante e che la variabile venga incrementata in modo incontrollato
  11.     while (digitalRead(selbutton) == HIGH) {
  12.       delay(50);       
  13.     }
  14.    
  15.     /* Il simbolo % rappresenta l'operatore modulo, ovvero quell'operazione che restituisce il resto della divisione tra i due fattori.
  16.        Il risultato che si ottiene è che ogni volta che premi il pulsante la variabile state incrementerà di 1 ma nel range definito dal modulo ovvero da 0 a 6
  17.     */
  18.     state = (state + 1) % 7;
  19.   }
  20.  
  21.   switch(state){
  22.     case 0:
  23.       blinkTime = 333;
  24.       break;
  25.     case 1:
  26.       blinkTime = 166;
  27.       break;
  28.     ..... e cosi via       
  29.   }
  30.  
  31.  
  32.   if(digitalRead(startbutton) == HIGH){
  33.     if(millis() - blinkStartTime > blinkTime) {
  34.       blinkStartTime = millis();
  35.       // Inverto lo stato del LED (operatore di negazione "!" )
  36.       digitalWrite(LED, !digitalRead(LED));
  37.     }
  38.   }
  39.   else {
  40.     digitalWrite(LED, LOW);
  41.   }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement