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

Μικρό ρολόι οθόνης μήτρας LED: 8 βήματα
Μικρό ρολόι οθόνης μήτρας LED: 8 βήματα

Βίντεο: Μικρό ρολόι οθόνης μήτρας LED: 8 βήματα

Βίντεο: Μικρό ρολόι οθόνης μήτρας LED: 8 βήματα
Βίντεο: Η ΣΙΝΤΕΡΕΛΑ ΚΑΝΕΙ ΤΑΤΟΥ ΣΕ ΚΡΥΦΟ ΣΗΜΕΙΟ 2024, Ιούλιος
Anonim
Image
Image
Μικρό ρολόι οθόνης μήτρας LED
Μικρό ρολόι οθόνης μήτρας LED
Μικρό ρολόι οθόνης μήτρας LED
Μικρό ρολόι οθόνης μήτρας LED
Μικρό ρολόι οθόνης μήτρας LED
Μικρό ρολόι οθόνης μήτρας LED

Πάντα ήθελα να έχω παλιομοδίτικο επιτραπέζιο ρολόι, που μοιάζει με κάτι από τις ταινίες της δεκαετίας του 90, με αρκετά ταπεινή λειτουργικότητα: ρολόι σε πραγματικό χρόνο, ημερομηνία, αλλαγή φωτισμού φόντου, ηχητικό σήμα και επιλογή συναγερμού. Έτσι, μου ήρθε μια ιδέα, να φτιάξω μία: Μια ψηφιακή συσκευή, βασισμένη σε μικροελεγκτή με όλες τις δυνατότητες που ανέφερα παραπάνω, και τροφοδοτείται από USB - είτε από υπολογιστή είτε από φορτιστή USB για κινητά. Δεδομένου ότι ήθελα να το κάνω προγραμματιζόμενο, με μενού και προσαρμογή ρυθμίσεων, η τοποθέτηση MCU ήταν αναπόφευκτη σε αυτό το έργο. Το ATMEGA328P IC (από το οποίο αποτελείται κάθε πίνακας Arduino Uno) επιλέχθηκε να είναι ο "εγκέφαλος" του κυκλώματος (Μιλώντας για αυτό, είχα μόλις πολλά από αυτά). Συνδυάζοντας μερικά ηλεκτρονικά μέρη ως RGB LED, ένα τσιπ χρονομέτρησης φόρτισης και κουμπιά, επέτρεψαν τη δημιουργία ολόκληρου του έργου-Προγραμματιζόμενος μικρού μεγέθους επιτραπέζιο ρολόι οθόνης LED.

Έτσι, αφού καλύψαμε την οντότητα του έργου, ας το κατασκευάσουμε

Βήμα 1: Η ιδέα

Η ιδέα
Η ιδέα

Όπως αναφέρθηκε προηγουμένως, η συσκευή μας περιέχει μερικές οθόνες LED μήτρας με καλή εμφάνιση, οπίσθιο φωτισμό LED RGB που αλλάζει χρώμα, τσιπ χρονομέτρησης με σταγόνα φόρτισης, βολική μονάδα τροφοδοσίας USB και περίβλημα μικρού μεγέθους.

Ας περιγράψουμε το μπλοκ διάγραμμα λειτουργίας της συσκευής ανά μέρη:

1. Μονάδα τροφοδοσίας:

Δεδομένου ότι η συσκευή λειτουργεί σε 5 Volts DC, το τροφοδοτικό αποτελείται από δύο ξεχωριστά κυκλώματα:

  • Είσοδος Micro -USB - Για άμεσο τροφοδοτικό φορτιστή / υπολογιστή.
  • Κύκλωμα ρυθμιστή γραμμικής τάσης 5V βασισμένο σε LM7805 IC.

Το κύκλωμα IC LM7805 είναι προαιρετικό, εκτός εάν προτιμάτε να εφαρμόσετε διαφορετική διαθεσιμότητα εισόδου τροφοδοσίας. Στη συσκευή μας, χρησιμοποιείται τροφοδοτικό Micro-USB.

2. Μονάδα μικροελεγκτή:

Ο μικροελεγκτής ATMEGA328P, λειτουργεί ως «εγκέφαλος» ολόκληρης της συσκευής. Σκοπός του είναι να επικοινωνεί με όλα τα περιφερειακά κυκλώματα, να παρέχει τα απαραίτητα δεδομένα και να ελέγχει τη διεπαφή χρήστη της συσκευής. Δεδομένου ότι ο επιλεγμένος μικροελεγκτής είναι ATMEGA328P, θα χρειαστούμε το Atmel Studio και τις βασικές γνώσεις C (τα σχήματα και οι ακολουθίες προγραμματισμού περιγράφονται στα επόμενα βήματα).

3. Κύκλωμα ρολογιού πραγματικού χρόνου:

Το δεύτερο πιο σημαντικό κύκλωμα στη συσκευή. Σκοπός του είναι να παρέχει δεδομένα ημερομηνίας και ώρας, με απαίτηση αποθήκευσης, χωρίς εξάρτηση από τη σύνδεση ισχύος εισόδου, δηλαδή τα δεδομένα χρόνου ανανεώνονται σε πραγματικό χρόνο. Προκειμένου να καταστεί δυνατό το στοιχείο RTC να συνεχίσει να αλλάζει δεδομένα ώρας / ημερομηνίας, προστίθεται στο κύκλωμα μπαταρία νομισμάτων 3V. Το IC είναι DS1302, η λειτουργία του περιγράφεται σε περαιτέρω βήματα.

4. Διεπαφή εισόδου - Διακόπτες με κουμπιά:

Οι διακόπτες εισόδου PB παρέχουν διεπαφή εισόδου για το χρήστη. Αυτοί οι διακόπτες υποβάλλονται σε επεξεργασία στο πρόγραμμα που καθορίζεται από τη MCU και τη συσκευή ελέγχου.

5. Οθόνη μήτρας LED

Η οθόνη της συσκευής αποτελείται από δύο μήκους αλφαριθμητικών οδηγήσεων HCMS-2902 τυλιγμένων με IC, κάθε IC έχει 4 χαρακτήρες 5x7 μικροσκοπικής μήτρας LED. Αυτές οι οθόνες είναι απλές στη χρήση, υποστηρίζονται από επικοινωνία 3-Wire και μικρού μεγέθους-όλα όσα χρειαζόμαστε σε αυτό το έργο.

6. Οπίσθιος φωτισμός RGB:

Ο οπίσθιος φωτισμός που αλλάζει χρώμα βασίζεται σε εξωτερικό RGB LED, που ελέγχεται από σήματα PWM που προέρχονται από το MCU. Σε αυτό το έργο, το RGB LED έχει συνολικά 4 ακίδες: R, G, B και κοινές, όπου η παλέτα χρωμάτων R, G, B ελέγχεται μέσω PWM από MCU.

7. Buzzer:

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

Βήμα 2: Μέρη και όργανα

Μέρη και όργανα
Μέρη και όργανα

I. Ηλεκτρονικά:

A. Ενσωματωμένα και ενεργά συστατικά:

  • 1 x ATMEGA328P - MCU
  • 2 x HCMS2902 - Οθόνες AVAGO
  • 1 x DS1302 - RTC
  • 1 x 2N2222A - BJT (NPN)

Β. Παθητικά συστατικά:

  • Αντιστάσεις:

    • 5 x 10K
    • 1 x 180R
    • 2 x 100R
  • Πυκνωτές:

    • 3 x 0.1uF
    • 1 x 0,47uF
    • 1 x 100uF
    • 2 x 22pF
  • 1 x 4 ακίδων RGB LED
  • 1 x Buzzer
  • 1 x 32,768KHz κρύσταλλο

Γ. Συνδέσεις:

  • 1 x Υποδοχή Micro-USB
  • 2 x 6-pin τυπικός σύνδεσμος βήματος (100mil).
  • Σύνδεση 2 x 4 ακίδων στάνταρ βήματος (100mil).
  • 1 x Θήκη μπαταρίας σε σχήμα νομίσματος.

Δ. Διάφορα:

  • 3 x διακόπτες με κουμπί SPST
  • Μπαταρία 1 x 3V Coin-cell.

Ε. Προαιρετικό τροφοδοτικό:

  • 1 x LM7805 - Γραμμικός ρυθμιστής
  • 2 x 0.1uF Καπάκι
  • 2 x 100uF Cap

II Μηχανικός:

  • 1 x Πλαστικό περίβλημα
  • 4 x Εξαρτήματα από καουτσούκ
  • 1 x πρωτότυπο σανίδα συγκόλλησης
  • 1 x κεφαλίδα MCU (Σε περίπτωση βλάβης μικροελεγκτή)
  • 2 x Μικρά μπουλόνια 8mm
  • Πλυντήρια 2 x 8mm

III. Όργανα και υλικά:

  • Συγκόλληση καλωδίων
  • Σωλήνες συρρίκνωσης
  • Κασσίτερος συγκόλλησης
  • Συγκολλητικό σίδερο
  • Κόπτης
  • Πένσα
  • Τσιμπιδακι ΦΡΥΔΙΩΝ
  • Τρυπάνια
  • Μικρού μεγέθους αρχείο
  • Διάφορα κατσαβίδια
  • Διαβήτης
  • Πολύμετρο
  • Breadboard (προαιρετικό)
  • Καλώδιο Micro USB
  • Αρχείο μεσαίου μεγέθους
  • Πυροβόλο θερμό κόλλα
  • Προγραμματιστής AVR ISP

IV. Προγραμματισμός:

  • Atmel Studio 6.3 ή 7.0.
  • ProgISP ή AVRDude
  • Microsoft Excel (Για δημιουργία χαρακτήρων εμφάνισης)

Βήμα 3: Περιγραφή σχημάτων

Σχήματα Περιγραφή
Σχήματα Περιγραφή

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

A. Κύριος πίνακας στοιχείων:

Όπως αναφέρθηκε προηγουμένως, όλα τα κατάλληλα υπο-κυκλώματα που θέλουμε να είναι «μέσα» στη συσκευή, τοποθετούνται σε μια πρωτότυπη πλακέτα μονής κοπής. Ας προχωρήσουμε στην εξήγηση της λειτουργίας κυκλωμάτων που τοποθετούνται στον κύριο πίνακα:

1. Κύκλωμα μικροελεγκτή:

Το MCU που χρησιμοποιείται σε αυτό το έργο είναι ένα ATMEGA328P. Τροφοδοτείται από εξωτερικό τροφοδοτικό 5V, στην περίπτωση αυτή - υποδοχή micro USB. Όλες οι κατάλληλες ακίδες εισόδου/εξόδου συνδέονται σύμφωνα με τις απαιτήσεις σχεδιασμού. Η χαρτογράφηση θυρών εισόδου/εξόδου είναι εύκολο να γίνει κατανοητή, καθώς όλα τα καθαρά ονόματα ορίζονται ακριβώς όπως θα χρησιμοποιηθούν στο βήμα προγραμματισμού. Το MCU έχει απλό κύκλωμα επαναφοράς RC, το οποίο χρησιμοποιείται είτε για την ακολουθία προγραμματισμού και την εκκίνηση ισχύος.

Το κρίσιμο μέρος του MCU είναι το κύκλωμα προγραμματισμού. Υπάρχει ένας σύνδεσμος προγραμματισμού 6 ακίδων - J5, βεβαιωθείτε ότι τα δίκτυα VCC, GND και RESET είναι κοινά για τον εξωτερικό προγραμματιστή ISP και τον κύριο πίνακα εξαρτημάτων.

2. Κύκλωμα ρολογιού σε πραγματικό χρόνο:

Το επόμενο κύκλωμα, είναι ένα κύριο περιφερειακό μέρος του έργου. Το DS1302 είναι ένα IC χρονομέτρησης φόρτισης που παρέχει τιμές επεξεργασμένης ώρας και ημερομηνίας στη μονάδα επεξεργασίας μας. Το DS1302 επικοινωνεί με MCU μέσω 3-καλωδιακής διασύνδεσης, παρόμοια με την επικοινωνία SPI 3-καλωδίων, στις ακόλουθες γραμμές:

  • RTC_SCK (Έξοδος): Εκτελεί οδήγηση και δειγματοληψία δεδομένων που μεταδίδονται στη γραμμή SDO.
  • RTC_SDO (I/O): Γραμμή οδήγησης δεδομένων. Λειτουργεί ως είσοδος στο MCU όταν λαμβάνονται δεδομένα ώρας/ημερομηνίας και ως έξοδος κατά τη μετάδοση δεδομένων (Βλέπε βήμα Βασικά Προγραμματισμός για περαιτέρω επεξήγηση).
  • RTC_CE: (Έξοδος): Γραμμή ενεργοποίησης μετάδοσης δεδομένων. Όταν οριστεί Υ HIGHΗΛΗ από το MCU, τα δεδομένα είναι έτοιμα για μετάδοση/λήψη.

Το DS1302 απαιτεί έναν εξωτερικό κρυσταλλικό ταλαντωτή 32.768KHz για την επαρκή συμπεριφορά του κυκλώματος. Προκειμένου να αποφευχθεί η μεγάλη μετατόπιση στο σύστημα καταμέτρησης κυκλωμάτων (τα φαινόμενα Drift είναι απλώς αναπόφευκτα σε αυτούς τους τύπους ολοκληρωμένων κυκλωμάτων), πρέπει να τοποθετήσετε δύο πυκνωτές βαθμονόμησης σε κάθε πείρο κρυστάλλου (Βλέπε μέρη X1, C8 και C9 στα σχήματα). Το 22pF ήταν μια βέλτιστη τιμή μετά από πολλά πειράματα με μέτρα τήρησης χρόνου σε αυτό το έργο, οπότε, όταν πρόκειται να κολλήσετε εντελώς το κύκλωμα, βεβαιωθείτε ότι υπάρχει μια επιλογή να αντικαταστήσετε αυτούς τους πυκνωτές με αυτούς με άλλες τιμές. Αλλά το 22pF για πίνακες μικρού μεγέθους λειτούργησε αρκετά καλά για πολύ μικρή μετατόπιση (7 δευτερόλεπτα το μήνα).

Το τελευταίο αλλά όχι εξίσου σημαντικό στοιχείο σε αυτό το κύκλωμα-3V μπαταρία σε σχήμα νομίσματος πρέπει να τοποθετηθεί στην πλακέτα για να τροφοδοτήσει αρκετή ενέργεια στο IC DS1302, ώστε να συνεχίσει τη λειτουργία μέτρησης χρόνου.

4. Μήτρα LED 8 χαρακτήρων:

Η οθόνη της συσκευής βασίζεται σε 2 x 4 χαρακτήρες IC Matrix LED, προγραμματισμένες μέσω 3-καλωδίων, παρόμοια με το DS1302 του κυκλώματος RTC, με μία μόνο διαφορά, ότι η γραμμή παροχής δεδομένων (SDI) ορίζεται ως έξοδος MCU (Εκτός αν θέλετε να προσθέσετε ικανότητα ελέγχου κατάστασης στο κύκλωμα οθόνης). Οι οθόνες συνδυάζονται σε μια σειρά 3-Wire επέκτασης, οπότε και τα δύο IC λειτουργούν ως μια ενιαία συσκευή εμφάνισης, όπου υπάρχει η δυνατότητα προγραμματισμού της για όλους τους χαρακτήρες της οθόνης (Βλέπε συνδυασμό σειράς SPI). Όλα τα καθαρά ονόματα του κυκλώματος, ταιριάζουν με τις κατάλληλες συνδέσεις MCU - σημειώστε ότι υπάρχουν κοινά δίκτυα, τα οποία δημιουργούν επικοινωνία μεταξύ των οθονών και το thefe δεν χρειάζεται να συνδέσει και τις δύο διεπαφές επικοινωνίας οθόνης στο MCU. Ο προγραμματισμός και η ακολουθία δημιουργίας χαρακτήρων ορίζονται σε περαιτέρω βήματα. Κύκλωμα διεπαφής χρήστη:

Η διεπαφή χρήστη χωρίζεται σε δύο υποομάδες-Συστήματα εισόδου και εξόδου: Σύστημα εισόδου: Η ίδια η συσκευή έχει εισάγει από τον χρήστη την είσοδο που ορίζεται ως τρεις διακόπτες κουμπιών SPST, με πρόσθετες αντιστάσεις έλξης, προκειμένου να οδηγήσει την καθορισμένη λογική είτε Υ HIGHΗΛΗ είτε ΧΑΜΗΛΗ το MCU. Αυτοί οι διακόπτες παρέχουν σύστημα ελέγχου για ολόκληρο τον προγραμματισμένο αλγόριθμο, αφού υπάρχει ανάγκη προσαρμογής των τιμών ώρας/ημερομηνίας, ελέγχου μενού κ.ο.κ.

6. Σύστημα εξόδου:

Το κύκλωμα A. Buzzer παρέχει έξοδο ήχου και στις δύο καταστάσεις, αλλάζοντας μενού τον αλγόριθμο ήχου και συναγερμού. Το τρανζίστορ NPN χρησιμοποιείται ως διακόπτης, παρέχοντας αρκετό ρεύμα στον βομβητή, κάνοντάς τον να ακούγεται με την κατάλληλη ελαστικότητα. Ο βομβητής ελέγχεται απευθείας από το λογισμικό της MCU. B. Το RGB LED χρησιμοποιείται ως μέρος οπίσθιου φωτισμού της συσκευής. Ελέγχεται απευθείας από MCU, με τέσσερις επιλογές για επιλογή οπίσθιου φωτισμού: ΚΟΚΚΙΝΟ, ΠΡΑΣΙΝΟ, ΜΠΛΕ, PWM ή OFF. Σημειώστε ότι οι αντιστάσεις που συνδέονται σε σειρά με τις ακίδες LED R, G και B έχουν διαφορετικές τιμές, καθώς κάθε χρώμα έχει διαφορετική ένταση σε σταθερό ρεύμα. Για τα πράσινα και μπλε LEDS υπάρχουν τα ίδια χαρακτηριστικά, όταν το κόκκινο έχει ελαφρώς μεγαλύτερη ένταση. Έτσι, το κόκκινο LED συνδέεται με τη μεγαλύτερη τιμή αντίστασης - στην περίπτωση αυτή: 180Ohm (Βλέπε επεξήγηση LED RGB).7. Συνδέσεις:

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

Βήμα 4: Συγκόλληση

Συγκόλληση
Συγκόλληση
Συγκόλληση
Συγκόλληση
Συγκόλληση
Συγκόλληση

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

1. MCU και σύνδεσμος προγραμματισμού: συνιστάται η συγκόλληση κεφαλίδας 28 ακίδων αντί του ίδιου του MCU, ώστε να μπορείτε να αντικαταστήσετε το IC MCU σε περίπτωση βλάβης. Βεβαιωθείτε ότι η συσκευή μπορεί να προγραμματιστεί και να ενεργοποιηθεί. Συνιστάται να τοποθετήσετε το αυτοκόλλητο περιγραφής καρφιτσών στην υποδοχή προγραμματισμού (Δείτε την τρίτη εικόνα).

2. Κύκλωμα RTC: αφού κολλήσετε όλα τα απαραίτητα μέρη, βεβαιωθείτε ότι οι πυκνωτές βαθμονόμησης είναι εύκολο να αντικατασταθούν. Εάν θέλετε να χρησιμοποιήσετε θήκη μπαταρίας 3V - βεβαιωθείτε ότι ταιριάζει με τις διαστάσεις του περιβλήματος της συσκευής.

3. Οθόνη: Δύο IC της οθόνης πρέπει να συγκολληθούν στον ξεχωριστό πίνακα μικρού μεγέθους (Εικ. 1). Μετά τη συγκόλληση όλων των απαιτούμενων διχτυών, πρέπει να προετοιμάσετε καλώδια εκτός σκάφους (Εικ. 4): αυτά τα καλώδια πρέπει να συγκολληθούν και να γίνουν στο πλάι της πλακέτας οθόνης, σημειώστε ότι η τάση και η μηχανική καταπόνηση που εφαρμόζεται στα σύρματα δεν θα επηρεάζουν τις αρθρώσεις συγκόλλησης στην πλακέτα οθόνης.

4. Στα σύρματα από το προηγούμενο βήμα, πρέπει να τοποθετηθούν αυτοκόλλητα ετικέτας - κάτι που θα διευκόλυνε πολύ τη διαδικασία συναρμολόγησης στο επόμενο βήμα. Προαιρετικό βήμα: προσθέστε έναν αρσενικό σύνδεσμο μονής ακίδας σε κάθε καλώδιο (στυλ Arduino).

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

6. Κύκλωμα βομβητή: ο βομβητής βρίσκεται μέσα στη συσκευή, επομένως θα πρέπει να συγκολληθεί στην κεντρική πλακέτα, δεν υπάρχει ανάγκη για τη σύνδεση διασύνδεσης.

7. LED RGB: Για να εξοικονομήσω χώρο στον κύριο πίνακα, έχω κολλήσει τις αντιστάσεις σειράς στις ακίδες LED, όπου κάθε αντίσταση αντιστοιχεί στο δικό του ταιριαστό χρώμα και τον κατάλληλο πείρο MCU (Εικ. 5).

Βήμα 5: Συναρμολόγηση

Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση
Συναρμολόγηση

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

Μέρος Α: Περίβλημα

1. Τρυπήστε τρεις οπές, σύμφωνα με τη διάμετρο του κουμπιού (3 mm σε αυτήν την περίπτωση).2. Τρυπήστε μια τρύπα αφιερωμένη στον βομβητή στο πλάι του περιβλήματος. Μπορεί να χρησιμοποιηθεί οποιαδήποτε επιθυμητή διάμετρος τρυπανιού. Τρυπήστε μια μικρή τρύπα ως βάση για λείανση σύμφωνα με την υποδοχή USB που πρέπει να χρησιμοποιήσετε (Micro USB σε αυτή την περίπτωση). Στη συνέχεια, εκτελέστε λείανση με το αρχείο μικρού μεγέθους, για να ταιριάζει με τις διαστάσεις του συνδέσμου. Τρυπήστε σχετικά μεγάλη τρύπα ως βάση για λείανση. Εκτελέστε λείανση με ένα αρχείο μεσαίου μεγέθους, σύμφωνα με τις διαστάσεις της οθόνης. Βεβαιωθείτε ότι υπάρχουν IC στην οθόνη στην εξωτερική πλευρά του περιβλήματος. Τρυπήστε μεσαίου μεγέθους τρύπα στο κάτω μέρος της συσκευής, σύμφωνα με τη διάμετρο LED RGB. Μέρος Β - Συνημμένα:

1. Συγκολλήστε δύο καλώδια σε καθένα από τα τρία κουμπιά (GND και σήμα). Συνιστώνται αυτοκόλλητα ετικετών και συνδετήρες μονής ακίδας στα καλώδια. Συνδέστε τέσσερα προετοιμασμένα καλώδια στις ακίδες LED RGB. Τοποθετήστε αυτοκόλλητα ετικέτας και σωλήνες συρρίκνωσης στις αρθρώσεις συγκόλλησης. Συνδέστε τέσσερα ελαστικά πόδια στο κάτω μέρος της συσκευής. Μέρος Γ - Σύνδεση των εξαρτημάτων:

1. Τοποθετήστε την ενδεικτική λυχνία RGB στο κάτω μέρος του περιβλήματος, συνδέστε την στην ειδική υποδοχή στην κύρια πλακέτα. Συνδέστε το με τη θερμή κόλλα.2. Τοποθετήστε τρεις διακόπτες με κουμπιά, συνδέστε τους στην ειδική υποδοχή στην κύρια πλακέτα, συνδέστε τους με τη θερμή κόλλα. Τοποθετήστε τη θύρα USB, συνδέστε την στις ακίδες τροφοδοσίας της υποδοχής προγραμματισμού (VCC και GND). Βεβαιωθείτε ότι η πολικότητα των γραμμών τροφοδοσίας ταιριάζει με συγκολλημένα μέρη. Συνδέστε το με ζεστή κόλλα.4. Τοποθετήστε την πλακέτα οθόνης, συνδέστε την σε αποκλειστική υποδοχή. Συνδέστε το με τη ζεστή κόλλα. Σημειώσεις:

1. Συνιστάται να προσθέσετε ζεύγη μπουλονιών-παξιμαδιών στον κύριο πίνακα-περίβλημα και στο επάνω κάλυμμα (Όπως φαίνεται σε αυτήν την περίπτωση).2. Προκειμένου να αποφευχθεί η βλάβη των καλωδίων, πρέπει να ληφθεί υπόψη η τοποθέτησή τους στο εσωτερικό του περιβλήματος.

Βήμα 6: Σύντομη εισαγωγή προγραμματισμού

Σύντομη εισαγωγή προγραμματισμού
Σύντομη εισαγωγή προγραμματισμού
Σύντομη εισαγωγή προγραμματισμού
Σύντομη εισαγωγή προγραμματισμού
Σύντομη εισαγωγή προγραμματισμού
Σύντομη εισαγωγή προγραμματισμού

Αφού συγκολληθούν όλα τα μέρη, συνιστάται η εκτέλεση των αρχικών δοκιμών συσκευής πριν προχωρήσετε στο τελικό βήμα συναρμολόγησης. Ο κωδικός MCU είναι γραμμένος σε C και ο ATMEGA328P προγραμματίζεται μέσω οποιουδήποτε προγραμματιστή ISP (Υπάρχουν διάφοροι τύποι συσκευών προγραμματισμού Atmel: AVR MKII, AVR DRAGON κλπ. - Έχω χρησιμοποιήσει φθηνό προγραμματιστή USB ISP από το eBay, που ελέγχεται από λογισμικό ProgISP ή AVRDude). Το περιβάλλον προγραμματισμού πρέπει να είναι Atmel Studio 4 και άνω (συνιστώ ανεπιφύλακτα τις νεότερες εκδόσεις λογισμικού). Εάν χρησιμοποιείται εξωτερικός, μη εγγενής προγραμματιστής του Atmel Studio, πρέπει να δώσετε.hex διαδρομή αρχείου στο λογισμικό προγραμματισμού (Συνήθως βρίσκεται στο φάκελο εντοπισμού σφαλμάτων ή απελευθέρωσης του έργου). Βεβαιωθείτε ότι προτού προχωρήσετε στο βήμα συναρμολόγησης, μπορεί να προγραμματιστεί η συσκευή και ότι οποιαδήποτε βασική διαδικασία κατασκευής και μεταγλώττισης αφιερωμένου έργου AVR βασίζεται στον μικροελεγκτή ATMEGA328P (Δείτε το σεμινάριο Atmel Studio).

Βήμα 7: Περιγραφή κώδικα

Περιγραφή κώδικα
Περιγραφή κώδικα
Περιγραφή κώδικα
Περιγραφή κώδικα

Ο αλγόριθμος κώδικα Decice διακρίνεται σε δύο ημι-ξεχωριστά επίπεδα: 1. Βασικό στρώμα: Επικοινωνία με περιφερειακά κυκλώματα, ορισμός λειτουργιών συσκευής, προετοιμασία και δηλώσεις εξαρτημάτων. Στρώμα διεπαφής: Αλληλεπίδραση χρήστη-συσκευής, λειτουργικότητα μενού, ρύθμιση ρολογιού/βομβητή/χρώματος/συναγερμού. Η σειρά του προγράμματος περιγράφεται στην εικόνα. 1, όπου κάθε μπλοκ αντιστοιχεί στην κατάσταση MCU. Το περιγραφόμενο πρόγραμμα λειτουργεί ως βασικό "λειτουργικό σύστημα" που παρέχει διασύνδεση μεταξύ υλικού και εξωτερικού κόσμου. Η ακόλουθη επεξήγηση περιγράφει τη βασική λειτουργία του προγράμματος κατά μέρη: Μέρος Α: Βασικό στρώμα:

1. Έναρξη εισόδου/εξόδου MCU: Πρώτα απ 'όλα, πρέπει να ξεκινήσετε τα στοιχεία υλικού:- Σταθερές που χρησιμοποιούνται από τον κώδικα.- Θύρες I/O- Διασύνδεση.- Δηλώσεις περιφερειακής επικοινωνίας.

2. Βασικές γενικές λειτουργίες: Ορισμένες λειτουργίες χρησιμοποιούνται από ξεχωριστά μπλοκ κώδικα, οι λειτουργίες καθορισμού σε ακίδες που ελέγχονται από το λογισμικό:- Ενεργοποίηση/απενεργοποίηση επικοινωνίας RTC και οθόνης.- Ενεργοποίηση/απενεργοποίηση ήχου βομβητή. πάνω/Clock down.- Εμφάνιση λειτουργιών δημιουργίας χαρακτήρων. Περιφερειακή αρχικοποίηση: Αφού διαμορφωθούν οι θύρες εισόδου/εξόδου, πραγματοποιείται επικοινωνία μεταξύ των κυκλωματικών λειτουργιών. Όταν τελειώσετε - το MCU ξεκινά την προετοιμασία των κυκλωμάτων RTC και οθόνης χρησιμοποιώντας λειτουργίες που ορίστηκαν παραπάνω.

4. Ορισμός βασικών λειτουργιών: Σε αυτό το στάδιο, η συσκευή είναι ρυθμισμένη και έτοιμη να εκτελέσει επικοινωνίες με ορισμένα περιφερειακά κυκλώματα. Αυτές οι λειτουργίες ορίζουν:- Εναλλαγή ελέγχου εναλλαγής- Λειτουργία LED RGB (Ειδικά PWM)- Γεννήτρια τετραγωνικών κυμάτων βομβητή

5. Λειτουργίες εμφάνισης: Δεν βρήκα πολλά στο Διαδίκτυο σχετικά με τα IC HSMS που έχω χρησιμοποιήσει, οπότε έγραψα τη βιβλιοθήκη του μόνος μου. Οι λειτουργίες οθόνης παρέχουν πλήρη λειτουργικότητα εμφάνισης χαρακτήρων, συμπεριλαμβανομένης της εμφάνισης χαρακτήρων ASCII και τυχόν ακέραιων αριθμών. Οι συναρτήσεις γράφονται με γενικευμένο τρόπο, οπότε αν χρειαστεί να καλέσετε συναρτήσεις οθόνης από οποιοδήποτε μέρος του κώδικα, είναι εύκολο να τις χρησιμοποιήσετε αφού γενικεύονται με λειτουργία (Για παράδειγμα: Ένδειξη συμβολοσειράς, οθόνη ενός χαρακτήρα κ.λπ.).

6. Λειτουργίες λειτουργίας RTC: Όλες οι λειτουργίες RTC είναι γραμμένες με γενικευμένο τρόπο (Παρόμοια με τις ρυθμίσεις των λειτουργιών οθόνης) σύμφωνα με τη λειτουργία του DS1302 IC. Ο κώδικας βασίζεται σε γραπτή βιβλιοθήκη, οι οποίες είναι διαθέσιμες σε πολλές παραλλαγές στο gitHub. Όπως θα δείτε στον τελικό κώδικα, οι ρυθμίσεις οθόνης και RTC περιλαμβάνονται στα ξεχωριστά αρχεία.c και.h. Μέρος Β - Επίπεδο διεπαφής:

1. Κύρια συνάρτηση: στην ενότητα κενό κενό (), υπάρχει δήλωση όλων των βασικών συναρτήσεων προετοιμασίας. Αμέσως μετά την προετοιμασία όλων των στοιχείων, το MCU εισέρχεται σε άπειρο βρόχο, όπου η λειτουργικότητα της συσκευής ελέγχεται από έναν χρήστη.

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

3. Λειτουργίες μενού χρήστη: Αυτές οι συναρτήσεις έχουν μορφή που μοιάζει με δέντρο (βλ. Εικόνα Χ), όπου το σύστημα μενού και η ιεραρχία ορίζονται ως μηχάνημα κατάστασης. Κάθε μηχανή κατάστασης που ελέγχεται από μια είσοδο χρήστη - διακόπτη κουμπιού, έτσι όταν πατηθεί το κατάλληλο κουμπί - το μηχάνημα κατάστασης θα αλλάξει την τιμή του. Έχει σχεδιαστεί με τέτοιο τρόπο ώστε οποιαδήποτε από τις αλλαγές στη συσκευή που εκτελούνται στο μενού, να αλλάζει αμέσως.

4Εναλλαγή μενού χρήστη: όταν παρέχεται η είσοδος χρήστη, η κατάσταση μενού πρέπει να αλλάξει την κατάστασή της. Έτσι, αυτές οι λειτουργίες παρέχουν έλεγχο που εξαρτάται από τον χρήστη σε μια μηχανή κατάστασης. Στη συγκεκριμένη περίπτωση: επόμενο, προηγούμενο και ΟΚ.

Βήμα 8: Τελικός κώδικας και χρήσιμα αρχεία

Και αυτό είναι! Σε αυτό το βήμα, μπορείτε να βρείτε όλα τα αρχεία που μπορεί να χρειαστείτε:- Ηλεκτρικά σχήματα- Πλήρης πηγαίος κώδικας- Δημιουργός χαρακτήρων οθόνης Προαιρετική δυνατότητα: Υπάρχουν διάφοροι χαρακτήρες που είναι διαθέσιμοι για προβολή στη βιβλιοθήκη ICs οθόνης, αλλά μερικοί δεν περιλαμβάνονται Το Εάν επιθυμείτε να δημιουργήσετε μόνοι σας χαρακτήρες, προσθέστε την περίπτωση με μια αναφορά ASCII στη συνάρτηση Print_Character ('') (Δείτε τις λειτουργίες display.c). Ελπίζω να βρείτε αυτό το Instructable χρήσιμο:) Ευχαριστώ που διαβάσατε!

Συνιστάται: