Étape 3: Le Code
Partie du code provient directement les esquisses d’exemple fourni avec le bouclier et le module RTC. Le reste a été concocté par vôtre vraiment et fortement commenté pour votre facilité d’utilisation. La seule chose que vous devrez faire attention à est les différentes façons que vous pouvez configurer pour l’écran TFT. Il est également disponible comme une carte de dérivation simple (sans la manette ou le lecteur de carte SD) et le brochage est différent pour cela. Il y a aussi plusieurs versions du bouclier qui sont indiquées par la couleur de la languette sur le protecteur d’écran. Mine est venu avec une languette verte mais seulement travaillé avec la ligne de code noir onglet activée. Vous aurez juste à essayer quelques petites choses pour obtenir votre exemplaire de travail. Voir les croquis de l’exemple de l’aide.
Vous aurez besoin d’inclure les bibliothèques suivantes :
- Wire.h
- SPI.h
- RTClib.h
- Adafruit_GFX.h
- Adafruit_ST7735.h
Assurez-vous que vous avez téléchargé et installé dans l’IDE, avant que vous y aller. Les trois premiers doivent être dans l’ordre exact ou vous obtiendrez des erreurs de compilation. J’étais perplexe pendant un certain temps avant que j’ai trouvé cette petite friandise dans un forum quelque part.
Je vais vous expliquer le code un peu. Pour sélectionner une couleur à utiliser sur l’écran, il faut utiliser une valeur hexadécimale 16 bits, mais il est dans une configuration bizarre qui est un peu difficile à comprendre au début. On l’appelle 565 couleur et c’est parce que la valeur verte est traitée différemment. Il y a cinq bits pour les rouge et bleu, mais parce que votre oeil est plus sensible au vert il utilise 6 bits pour cela. Si vous avez 16 valeurs pour rouge et bleu et 32 pour le vert. Mais ce n’est pas tout. La valeur la plus faible est en fait égal à zéro donc la valeur la plus élevée est en fait 15 ou 31.
Alors que vous pouvez sortir un graphique hexagonal et faire quelques conversion c’est sorte de lourde à être constamment frappe en valeurs de couleur au format hexadécimal comme 0xFFFF pour blanc (vous pouvez déclarer des valeurs de couleur, voir le haut de l’esquisse) la bibliothèque GFX fournit une belle petite fonction pour s’occuper de choses pour vous à l’aide de valeurs comprises entre 0 et 255.
En quoi consiste la partie horaire de l’esquisse, c’est prendre la valeur de l’heure et la fonction map permet de convertir les 24 heures, 60 minutes et 60 secondes pour les valeurs comprises entre 0 et 255. Puis il branche ces variables sur l’écran tft. Fonction de Color565 et il s’occupe de venir avec la valeur hexadécimale. Heures donnent la valeur rouge, le vert de minutes et secondes le bleu.
redValue = map(hour(t), 23, 0, 0, 255) ;
grnValue = map(minute(t), 59, 0, 0, 255) ;
bluValue = map(second(t), 59, 0, 0, 255) ;
tft.fillRect (0, 0, 160, 50, (tft. Color565(redValue, grnValue, bluValue))) ;
C’est ce que l’esquisse utilise pour définir les couleurs de texte et le champ. J’ai foiré d’éliminer la barre noire et au lieu d’avoir le temps apparaissent en noir sur un fond clair, mais c’était un peu flickery. C’est pourquoi la barre existe et il s’inspire de deux rectangles de couleur au lieu de simplement remplir l’écran avec la couleur.
En ce qui concerne les couleurs, vous pouvez obtenir savoir où vous vous trouvez dans le jour ni l’heure avec juste un petit clin d’oeil.
Juste après que minuit, qu'il est très sombre car le rouge valeur (heures) est nulle et donc sont le bleu et le vert (minutes et secondes). Comme les secondes cochez les choses deviennent plus bleue et plus bleue jusqu'à ce que les tiques minuscules et un tout petit peu de vert est ajouté et la valeur bleue est remis à zéro. Quand il est presque 01:00 les choses seront très verts avec les secondes en prenant les choses en teal comme ils s’insinuer.
Par l’heure du déjeuner, il y a une bonne quantité de rouge dans le jeu donc les choses commencent à devenir un peu plus pourpre.
Et la fin de la journée, surtout juste avant minuit les choses sont très lumineux car à ce stade, toutes les valeurs sont très élevées.
Si vous avez aussi le bouclier avec le joystick, c’est très facile d’ajouter du code pour définir la luminosité. Si vous avez passé le trajet simple, vous pouvez simplement ajouter deux boutons à n’importe quel deux broches qui peuvent faire un digitalRead. Utiliser pour appeler la fonction de luminosité, puis les deux autres de haut en bas. Appuyez sur select pour quitter.
Si vous voulez en finir avec les boutons entièrement vous pourriez soit programmer la luminosité selon l’heure de la journée, ou utiliser un capteur photo et contrôler avec des niveaux de lumière ambiantes.
Voici le code :