Ce projet a été pris directement tiré du livre « 30 projets Arduino pour l’Evil Genius » par Simon Monk. Elle est décrite en détail à la page 159.
Fondamentalement, les étapes que j’ai fait sont :
1. après avoir décidé sur la taille de 12 x 15 pouces, j’ai construit une boîte de bois et ensuite il teinté foncé.
2. j’ai ensuite acheté un morceau de plastique et coupez à une taille qui rentrera juste dans la gorge que j’ai routé du haut de la boîte.
3. puis j’ai fait un cercle essentiellement centré autour du milieu de la boîte mais légèrement inclinées vers le haut de la boîte. Je voudrais faire une boîte carrée, la prochaine fois que la mesure serait plus facile.
4. puis j’ai soigneusement percé de trous pour les 16 LEDS qui sera utilisés pour afficher l’heure.
5. chacun des côtés positifs de la LED doit être joint aux broches Lilypad. J’ai utilisé les broches 1 - 4 pour les heures, 5-10 minutes et 11-13 plus A0-A3 pour les secondes. Les côtés négatifs sont tous reliées à un terrain d’entente. J’ai dévié de l’ouvrage à la manière de comment j’ai obtenu un terrain d’entente. Chaque LED a une résistance de 100 ohms attachée à elle.
J’ai un vieux vélo que je suis déterminé à réutiliser dans autant de façons que possible. Je pris une des vitesses avant et attache à la plastique et ensuite couru un fil de cuivre autour de l’arrière de l’engin. Cela autorisé pour un fil de terre commun et faite pour un look un peu plus propre (moins fils de voir).
6. j’ai ensuite copié le code suivant car il est dans l’article et chargés dans le Lilypad. J’ai fait quelques changements à l’original, donc le code que j’ai en fait utilisé est ci-dessous :
#include < Time.h >
int hourLEDs [] = {1, 2,3,4} ; moindre peu significatif d’abord
int minuteLEDs [] = {10,9,8,7,6,5} ;
int secondLEDs [] = {16,15,14,13,12,11} ;
int loopLEDs [] = {16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1} ;
int switchPin = 17 ;
void setup()
{
pour (int i = 0; i < 4; i ++)
{
pinMode (hourLEDs [i], sortie) ;
}
pour (int i = 0; i < 6; i ++)
{
pinMode (minuteLEDs [i], sortie) ;
}
pour (int i = 0; i < 6; i ++)
{
pinMode (secondLEDs [i], sortie) ;
}
setTime(0) ;
}
void loop()
{
Si (digitalRead(switchPin))
{
adjustTime(1) ;
}
ElseIf (minute() == 0 & & second() == 0)
{spin(hour()) ;
}
updateDisplay() ;
Delay(1) ;
}
Sub updateDisplay()
{
time_t t = now() ;
setOutput (hourLEDs, 4, hourFormat12(t)) ;
setOutput (minuteLEDs, 6, minute(t)) ;
setOutput (secondLEDs, 6, second(t)) ;
}
void setOutput (int * ledArray, int numLEDs, int valeur)
{
pour (int i = 0; i < numLEDs; i ++)
{
digitalWrite (ledArray [i],
bitRead(value, i)) ;
}
}
Sub spin (int count)
{
pour (int i = 0; i < count; i ++)
{
pour (int j = 0; j < 16; j ++)
{
digitalWrite (loopLEDs [j], HIGH) ;
Delay(50) ;
digitalWrite(loopLEDs[j],LOW) ;
}
}
}
7. il a été nécessaire pour moi d’obtenir de la bibliothèque et l’installer. Le processus est décrit dans l’article.
8. une fois installé et branché l’horloge fonctionne de cette manière.
-Pour régler le temps de que vous placer un aimant près de l’anche interrupteur et il permettra d’accélérer à la fois jusqu'à ce que vous obteniez l’heure exacte...
-Comme le temps passe, le changement de LEDs secondes et bien sûr les minutes et heures.
-Pour lire l’heure, il faut ajouter les LED qui sont sur, par exemple s’il heures LED 8 et 2 lite, 32 Minutes et 8 sont sur et secondes 16 et 1 sont sur ce serait 10 (8 + 2), 40 (32 + 8), 17(16+1) ou 10:40:17.
-Également au changement de l’heure les LEDs seront illuminent successivement dans un cercle complet plusieurs fois. Si c’est t 04:00, puis ils chassent 4fois, 11:00 puis ils chassent 11 fois.
Voici une vidéo de fonctionner :