Étape 7: logiciel partie - explication du code (2)
5) écrire le code pour les boutons, pour régler l’heure pour les heures et les minutes. Voici on va pour utiliser un debounce code en appuyant sur le bouton afin d’éviter des changements multiples à chaque pression survous pouvez regarder la référence ici : http://www.arduino.cc/en/Tutorial/Debounce
int hourState = digitalRead(hourPin) ; buttonState int ; le hourstate actuel de l’axe d’entrée long lastDebounceTime = 0 ; la dernière fois que la broche de sortie a été activé/désactivée Réglage de l’heure Si (hourState == HIGH) {} Réglage de la minute
int minState = digitalRead(minPin) ;
int lastButtonState = faible ; la précédente hourstate de la broche d’entrée
int buttonState2 ; le hourstate actuel de l’axe d’entrée
int lastButtonState2 = faible ; la précédente hourstate de la broche d’entrée
debounceDelay long = 50 ; le temps de debounce ; augmenter si la sortie scintille
Si le bouton est enfoncé
1) réinitialiser la minuterie antirebonds
2) prendre du retard debounce l’état actuel
3) temps
4) sauver le hourstat
lastDebounceTime = millis() ;
Si ((millis()-lastDebounceTime) > debounceDelay) {}
buttonState = hourstate ;
}
time_t t = now() ;
t = t + 3600 ;
setTime(t) ;
lastButtonState = hourstate ;
}
Si (minState == HIGH) {}
lastDebounceTime = millis() ;
Si ((millis()-lastDebounceTime) > debounceDelay) {}
buttonState2 = minstate ;
}
time_t t = now() ;
t = t + 60 ;
setTime(t) ;
lastButtonState2 = minstate ;
}
6) dernière partie se déplace les données. Un tutoriel très Dieu peut être trouvé ici :
http://Arduino.cc/en/Reference/ShiftOut
h = hourFormat12() ; Si (previousHours! = h) {} digitalWrite (hlatchPin, HIGH) ; digitalWrite (dlatchPin, HIGH) ; digitalWrite (mlatchPin, HIGH);
m = minute() ;
digitalWrite (hlatchPin, basse) ;
shiftOut (hdataPin, hclockPin, MSBFIRST, (number_to_display [h] >> 8)) ;
shiftOut (hdataPin, hclockPin, MSBFIRST, hours_display[h]) ;
previousHours = h ;
}
Si (previousMins! = m) {}
MN = m ;
Si (mn > = 10) {}
d = 0 ;
tandis que (mn > = 10) {}
mn = min - 10 ;
d = d + 1 ;
}
digitalWrite (dlatchPin, basse) ;
shiftOut (ddataPin, dclockPin, MSBFIRST, (number_to_display [d] >> 8)) ;
shiftOut (ddataPin, dclockPin, MSBFIRST, number_to_display[d]) ;
digitalWrite (mlatchPin, basse) ;
shiftOut (mdataPin, mclockPin, MSBFIRST, (number_to_display [mn] >> 8)) ;
shiftOut (mdataPin, mclockPin, MSBFIRST, number_to_display[mins]) ;