Étape 14 : Traitant d’inexactitude
Un des points de ce projet était de créer une horloge qui est précise et on peut faire confiance, mais si vous mettez l’horloge Cwik à côté d’une horloge très fiable, vous remarquerez peut-être que c’est lent/rapide en quelques secondes sur une période de 24 heures.Ciblage de l’erreur
Autant que je sache, il y a pas de place dans le code où les millisecondes vont manquer, donc je suis porté à croire que les inexactitudes de calendrier sont en raison de l’écart-type dans le pendule de cristal. Ma connaissance de comment crystal horloges est suprêmement amateur, mais je pourrais être convaincu que beaucoup de facteurs joue dans l’exactitude des informations, telles que la tension fournie, température, procédé de fabrication, âge de l’horloge, etc.. Je suppose également que si vous avez remplacé l’horloge cristal par un autre, vous observe un comportement différent (l’un pourrait être rapide, une pourrait être lente). Puisqu’il n’y a tellement de variables, il est inutile d’essayer de corriger l’erreur avant que le produit final est monté avec les derniers éléments (pourquoi cette étape est donc après avoir souder et assembler l’horloge Cwik).
L’erreur de mesure
Afin de compenstate pour l’erreur dans le logiciel, nous devons pleinement comprendre notre erreur. La façon dont nous allons mesurer l’erreur est en commençant précisément l’horloge Cwik à côté d’une horloge de référence extrêmement précis qui affiche secondes (comme un ordinateur) et voir comment loin l’horloge Cwik provient de la référence d’horloge après exactement 7 jours.
Par exemple, si le temps est actuellement 08:05 lundi, passer en mode de mise à l’heure, régler l’horloge de Cwik à 08:06 et attendez que votre horloge de référence passer à 08:06 avant d’appuyer sur l’interrupteur pour désactiver le mode de réglage de l’heure (puisque nous réinitialisons les secondes en mode de réglage). Laissez votre horloge pendant 7 jours et lorsque l’horloge Cwik arrivez à 08:06 la semaine suivante, saisir le temps sur votre horloge de référence et de mesurer la différence.
Je recommande une semaine entière, parce que plus l’ellapsed de temps, plus nous pouvons mesurer précisément l’erreur. Ensuite, il y a comme l’impression que la source d’alimentation pourrait être responsable de l’erreur. Si vous êtes alimenté votre appareil à partir d’une source d’alimentation DC 9V branchée dans le mur, les caractéristiques d’utilisation de puissance sont relativement cycliques avec une période d’une semaine. Vous et vos voisins peuvent utiliser moins/plus pouvoir le week-end par rapport à la semaine, mais en capturant une semaine entière, nous espérons obtenir une erreur moyenne , pas une erreur quotidienne qui peut fluctuer selon les jours de la semaine.
L’erreur de fixation
Maintenant que nous avons un nombre de secondes que réellement ellapsed (l’heure sur l’horloge de référence) et le moment où l’horloge Cwik pensée ellapsed, nous pouvons calculer l’erreur.
Dans notre exemple ci-dessus, si une fois par semaine sur l’horloge Cwik l’heure sur l’horloge de référence 08:06:52, cela signifie que nous sommes à court lent, avec la précision suivante :
précision = (seconde le CwikClock pensée ellapsed) / (secondes que l’horloge de référence ellapsed)
précision = (7 jours * 24 heures / jour * 60 minutes / heure * 60 secondes / minute) / ((7 * 24 heures / jour * 60 minutes / heure * 60 secondes / minute) + 52)
précision = 604800 secondes/605852 secondes
précision = 0.998263602
Pour compenser, modifiez ONE_SECOND dans le code à 1000 * exactitude ou 998. Si vous décidez de modifier la précision après encore une autre semaine, définissez ONE_SECOND à 998 * exactitude (pas les 1000 premiers * exactitude, étant donné que les mesures ont été prises en supposant que ONE_SECOND est 998ms de notre horloge cristal).