Led ρολόι σε arduino nano. Φτιάχνουμε ένα ηλεκτρονικό ρολόι στο Arduino με τα χέρια μας. Έτοιμο ρολόι στο Arduino

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

Λίγα λόγια για την αρχή λειτουργίας: Το Arduino παίρνει δεδομένα από το χρονόμετρο DS323, τα επεξεργάζεται, καθορίζει το επίπεδο φωτός χρησιμοποιώντας μια φωτοαντίσταση, στη συνέχεια στέλνει τα πάντα στο MAX7219 και, με τη σειρά του, φωτίζει τα απαιτούμενα τμήματα με την απαιτούμενη φωτεινότητα. Επίσης, χρησιμοποιώντας τρία κουμπιά, μπορείτε να ρυθμίσετε το έτος, τον μήνα, την ημέρα και την ώρα όπως θέλετε. Στη φωτογραφία, οι ενδείξεις εμφανίζουν την ώρα και τη θερμοκρασία, η οποία λαμβάνεται από έναν ψηφιακό αισθητήρα θερμοκρασίας

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

Η λύση στο στιγμιότυπο οθόνης:


Στις εξόδους των τμημάτων από max7219 συνδέεται ένα μικροκύκλωμα, το οποίο αντιστρέφει το σήμα και ένα κύκλωμα τριών τρανζίστορ συνδέεται σε κάθε έξοδο, το οποίο θα πρέπει να συνδεθεί στην κοινή κάθοδο της οθόνης, η οποία επίσης αναστρέφει το σήμα της και αυξάνει το Τάση. Έτσι, έχουμε την ευκαιρία να συνδέσουμε οθόνες με κοινή άνοδο και τάση τροφοδοσίας άνω των 5 βολτ στο max7219

Συνέδεσα έναν δείκτη για τη δοκιμή, όλα λειτουργούν, τίποτα δεν καπνίζει

Ας αρχίσουμε να συλλέγουμε.

Αποφάσισα να χωρίσω το κύκλωμα σε 2 μέρη λόγω του τεράστιου αριθμού άλτων στην έκδοση που χώριζαν τα στραβά πόδια μου, όπου όλα ήταν σε μια σανίδα. Το ρολόι θα αποτελείται από μια μονάδα οθόνης και μια μονάδα ισχύος και ελέγχου. Αποφασίστηκε να μαζευτεί πρώτα το τελευταίο. Ζητώ από αισθητικούς και έμπειρους ραδιοερασιτέχνες να μην λιποθυμήσουν λόγω της σκληρής μεταχείρισης των εξαρτημάτων. Δεν έχω καμία επιθυμία να αγοράσω έναν εκτυπωτή για χάρη του LUT, οπότε το κάνω με τον παλιό τρόπο - εξασκούμαι σε ένα κομμάτι χαρτί, ανοίγω τρύπες σύμφωνα με ένα πρότυπο, σχεδιάζω μονοπάτια με μαρκαδόρο και μετά χαράζω.

Η αρχή της προσάρτησης δεικτών παρέμεινε η ίδια όπως και στις.

Σημειώνουμε τη θέση των ενδείξεων και των εξαρτημάτων χρησιμοποιώντας ένα πρότυπο plexiglass που έχει κατασκευαστεί για ευκολία.

Διαδικασία σήμανσης







Στη συνέχεια, χρησιμοποιώντας ένα πρότυπο, ανοίγουμε τρύπες στα σωστά σημεία και δοκιμάζουμε όλα τα εξαρτήματα. Όλα ταίριαξαν τέλεια.

Σχεδιάζουμε μονοπάτια και χαράσσουμε.




κολύμβηση σε χλωριούχο σίδηρο

Ετοιμος!
πίνακας ελέγχου:


πίνακας ενδείξεων:


Ο πίνακας ελέγχου αποδείχθηκε υπέροχος, το κομμάτι στην πλακέτα οθόνης δεν είχε φαγωθεί πολύ, μπορεί να διορθωθεί, ήρθε η ώρα να κολλήσετε. Αυτή τη φορά έχασα την παρθενία μου από το SMD και συμπεριέλαβα εξαρτήματα 0805 στο κύκλωμα. Τουλάχιστον, οι πρώτες αντιστάσεις και πυκνωτές συγκολλήθηκαν στη θέση τους. Νομίζω ότι θα γίνω καλύτερος σε αυτό, θα είναι πιο εύκολο.
Για κολλήσεις χρησιμοποίησα flux που αγόρασα. Η συγκόλληση με αυτό είναι απόλαυση· τώρα χρησιμοποιώ αλκοολούχο κολοφώνιο μόνο για επικασσιτέρωση.

Εδώ είναι οι έτοιμοι πίνακες. Η πλακέτα ελέγχου διαθέτει θέση για ένα Arduino nano, ένα ρολόι, καθώς και εξόδους για σύνδεση με την πλακέτα οθόνης και αισθητήρες (φωτοαντίσταση για αυτόματη φωτεινότητα και ψηφιακό θερμόμετρο ds18s20) και τροφοδοτικό με ρυθμιζόμενη τάση εξόδου (για μεγάλα συσκευές επτά τμημάτων) και για την τροφοδοσία του ρολογιού και του Arduino, στην πλακέτα οθόνης υπάρχουν υποδοχές τοποθέτησης για οθόνες, υποδοχές για max2719 και uln2003a, μια λύση για την τροφοδοσία τεσσάρων μεγάλων συσκευών επτά τμημάτων και ένα σωρό βραχυκυκλωτήρες.




πίσω πλακέτα ελέγχου

Πίσω πίνακας ενδείξεων:

Τρομερή εγκατάσταση smd:


Εκτόξευση

Αφού κολλήσετε όλα τα καλώδια, τα κουμπιά και τους αισθητήρες, ήρθε η ώρα να τα ενεργοποιήσετε όλα. Η πρώτη εκτόξευση αποκάλυψε αρκετά προβλήματα. Η τελευταία μεγάλη ενδεικτική λυχνία δεν άναψε και οι υπόλοιπες έλαμπαν αμυδρά. Αντιμετώπισα το πρώτο πρόβλημα συγκολλώντας το πόδι του τρανζίστορ SMD και με το δεύτερο - ρυθμίζοντας την τάση που παράγεται από το lm317.
ΕΙΝΑΙ ΖΩΝΤΑΝΟ!

Ένα από τα πρώτα έργα που κατασκευάζουν οι αρχάριοι χρησιμοποιώντας μια πλακέτα Arduino είναι ένα απλό ρολόι που κρατά το χρόνο. Βασικά, τέτοια ρολόγια βασίζονται σε μια μονάδα RTC (Ρολόι πραγματικού χρόνου) που είναι συνδεδεμένη στο Arduino. Σήμερα, ηλεκτρονικά εξαρτήματα είναι διαθέσιμα στην αγορά διαφορετικά μοντέλα RTC που διαφέρουν ως προς την ακρίβεια και την τιμή. Τα κοινά μοντέλα περιλαμβάνουν τα DS1302, DS1307, DS3231.



Αλλά μπορείτε να φτιάξετε ένα ρολόι στο Arduino χωρίς να χρησιμοποιήσετε RTC, ειδικά εάν δεν μπορείτε να αποκτήσετε τέτοιες μονάδες. Φυσικά, η ακρίβεια σε αυτή την περίπτωση θα είναι χαμηλή, επομένως το έργο θα πρέπει μάλλον να θεωρηθεί ως εκπαιδευτικό έργο.


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


Αυτό το ρολόι μπορεί να συναρμολογηθεί σε κανονικό breadboard, καθώς δεν απαιτεί πολλά εξαρτήματα. Ο κύριος σύνδεσμός μας εδώ θα είναι η πλακέτα Arduino Uno. Για να εμφανίσετε την ώρα, μπορείτε να πάρετε μια οθόνη LCD 16x2. Για να αλλάξετε τις ρυθμίσεις ώρας, πρέπει να συνδέσετε δύο κουμπιά (για ώρες και λεπτά). Τα κουμπιά συνδέονται στο Aduino μέσω αντιστάσεων 10KΩ. Για να αλλάξετε τη φωτεινότητα της οθόνης θα χρειαστείτε ένα ποτενσιόμετρο 10 kOhm. Το διάγραμμα σύνδεσης για όλα αυτά τα εξαρτήματα στην πλακέτα Arduino Uno παρουσιάζεται παρακάτω.



Τώρα πρέπει να προγραμματίσετε το Arduino. Ένας απλός κωδικός (σκίτσο) που σας επιτρέπει να εμφανίσετε την ώρα στην οθόνη LCD δίνεται παρακάτω.


#περιλαμβάνω LCD LiquidCrystal (12,11,5,4,3,2). int h=12; int m; int s; int flag? int TIME; const int hs=8; const int ms=9; int state1; int state2; void setup() ( lcd.begin(16,2); ) void loop() ( lcd.setCursor(0,0); s=s+1; lcd.print("TIME:"); lcd.print(h ); lcd.print(":"); lcd.print(m); lcd.print(":"); lcd.print(s); if(σημαία<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); if(flag==24)flag=0; καθυστέρηση (1000); lcd.clear(); if(s==60)(s=0; m=m+1; ) if(m==60) ( m=0; h=h+1; flag=flag+1; ) if(h==13 ) (h = 1;) lcd.setCursor (0,1); lcd.print ("Καλή μέρα"); //-------Ώρα // ρύθμιση-------// state1=digitalRead(hs); αν (state1 == 1) (h = h+1; flag = flag+1; if (σημαία<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); if(flag==24)flag=0; if(h==13)h=1; ) state2=digitalRead(ms); if(κατάσταση2==1)( s=0; m=m+1; ) )

   Σας ευχαριστούμε για το ενδιαφέρον σας πληροφοριακό έργοδικτυακός τόπος.
   Εάν θέλετε ενδιαφέρον και χρήσιμο υλικό να δημοσιεύεται πιο συχνά και με λιγότερη διαφήμιση,
   Μπορείτε να υποστηρίξετε το έργο μας δωρίζοντας οποιοδήποτε ποσό για την ανάπτυξή του.

Ρολόι με οπίσθιο φωτισμό LED και παλλόμενο λεπτοδείκτη σε μικροελεγκτή Arduino
Αυτό το μοναδικό ρολόι με οπίσθιο φωτισμό LED και παλλόμενο λεπτοδείκτη κατασκευάστηκε χρησιμοποιώντας το τσιπ ελεγκτή PWM TLC5940. Το κύριο καθήκον του είναι να επεκτείνει τον αριθμό των επαφών διαμόρφωσης PWM. Ένα άλλο χαρακτηριστικό αυτού του ρολογιού είναι ότι έχει μετατρέψει ένα αναλογικό βολτόμετρο σε συσκευή που μετρά λεπτά. Για να γίνει αυτό, εκτυπώθηκε μια νέα ζυγαριά σε έναν τυπικό εκτυπωτή και επικολλήθηκε πάνω από τον παλιό. Ως εκ τούτου, το 5ο λεπτό δεν υπολογίζεται, απλώς κατά τη διάρκεια του πέμπτου λεπτού ο μετρητής χρόνου δείχνει το βέλος που δείχνει προς το τέλος της κλίμακας (εκτός κλίμακας). Ο κύριος έλεγχος εφαρμόζεται στον μικροελεγκτή Arduino Uno.

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

Βήμα 1: Απαιτούμενα εξαρτήματα



Εδώ είναι τι θα χρειαστείτε:

  • Μονάδα αναλογικού βολτόμετρου 5V DC.
  • Μικροελεγκτής Arduino UNO ή άλλο κατάλληλο Arduino.
  • Πλακέτα κυκλώματος Arduino (πρωτοπλακέτα).
  • Μονάδα ρολογιού πραγματικού χρόνου (RTC) DS1307.
  • Μονάδα με ελεγκτή PWM TLC5940;
  • Οπίσθιοι φωτισμοί LED πετάλων – 12 τεμ.;
  • Εξαρτήματα για τη συναρμολόγηση κυκλώματος αυτόματου ελέγχου φωτεινότητας (LDR).

Επίσης, για την παραγωγή κάποιων άλλων εξαρτημάτων του έργου, είναι επιθυμητό να υπάρχει πρόσβαση σε τρισδιάστατο εκτυπωτή και μηχανή κοπής λέιζερ. Υποτίθεται ότι έχετε αυτήν την πρόσβαση, επομένως οι οδηγίες θα περιλαμβάνουν κατασκευαστικά σχέδια στα κατάλληλα στάδια.

Βήμα 2: Κλήση




Το καντράν αποτελείται από τρία μέρη (στρώσεις) κομμένα σε μηχανή κοπής λέιζερ από φύλλο MDF 3 mm, τα οποία στερεώνονται μεταξύ τους με μπουλόνια. Μια πλάκα χωρίς υποδοχές (κάτω δεξιά στην εικόνα) τοποθετείται κάτω από μια άλλη πλάκα για να τοποθετηθούν τα LED (κάτω αριστερά). Στη συνέχεια, τοποθετούνται μεμονωμένα LED στις κατάλληλες υποδοχές και ο μπροστινός πίνακας τοποθετείται από πάνω (πάνω στο σχήμα). Τέσσερις τρύπες ανοίγονται κατά μήκος της άκρης του καντράν, μέσω των οποίων και τα τρία μέρη βιδώνονται μεταξύ τους.

  • Για τη δοκιμή της απόδοσης των LED σε αυτό το στάδιο, χρησιμοποιήθηκε μια μπαταρία σε σχήμα νομίσματος CR2032.
  • Για τη στερέωση των LED, χρησιμοποιήθηκαν μικρές λωρίδες κολλητικής ταινίας, οι οποίες ήταν κολλημένες στο πίσω μέρος των LED.
  • Όλα τα πόδια LED ήταν προ-λυγισμένα ανάλογα.
  • Ανοίχτηκαν ξανά οι τρύπες κατά μήκος των άκρων, μέσω των οποίων πραγματοποιήθηκε το μπουλόνι. Αποδείχθηκε ότι αυτό ήταν πολύ πιο βολικό.

Το τεχνικό σχέδιο των μερών του καντράν είναι διαθέσιμο στη διεύθυνση:

Βήμα 3: Σχεδιάστε το κύκλωμα



Σε αυτό το στάδιο αναπτύχθηκε ηλεκτρικό διάγραμμα. Για το σκοπό αυτό χρησιμοποιήθηκαν διάφορα σχολικά βιβλία και οδηγοί. Δεν θα εμβαθύνουμε πολύ σε αυτή τη διαδικασία· τα δύο παρακάτω αρχεία δείχνουν το τελειωμένο ηλεκτρικό κύκλωμα που χρησιμοποιήθηκε σε αυτό το έργο.

Βήμα 4: Σύνδεση της πλακέτας κυκλώματος Arduino





  1. Το πρώτο βήμα είναι να ξεκολλήσετε όλες τις επαφές της βελόνας στις πλακέτες κυκλωμάτων και στις πλακέτες τμημάτων.
  2. Επιπλέον, λόγω του γεγονότος ότι η ισχύς 5V και το GND χρησιμοποιούνται από τόσες πολλές πλακέτες και περιφερειακές συσκευές, για αξιοπιστία, δύο καλώδια για 5V και GND συγκολλήθηκαν στην πλακέτα κυκλώματος.
  3. Στη συνέχεια, ένας ελεγκτής PWM TLC5940 εγκαταστάθηκε δίπλα στις χρησιμοποιημένες επαφές.
  4. Στη συνέχεια, ο ελεγκτής TLC5940 συνδέεται σύμφωνα με το διάγραμμα σύνδεσης.
  5. Για να είναι δυνατή η χρήση της μπαταρίας, εγκαταστάθηκε μια μονάδα RTC στην άκρη της πλακέτας κυκλώματος. Εάν το κολλήσετε στη μέση της σανίδας, τα σημάδια των καρφίδων δεν θα είναι ορατά.
  6. Η μονάδα RTC έχει συνδεθεί σύμφωνα με το διάγραμμα σύνδεσης.
  7. Έχει συναρμολογηθεί ένα κύκλωμα αυτόματου ελέγχου φωτεινότητας (LDR), μπορείτε να το δείτε στον σύνδεσμο
  8. Τα καλώδια για το βολτόμετρο συνδέονται συνδέοντας τα καλώδια στον πείρο 6 και στο GND.
  9. Στο τέλος, συγκολλήθηκαν 13 καλώδια για τα LED (Στην πράξη, αποδείχθηκε ότι ήταν καλύτερο να γίνει αυτό πριν προχωρήσετε στο βήμα 3).

Βήμα 5: Κωδικός

Ο παρακάτω κώδικας συντάχθηκε από διάφορα κομμάτια στοιχείων ρολογιού που βρέθηκαν στο Διαδίκτυο. Έχει γίνει πλήρης εντοπισμός σφαλμάτων και είναι πλέον πλήρως λειτουργικός, ενώ έχουν προστεθεί αρκετά λεπτομερή σχόλια. Αλλά πριν φορτώσετε στον μικροελεγκτή, λάβετε υπόψη τα ακόλουθα σημεία:

  • Πριν αναβοσβήσετε το υλικολογισμικό του Arduino, πρέπει να αφαιρέσετε το σχολιασμό της γραμμής που ορίζει την ώρα:
    rtc.adjust(DateTime(__DATE__, __TIME__))
    Αφού αναβοσβήσετε το χειριστήριο με αυτή τη γραμμή (η ώρα έχει ρυθμιστεί), πρέπει να το σχολιάσετε ξανά και να αναβοσβήσετε ξανά το χειριστήριο. Αυτό επιτρέπει στη μονάδα RTC να χρησιμοποιεί την μπαταρία για να θυμάται την ώρα εάν χαθεί η κύρια ισχύς.
  • Κάθε φορά που χρησιμοποιείτε το "Tlc.set()" πρέπει να χρησιμοποιείτε το "Tlc.update"

Βήμα 6: Εξωτερικός δακτύλιος

Ο εξωτερικός δακτύλιος ρολογιού εκτυπώθηκε 3D χρησιμοποιώντας έναν εκτυπωτή Replicator Z18. Προσαρμόζεται στο ρολόι χρησιμοποιώντας βίδες στην πρόσοψη του ρολογιού. Παρακάτω είναι ένα αρχείο με ένα τρισδιάστατο μοντέλο του δακτυλίου για εκτύπωση σε εκτυπωτή 3D.

Βήμα 7: Συναρμολόγηση του ρολογιού


Ο μικροελεγκτής Arduino με όλα τα άλλα ηλεκτρονικά στερεώθηκε στο πίσω μέρος του ρολογιού χρησιμοποιώντας βίδες και παξιμάδια ως αποστάτες. Έπειτα συνέδεσα όλα τα LED, το αναλογικό βολτόμετρο και το LDR στα καλώδια που ήταν προηγουμένως κολλημένα στην πλακέτα κυκλώματος. Όλα τα LED συνδέονται μεταξύ τους με ένα πόδι και συνδέονται με τον πείρο VCC στον ελεγκτή TLC5940 (ένα κομμάτι σύρματος είναι απλά συγκολλημένο σε κύκλο).

Μέχρι στιγμής, όλα αυτά δεν είναι πολύ καλά μονωμένα από βραχυκυκλώματα, αλλά οι εργασίες για αυτό θα συνεχιστούν σε μελλοντικές εκδόσεις.




Μπλουζα