Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ......
- unsigned int state = 0;
- unsigned int blinkTime = 333;
- unsigned long blinkStartTime;
- .........
- void loop(){
- if (digitalRead(selbutton) == HIGH){
- // Per evitare il rimbalzo del pulsante e che la variabile venga incrementata in modo incontrollato
- while (digitalRead(selbutton) == HIGH) {
- delay(50);
- }
- /* Il simbolo % rappresenta l'operatore modulo, ovvero quell'operazione che restituisce il resto della divisione tra i due fattori.
- 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
- */
- state = (state + 1) % 7;
- }
- switch(state){
- case 0:
- blinkTime = 333;
- break;
- case 1:
- blinkTime = 166;
- break;
- ..... e cosi via
- }
- if(digitalRead(startbutton) == HIGH){
- if(millis() - blinkStartTime > blinkTime) {
- blinkStartTime = millis();
- // Inverto lo stato del LED (operatore di negazione "!" )
- digitalWrite(LED, !digitalRead(LED));
- }
- }
- else {
- digitalWrite(LED, LOW);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement