Arduino TFT Colour Clock: 4 étapes (avec photos)

Arduino TFT Colour Clock: 4 étapes (avec photos)

Table des matières:

Anonim

Vous connaissez peut-être un site Web britannique appelé Color Clock (http://thecolourclock.co.uk/), qui convertit l'heure en une valeur hexadécimale puis utilise cette valeur pour mettre à jour la couleur d'arrière-plan. C'est très hypnotique et une fois que vous êtes habitué à la façon dont cela fonctionne, vous pouvez réellement savoir où vous en êtes dans la journée en regardant simplement l'écran de l'autre côté de la pièce.

J'avais un Arduino Uno R3 et un écran couleur TFT Shield Adafruit de 1,8 "avec microSD et Joystick que je tentais d'utiliser pour un autre projet qui ne tenait plus. Un soir, juste pour m'amuser, j'ai décidé de voir si je pouvais recréer l'horloge couleur Si vous connaissez bien Arduino, vous pouvez facilement échanger des pièces contre une simple carte TFT et quelque chose de minuscule, comme une coccinelle, pour en faire une unité très compacte, voire un badge.

Je me suis servi de la bibliothèque Adafruit GFX, qui a facilité l'installation des choses. Le mien fonctionnait déjà et je comprenais un peu comment utiliser la bibliothèque afin que vos résultats puissent varier en fonction de votre expérience. Au début, je me contenterais de taper l'heure actuelle dans le code et de le synchroniser, mais avec l'ajout d'une horloge en temps réel, le projet se souviendra de l'heure qu'il est et reviendra à la vie chaque fois que vous l'allumerez.

  • Matériaux
  • Arduino UNO R3 (ou un clone, ou quelque chose de similaire si vous êtes malin)
  • Adafruit 1.8 "Color TFT Shield avec microSD (ou compatible, plus le meilleur est grand!)
  • Module DS3231 RTC (horloge temps réel) (plus précis que DS1307
  • Fil de liaison (ou cavaliers avec connecteurs Dupont)
  • Fer à souder
  • Souder

Provisions:

Étape 1: le matériel

Le blindage TFT est livré avec un assemblage requis. Vous devez attacher les broches d'en-tête que je fais habituellement en les insérant d'abord dans les trous correspondants de l'Arduino, puis en plaçant le blindage en place et en le parcourant avec de la soudure. Utilisez un fer à souder à pointe fine et une soudure à filament fin pour obtenir les meilleurs résultats. Appliquez juste un peu de chaleur sur le dessus de la broche et touchez délicatement la soudure à la broche (pas le fer à repasser) jusqu'à ce qu'elle commence à couler. Très rapidement, vous aurez une petite piscine de soudure autour de la broche. Soulevez la soudure et le fer et laissez-le refroidir. Répétez jusqu'à ce que toutes les broches sont terminées.

Avec cela, votre bouclier est déjà installé sur votre UNO. Cliquez pour attacher le RTC et ajoutez un cavalier pour pouvoir régler la luminosité.

Étape 2: les périphériques

Ce n'est pas tellement un périphérique comme une option. Si vous soudez un petit cavalier entre la broche 5 et la broche BC. Cela vous permet d’AnalogWrite sur la broche 5 pour régler la luminosité de l’écran de 0 à 255. Plus d’informations à ce sujet plus tard.

Pour attacher le module RTC, il m'est arrivé de disposer de câbles de démarrage avec des connecteurs Dupont, femelle à une extrémité et mâle à l'autre. Celles-ci sont idéales pour la connexion à des périphériques ou à des cartes d’affichage. Je viens de glisser les extrémités femelles sur les quatre broches appropriées du RTC puis de souder les autres extrémités au blindage TFT. Chaque broche a un trou à côté duquel elle est liée afin que vous n'ayez pas à souder directement sur la broche. Je ne vais pas mettre le mien dans une affaire. Cela va probablement se séparer dans un mois pour devenir autre chose. Pour le moment, je vais le déposer dans un porte-carte de visite sur mon bureau au travail, alors je suis passé au premier plan. Vous pouvez aussi facilement aller à l’arrière de l’ONU ou même ajouter des bornes à vis pour faciliter les changements.

Les pins utilisés sont:

  • SCL - Ligne d'horloge - vers Arduino Broche A5
  • SDA - Ligne de données - vers Arduino Pin A4
  • VCC - 5 Volts - vers Arduino 5v Pin
  • GND - Ground - to Arduino Gnd Pin

Étant donné que l'horloge est le seul périphérique utilisant le bus I2C dans ce projet, les résistances de rappel ne sont pas nécessaires. Bien que l’UNO R3 comporte des broches à côté de la broche ARef pour I2C, elles ne se connectent vraiment qu’aux formats A4 et A5; ainsi, peu importe que le bouclier ne les élève pas au niveau supérieur, nous allons simplement passer directement au la source.

Maintenant que tout est construit, il ne reste plus qu'à charger le code et nous allons aux courses.

Étape 3: le code

J'ai du mal à quitter un projet seul. Je suis allé de l'avant et j'ai ajouté un petit menu de préférences auquel vous accédez avec le joystick. Une presse vous permet d'accéder au menu. Vous pouvez y sélectionner la luminosité de l'écran en cliquant à gauche ou à droite et l'heure 12 ou 24 heures en cliquant vers le haut ou le bas. Cliquez à nouveau et vos paramètres sont enregistrés dans l'EEPROM afin qu'ils soient toujours présents lors de la prochaine mise sous tension.

Voici le code: Modifier Correction du problème avec la première heure après minuit et zéro en mode 12 heures.

Horloge de couleurs Arduino avec menu Paramètres - Code Pastebin

2 personnes ont réalisé ce projet!

  • dixonl90 l'a fait!

  • andrew_h l'a fait!

Avez-vous réalisé ce projet? Partagez le avec nous!

Recommandations

  • Réduire les échantillons de code Arduino

  • Prototype d'ornithoptère Opensource. Actionné par Arduino et contrôlé à distance.

  • Classe Internet des objets

  • Concours de menuiserie

  • Défi IoT

  • Concours de sciences en classe

10 discussions

0

johangrobler2009

il y a 3 ans

salut

Je ai besoin d'aide. Ce qui suit sont des messages d'erreur dans le programme principal que j'ai appelé DS3231_Joystick. Pouvez-vous s'il vous plaît expliquer ce qui ne va pas?

DS3231_Joystick: 8: erreur: 'RTC_DS3231' ne nomme pas un type

DS3231_Joystick: 51: erreur: 'Adafruit_ST7735' ne nomme pas un type

DS3231_Joystick.ino: Dans la fonction 'void setup ()':

DS3231_Joystick: 64: erreur: 'RTC' n'a pas été déclaré dans cette étendue

DS3231_Joystick: 68: erreur: 'DateTime' n'a pas été déclaré dans cette étendue

DS3231_Joystick: 70: erreur: 'DateTime' n'a pas été déclaré dans cette étendue

DS3231_Joystick: 79: erreur: 'tft' n'a pas été déclaré dans cette étendue

DS3231_Joystick.ino: Dans la fonction 'void drawTime ()':

DS3231_Joystick: 104: erreur: 'DateTime' n'a pas été déclaré dans cette étendue

DS3231_Joystick: 104: erreur: 'RTC' n'a pas été déclaré dans cette étendue

DS3231_Joystick: 108: erreur: 'maintenant' n'a pas été déclaré dans cette étendue

DS3231_Joystick: 115: erreur: 'tft' n'a pas été déclaré dans cette étendue

1 réponse 0

Sound Guy

Répondre il y a 4 années sur Introduction

Ceci est incroyable. Bien que j'aime pousser des pixels pour le plaisir, l'idée de mettre en place une interface utilisateur appropriée pour un projet plus complexe m'a retenu. Je serais très intéressé de mettre la main sur l'un d'entre eux.

0

mickjazz29

Il y a 4 ans sur l'introduction

Salut, bonne horloge.

Pardonnez ma naïveté, je suis une recrue complète avec Arduino mais je voulais vraiment faire ça. Suis-je censé pouvoir copier et coller votre code dans mon IDE, car j'ai déjà essayé et rencontré toutes sortes d'erreurs lorsque je le vérifie. Je me demande si vous pourriez me donner un coup de pouce dans la bonne direction. - Merci beaucoup (-:

0

ibenkos

il y a 4 ans

Bonne idée! Merci pour shearig:)

0

tkleinauskas

il y a 4 ans

Cool!

0

Arman5592

il y a 4 ans

Ne serait-il pas plus facile d'utiliser la bibliothèque de temps? Ce serait moins précis mais il vous suffit d'indiquer l'heure actuelle et le calcule.

1 réponse 0

Sound Guy Arman5592

Répondre il y a 4 années sur Introduction

C'est comme ça que j'ai commencé quand je commençais juste le concept. Mais une fois que tout est opérationnel, il est agréable de pouvoir simplement le brancher sur n’importe quelle alimentation USB et avoir l’heure exacte. J'ai installé cette chose sur ma table basse, dans la voiture, sur mon bureau au travail, pratiquement n'importe où je veux la montrer et il y a 5 volts disponibles.

0

xxlauraxx

Il y a 4 ans sur l'introduction

J'adore cette idée! J'avais une pensée similaire il y a quelque temps, mais pour une horloge analogique. Plutôt que d’avoir 12 fuseaux horaires différents sur le cadran, il y en aurait 6.

"Rendez-moi boire un verre vers le début du vert."

Peut-être que développer une horloge moins précise me plaît tout simplement parce que je suis généralement en retard de 5 à 10 minutes…:)

1 réponse 0

Sound Guy xxlauraxx

Répondre il y a 4 années sur Introduction

Cela règle le problème. À la prochaine occasion, j'ajoute une étape supplémentaire pour une horloge analogique avec une couleur par heure.

0

MsSweetSatisfaction

Il y a 4 ans sur l'introduction

C'est génial! Mieux vaut m'avertir des délais! Merci d'avoir partagé!