Table des matières:

Un chronomètre Arduino simple et pratique : 4 étapes
Un chronomètre Arduino simple et pratique : 4 étapes

Vidéo: Un chronomètre Arduino simple et pratique : 4 étapes

Vidéo: Un chronomètre Arduino simple et pratique : 4 étapes
Vidéo: #1 ARDUINO - Découverte et Premier Projet (Allumer une LED) 2024, Juin
Anonim
Un chronomètre Arduino simple et pratique
Un chronomètre Arduino simple et pratique

Recherchez sur le Web un chronomètre Arduino. Vous venez probablement de le faire, si vous êtes ici. Par expérience personnelle, je peux vous dire que n'importe quel chronomètre sur Internet est soit beaucoup trop complexe (en code, pour les débutants), soit beaucoup trop simplifié et pas pratique, comme ceux qui ne font que compter les secondes sans se réinitialiser.

Vous le pensez aussi, hein ? Bien devinez quoi. Je l'ai fait, et de plus, je prends directement mon entrée de la fonction millis () - une ligne de nombres sans fin (jusqu'à 49 jours, ou autre). La meilleure partie? C'est une seule ligne.

La réinitialisation est la partie difficile du chronomètre. Pour les programmeurs intermédiaires, si vous ne l'avez pas déjà fait, essayez de le faire vous-même, avec des secondes, des minutes et des heures ensemble. Vous comprendrez de quoi je parle.

Pour les débutants, lisez la suite et délectez-vous du génie de mon esprit.

Je plaisante, mais la solution que j'ai trouvée est plutôt chouette. Voici ce que c'est:

Étape 1: la solution

La solution
La solution

Le problème se réinitialise donc. Ce que nous voulons, c'est un cycle de nombres continu et répétitif, à partir d'une sortie sans fin de nombres séquentiels (millis() - il compte essentiellement des millisecondes, ou en fait 1,024 millisecondes, mais peu importe).

La première chose qui vient à l'esprit est d'utiliser la différence, comme time1 -time2 et un délai. Oublie ça. Il faut au moins six lignes de code et une instruction if pour démarrer.

Voici donc comment procéder. Nous avons une limite (59). Nous voulons que tout de 0 à 59 se répète encore et encore. Comment?

Et si… on prenait le reste… de la fonction millis divisé par 59…. Bingo !

Donc, ça devrait être comme ça:

(60 [comme valeur initiale car la limite est de 59] + millis() / 1000 [1000 millisecondes est une seconde]) % 60

Ok, laisse-moi expliquer. (%) ou module, est essentiellement un opérateur comme (+) qui trouve le reste. Comme 9 % 2 = 1.

Donc:

  • reste de (60 + 0) % 60 = 0
  • reste de (60 + 1) % 60 =1
  • reste de (60 + 58) % 60 = 58
  • reste de (60 + 59) % 60 = 59
  • reste de (60 + 60) % 60 = 60
  • reste de (60 + 61) % 60 = 1

Voir!

Maintenant, pour les pièces.

Étape 2: les pièces

Les parties
Les parties

Pas grand-chose, du tout

  1. N'importe quel arduino
  2. N'importe quel écran (j'ai utilisé l'OLED 0.96", mais vous pouvez utiliser tout ce que vous avez, assurez-vous simplement de mettre les bonnes variables dans les fonctions d'affichage de votre écran.)

C'est ça.

Étape 3: Le code

Voilà. C'est assez clairement commenté, donc il ne devrait y avoir aucun problème. Les bibliothèques et l'initialisation pour 0.96 OLED sont dans le code. Remplacez-le par votre propre écran s'il est différent.

// Bibliothèques OLED 0.96"

#comprendre

#comprendre

#comprendre

#comprendre

// 0.96 OLED Init

#define OLED_RESET 4

Affichage Adafruit_SSD1306 (OLED_RESET);

int secondes;

minutes entières;

heures entières;

void setup() {

// Un peu plus d'initialisation OLED 0.96"

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay(); display.setTextSize(2); display.setTextColor(BLANC); }

boucle vide() {

secondes = (60 + millis() / 1000) % 60;

minutes = (60 + millis() / 60000) % 60; heures = (25 + millis() / 3600000) % 25;

display.clearDisplay();

display.setCursor(0, 22); // affiche le nombre d'heures depuis la réinitialisation display.print(hours); display.print("h:");

// affiche le nombre de minutes depuis la réinitialisation

display.print(minutes);

display.print("m:");

// affiche le nombre de secondes depuis la réinitialisation display.print(seconds); display.print("s");

display.setCursor(0, 0);

display.print("Chronomètre"); display.drawLine (0, 18, 128, 18, BLANC); display.display();

}

Étape 4: Finalisation…

En Finale…
En Finale…

Alors c'est tout! Maintenant, fais ce que tu veux avec. Chronométrez des œufs ou prenez le contrôle de votre quartier.

Salut, Aarush

Conseillé: