Πίνακας περιεχομένων:

Ένα απλό, πρακτικό χρονόμετρο Arduino: 4 βήματα
Ένα απλό, πρακτικό χρονόμετρο Arduino: 4 βήματα

Βίντεο: Ένα απλό, πρακτικό χρονόμετρο Arduino: 4 βήματα

Βίντεο: Ένα απλό, πρακτικό χρονόμετρο Arduino: 4 βήματα
Βίντεο: Σεμινάριο για την εφαρμογή Phyphox - II 2024, Νοέμβριος
Anonim
Ένα απλό, πρακτικό χρονόμετρο Arduino
Ένα απλό, πρακτικό χρονόμετρο Arduino

Searchάξτε στον ιστό για χρονόμετρο Arduino. Μάλλον το έκανες μόλις είσαι εδώ. Από προσωπική εμπειρία, μπορώ να σας πω ότι οποιοδήποτε χρονόμετρο στο διαδίκτυο είναι είτε πολύ σύνθετο (σε κώδικα, για αρχάριους), είτε είναι πολύ απλοποιημένο και όχι πρακτικό, όπως αυτά που μετρούν δευτερόλεπτα χωρίς επαναφορά.

Κι εσύ έτσι νομίζεις, ε; Λοιπόν μαντέψτε τι. Το έκανα και, επιπλέον, παίρνω απευθείας τη συμβολή μου από τη συνάρτηση millis ()- μια ατελείωτη σειρά αριθμών (έως 49 ημέρες ή οτιδήποτε άλλο). Το καλύτερο κομμάτι? Είναι μόνο μια γραμμή.

Η επαναφορά, είναι το σκληρό μέρος του χρονόμετρου. Για τους ενδιάμεσους προγραμματιστές, αν δεν το έχετε κάνει ήδη, προχωρήστε και προσπαθήστε να το κάνετε μόνοι σας, με δευτερόλεπτα, λεπτά και ώρες μαζί. Θα καταλάβετε για τι μιλάω.

Για αρχάριους, διαβάστε και απολαύστε την ιδιοφυία του μυαλού μου.

Πλάκα κάνω, αλλά η λύση που βρήκα είναι αρκετά προσεγμένη. Ιδού τι είναι:

Βήμα 1: Η λύση

Η λύση
Η λύση

Το πρόβλημα λοιπόν είναι η επαναφορά. Αυτό που θέλουμε είναι ένας συνεχής, επαναλαμβανόμενος κύκλος αριθμών, από μια ατελείωτη έξοδο διαδοχικών αριθμών (millis () - βασικά μετρά χιλιοστά του δευτερολέπτου, ή στην πραγματικότητα 1.024 χιλιοστά του δευτερολέπτου, αλλά οτιδήποτε).

Το πρώτο πράγμα που μου έρχεται στο μυαλό είναι η χρήση της διαφοράς, όπως η ώρα1 -ώρα2 και η καθυστέρηση. Ξέχνα το. Χρειάζονται τουλάχιστον έξι γραμμές κώδικα και μια δήλωση if για εκκίνηση.

Δείτε λοιπόν πώς να το κάνετε. Έχουμε ένα όριο (59). Θέλουμε τα πάντα από 0 έως 59 να επαναλαμβάνονται ξανά και ξανά. Πως?

Τι κι αν… παίρναμε το υπόλοιπο… της συνάρτησης millis διαιρούμενο με 59…. Λοταρία!

Έτσι, θα πρέπει να είναι έτσι:

(60 [ως αρχική τιμή επειδή το όριο είναι 59] + millis () / 1000 [1000 χιλιοστά του δευτερολέπτου είναι ένα δευτερόλεπτο]) % 60

Εντάξει, εξηγήστε. (%) ή μέτρο, είναι βασικά ένας τελεστής όπως το (+) που βρίσκει το υπόλοιπο. Όπως 9 % 2 = 1.

Ετσι:

  • υπόλοιπο (60 + 0) % 60 = 0
  • υπόλοιπο (60 + 1) % 60 = 1
  • υπόλοιπο (60 + 58) % 60 = 58
  • υπόλοιπο (60 + 59) % 60 = 59
  • υπόλοιπο (60 + 60) % 60 = 60
  • υπόλοιπο (60 + 61) % 60 = 1

Βλέπω!

Τώρα, για τα μέρη.

Βήμα 2: Τα μέρη

Τα μέρη
Τα μέρη

Όχι πολύ, καθόλου

  1. Οποιοδήποτε arduino
  2. Οποιαδήποτε οθόνη (χρησιμοποίησα το OLED 0,96 ", αλλά μπορείτε να χρησιμοποιήσετε ό, τι έχετε, απλώς φροντίστε να βάλετε τις σωστές μεταβλητές στις λειτουργίες οθόνης της οθόνης σας.)

Αυτό είναι.

Βήμα 3: Ο κώδικας

Ορίστε. Σχολιάζεται αρκετά καθαρά, οπότε δεν πρέπει να υπάρχουν προβλήματα. Οι βιβλιοθήκες και το init για 0.96 OLED είναι στον κώδικα. Αντικαταστήστε το με τις δικές σας οθόνες αν είναι διαφορετικό.

// Βιβλιοθήκες OLED 0,96"

#περιλαμβάνω

#περιλαμβάνω

#περιλαμβάνω

#περιλαμβάνω

// 0,96 OLED Init

#define OLED_RESET 4

Adafruit_SSD1306 οθόνη (OLED_RESET).

int δευτερόλεπτα?

int λεπτά?

int ώρες?

void setup () {

// Κάποια άλλα 0,96 OLED Init

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay (); display.setTextSize (2); display.setTextColor (ΛΕΥΚΟ); }

void loop () {

δευτερόλεπτα = (60 + millis () / 1000) % 60;

λεπτά = (60 + millis () / 60000) % 60; ώρες = (25 + millis () / 3600000) % 25;

display.clearDisplay ();

display.setCursor (0, 22); // εκτύπωση του αριθμού των ωρών από την επαναφορά της εμφάνισης. print (ώρες); display.print ("h:");

// εκτυπώστε τον αριθμό των λεπτών από την επαναφορά

display.print (λεπτά)?

display.print ("m:");

// εκτυπώστε τον αριθμό των δευτερολέπτων από την επαναφορά της οθόνης. print (δευτερόλεπτα); display.print ("s");

display.setCursor (0, 0);

display.print ("Χρονόμετρο"); display.drawLine (0, 18, 128, 18, ΛΕΥΚΟ); display.display ();

}

Βήμα 4: Στο τέλος…

Στο τελικό…
Στο τελικό…

Αρα αυτο ειναι! Τώρα πηγαίνετε να κάνετε ό, τι θέλετε με αυτό. Χρονομετρήστε μερικά αυγά ή πάρτε τη γειτονιά σας.

Μπράβο, Aarush

Συνιστάται: