Πίνακας περιεχομένων:
- Βήμα 1: Συγκέντρωση αναλωσίμων και εργαλείων
- Βήμα 2: Σήμανση, διάτρηση και δρομολόγηση
- Βήμα 3: Τόσο πολύ στρατιωτικό, κόψιμο και απογύμνωση
- Βήμα 4: Εγκατάσταση
- Βήμα 5: Τελικές πινελιές
Βίντεο: Ρολόι 132 Pixel: 5 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Έχω, από όσο θυμάμαι τον εαυτό μου, εμμονή με τα LED και τον χρόνο. Σε αυτό το έργο δημιούργησα ένα μεγάλο ρολόι τοίχου που εμφανίζει την τρέχουσα ώρα χρησιμοποιώντας 132 LED neopixel τοποθετημένα και λάμπουν μέσα από μια ερυθρελάτη. Είναι ένα υβριδικό αναλογικό ψηφιακό με ατομικό εικονοστοιχείο για κάθε ώρα, λεπτό και δευτερόλεπτο.
Αυτό ήταν το μεγαλύτερο έργο που έχω αναλάβει μέχρι σήμερα, άρχισα να το σκέφτομαι πριν από 6 μήνες και η ιδέα σιγά -σιγά συνενώθηκε. Είμαι πολύ χαρούμενος για το αποτέλεσμα και ανυπομονώ να το μοιραστώ μαζί σας.
Βήμα 1: Συγκέντρωση αναλωσίμων και εργαλείων
Συστατικά
Αυτό το έργο είναι χτισμένο σε μια πλακέτα χόμπι από το τοπικό μου κατάστημα DIY. Ο πίνακας έχει πλάτος 850 mm και ύψος 500 mm και βάθος 18 mm.
Οι λυχνίες LED που χρησιμοποιούνται σε αυτό το έργο είναι 5050 WS2812b τοποθετημένες σε κυκλικά PCB με διάμετρο περίπου 9 mm με μαξιλάρια συγκόλλησης στο πίσω μέρος.
Χρησιμοποιώ συμβατό μικροελεγκτή Arduino Pro Mini. Είναι η έκδοση 5V 16 MHZ. Επέλεξα αυτό καθώς έχει έναν εξαιρετικά λεπτό σχεδιασμό, μικρό αποτύπωμα ποδιών και όλες τις απαραίτητες θύρες συν κάποια ανταλλακτικά για μελλοντικές αναβαθμίσεις. Είναι επίσης 5 βολτ, ώστε να μπορώ να χρησιμοποιήσω ένα μόνο τροφοδοτικό για τα LED, το μικροελεγκτή και το RTC
Η τήρηση χρόνου φροντίζεται από μια μονάδα RTC (Ρολόι πραγματικού χρόνου) που διαθέτει το τσιπ DS3231. Αυτό το τσιπ είναι πολύ ακριβές, οπότε ο χρόνος δεν πρέπει να παρασύρεται πολύ.
Επίσης χρησιμοποιείται:
Σύρμα. Συγκόλληση και ζεστή κόλλα.
Εργαλεία:
Τρυπάνι ισχύος και τρυπάνια ξύλου (10mm και 5mm)
Συγκολλητικό σίδερο
Πυροβόλο θερμής κόλλας
αποκόμματα σύρματος
Αξεσουάρ δρομολογητή Dremel και βουτιά
Βήμα 2: Σήμανση, διάτρηση και δρομολόγηση
Γεώτρηση
- Χρησιμοποιώντας ένα στενό άκρο βρείτε το κέντρο της σανίδας τραβώντας μια γραμμή από αντίθετες γωνίες.
- Σημειώστε 3 κύκλους χρησιμοποιώντας ένα σπάγκο και ένα στυλό. Ο εξωτερικός κύκλος πρέπει να απέχει περίπου 20 mm από την άκρη του πίνακα με τις άλλες 2 γραμμές να κινούνται κατά 15 mm από την τελευταία γραμμή.
- Χρησιμοποίησα μια τυπωμένη όψη ρολογιού για να με βοηθήσει να επισημάνω τις θέσεις καθενός από τα λεπτά και τα δευτερόλεπτα στις εξωτερικές 2 γραμμές και τις ώρες στην εσωτερική γραμμή.
- Τρυπήστε τρύπες 10 mm βάθους περίπου 5 mm για κάθε ώρα, λεπτό και δευτερόλεπτο.
- Χρησιμοποιήστε το τρυπάνι 5 χιλιοστών για να κάνετε τρύπες μέσω της σανίδας για ώρα, λεπτό και δευτερόλεπτο.
Δρομολόγηση
Αν και αυτό το βήμα δεν είναι απαραίτητο, θα επιτρέψει την τοποθέτηση του ρολογιού σε έναν τοίχο.
- Χρησιμοποιώντας δρομολογητή και κυκλώστε τον οδηγό κυκλωμάτων μέσω καλωδίων στον πίνακα
- Σημειώστε και δρομολογήστε μια εσοχή για να ζήσουν οι RTC και Micro Controller.
- Δρομολογήστε ένα κανάλι από τις εξωτερικές γραμμές στην εσοχή για καλώδια
Βήμα 3: Τόσο πολύ στρατιωτικό, κόψιμο και απογύμνωση
Αυτό το επόμενο μέρος είναι πολύ πιο εύκολο να το πεις παρά να το κάνεις. Η συμβουλή μου θα ήταν σημείωση να το βιαστείτε. προσπαθήστε να βρείτε ένα σύστημα και μπείτε σε ρυθμό.
Κάθε μία από τις λυχνίες LED χρειάζεται 5 βολτ μέσα, 5 βολτ έξω, Δεδομένα μέσα, Δεδομένα έξω, Γείωση μέσα και Γείωση έξω. συμπεριλαμβανομένης της ισχύος για τον μικροελεγκτή και RTC πάνω από 400 καλώδια, όλα απογυμνωμένα και συγκολλημένα και στα δύο άκρα.
Μια κολλώδης μπλε ουσία είναι πολύ χρήσιμη για αυτό το βήμα.
- Ξεκίνησα τοποθετώντας 2 LED στις οπές τους το ένα δίπλα στο άλλο για να υπολογίσω το μήκος του καλωδίου που χρειάζεται για να συνδεθείτε μεταξύ τους.
- Χρησιμοποιώντας το 1ο κομμάτι σύρματος ως οδηγό, έκοψα στη συνέχεια 60 από κάθε χρωματικό σύρμα.
- Απογυμνώστε το μανίκι 2 χιλιοστών από τα άκρα κάθε σύρματος και τα κολλάρετε με κόλλα.
- Κολλήστε μια μικρή κόλλα συγκόλλησης σε κάθε ένα από τα μαξιλάρια LED.
- Συγκολλήστε τα καλώδια στα LED για να σχηματίσετε δύο αλυσίδες 60 για τα λεπτά και τα δευτερόλεπτα και μια αλυσίδα των 12 για τις ώρες. Χρησιμοποίησα κόκκινο σύρμα για 5V, κίτρινο για δεδομένα και μπλε για γείωση.
- Φροντίστε να συνδέσετε κάθε Data Out (DOUT) με το Data In (DIN) της επόμενης λυχνίας LED
- Το τελευταίο led σε κάθε δόση αλυσίδας δεν χρειάζεται καλώδιο δεδομένων.
Μόλις ολοκληρωθούν όλες οι αλυσίδες, είναι καλή ιδέα να τις δοκιμάσετε πριν τις εγκαταστήσετε. Χρησιμοποίησα το Arduino UNO και το Adafruit NeoPixel Strand Test για να επιβεβαιώσω ότι κάθε LED λειτουργεί.
Κολλήστε μακρύτερα καλώδια σε κάθε μία από τις αλυσίδες για 5V, Ground και Data in.
Σε αυτό το σημείο θα πρέπει να υπάρχουν πέντε καλώδια 5v, τρία καλώδια δεδομένων συνδεδεμένα στο Arduino Pro Mini και 5 καλώδια γείωσης.
Ξεκολλήστε 5mm από τα άκρα των καλωδίων 5v και κολλήστε τα όλα μαζί και επαναλάβετε για τα καλώδια γείωσης.
Μετά την ολοκλήρωση των τριών αλυσίδων, κολλήστε ένα καλώδιο 5V στον πείρο RAW του Arduino Pro Mini και επίσης στον πείρο VCC για το RTC. Ένα καλώδιο γείωσης στο GND στο Arduino Pro Mini και το RTC και στη συνέχεια 2 ακόμη καλώδια:
SCL από το RTC στο A5 στο Pro Mini
SDA από το RTC στο A4 στο Pro Mini
Οι γραμμές δεδομένων από τα LED πρέπει να συνδέονται με:
- Δευτερόλεπτα - Digitalηφιακό Pin 3.
- Πρακτικά - DigitalPin 4
- Hρες - DigitalPin 5
Βήμα 4: Εγκατάσταση
Μόλις συγκολληθούν, η εγκατάσταση των LED στις οπές τους πρέπει να είναι ευθεία. Οι λυχνίες LED πρέπει να εγκατασταθούν έτσι ώστε τα δεδομένα να περιστρέφονται δεξιόστροφα όταν τα κοιτάτε από πίσω καθώς ο κώδικας είναι ρυθμισμένος μπροστά.
Χρησιμοποίησα μια μικρή ποσότητα θερμής κόλλας για να τα συγκρατήσω καθώς θέλω να μπορώ να αντικαταστήσω ένα μόνο LED εάν αποτύχει στο μέλλον.
Χρησιμοποίησα επίσης θερμή κόλλα για να διατηρήσω όλα τα σύρματα τακτοποιημένα και τακτοποιημένα και για να στερεώσω τον σύνδεσμο του βαρελιού στον πίνακα.
Υπάρχουν αρκετοί οδηγοί προγραμματισμού arduino pro mini. Χρησιμοποιώ την εξωτερική μέθοδο μετατροπέα USB σε σειριακή για να φορτώσω αυτόν τον κώδικα στο Arduino:
Αυτός ο κωδικός θα ρυθμίσει επίσης την ώρα στο RTC στην ώρα που έχει καταρτιστεί. οπότε είναι σημαντικό να κλείσετε το κουμπί μεταφόρτωσης ώστε να συμμορφώνεται και να μεταφορτώνεται όσο το δυνατόν γρηγορότερα.
Μεγάλο μέρος αυτού του κώδικα δανείστηκε από το NeoPixel Ring Clock από τον Andy Doro. Μερικά από το Adafruit NeoPixel Strand Test και άλλα τα έβαλα μαζί.
Θα χρειαστεί να έχετε εγκαταστήσει μερικές βιβλιοθήκες. Διατίθενται από τον Διαχειριστή Βιβλιοθηκών στο λογισμικό Arduino.
Το Adafruit NeoPixel για τις λυχνίες LED ws2812b
Καλώδιο για συνομιλία με το RTC μέσω I2C (αυτό είναι ενσωματωμένο ως στάνταρ)
και RTClib για να γνωρίζουν τι να ζητήσουν από το RTC
/********************************************* **************************NeoPixel Ring Clock από τον Andy Doro ([email protected]) https://andydoro.com/ringclock/ ********************************************** *************************
Ιστορικό αναθεώρησης
Ημερομηνία Με Τι
20140320 AFD Πρώτο σχέδιο 20160105 AFD Faded arcs 20160916 AFD Trinket συμβατό 20170727 AFD πρόσθεσε STARTPIXEL για τρισδιάστατο περίβλημα, μεταβλητό σημείο εκκίνησης, πρόσθεσε αυτόματη υποστήριξη DST 20180424 AFD χρησιμοποιώντας βιβλιοθήκη DST https://github.com/andydoro/DST_RTC *
/ συμπεριλάβετε τον κωδικό της βιβλιοθήκης:
#συμπεριλάβω #συμπεριλάβω
#περιλαμβάνω
// καθορίστε τις καρφίτσες
#define SECPIN 3 #define MINPIN 4 #define HOUPIN 5
#define BRIGHTNESS 20 // ρυθμίστε τη μέγιστη φωτεινότητα
#define r 10
#define g 10 #define b 10 RTC_DS3231 rtc; // Δημιουργία αντικειμένου ρολογιού
Λωρίδα Adafruit_NeoPixelS = Adafruit_NeoPixel (60, SECPIN, NEO_GRB + NEO_KHZ800); // αντικείμενο λωρίδας
Adafruit_NeoPixel stripM = Adafruit_NeoPixel (60, MINPIN, NEO_GRB + NEO_KHZ800); // strip object Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // λωρίδα αντικειμένου byte pixelColorRed, pixelColorGreen, pixelColorBlue; // διατηρεί τιμές χρωμάτων
void setup () {
Wire.begin (); // Έναρξη I2C rtc.begin (); // ρολόι έναρξης
Serial.begin (9600);
// ορίστε pinmode pinmode (SECPIN, OUTPUT); pinMode (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);
εάν (rtc.lostPower ()) {
Serial.println ("Το RTC έχασε το ρεύμα, αφήνει να ρυθμιστεί η ώρα!"); // η ακόλουθη γραμμή ορίζει το RTC στην ημερομηνία & ώρα που συντάχθηκε αυτό το σκίτσο rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Αυτή η γραμμή ορίζει το RTC με ρητή ημερομηνία και ώρα, για παράδειγμα για να ορίσετε // 21 Ιανουαρίου 2014 στις 3 το πρωί θα καλέσετε: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }
stripS.begin ();
stripM.begin (); stripH.begin (); //strip.show (); // Αρχικοποίηση όλων των εικονοστοιχείων σε "απενεργοποίηση"
// ακολουθία εκκίνησης
καθυστέρηση (500)?
colorWipeS (λωρίδες S. Color (0, g, 0), 5); // Μπλε χρώμαWipeM (stripM. Color (r, 0, 0), 5); // Μπλε χρώμαWipeH (stripH. Color (0, 0, b), 50); // Μπλε
καθυστέρηση (1000)?
DateTime theTime = rtc.now (); // λαμβάνει υπόψη DST byte secondval = theTime.second (); // λάβετε δευτερόλεπτα byte minuteval = theTime.minute (); // λάβετε λεπτά int hourval = theTime.hour (); ωριαίο = ωρολόγιο % 12; // Αυτό το ρολόι είναι 12ωρο, αν 13-23, μετατρέπεται σε 0-11`
για (uint16_t i = 0; i <secondval; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.show (); καθυστέρηση (5)? }
για (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); καθυστέρηση (5)? }
για (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); καθυστέρηση (5)? }
}
void loop () {
// βρες χρόνο
DateTime theTime = rtc.now (); // λαμβάνει υπόψη το DST
byte secondval = theTime.second (); // πάρτε δευτερόλεπτα
byte minuteval = theTime.minute (); // λάβετε λεπτά int hourval = theTime.hour (); // λάβετε ώρες hourval = hourval % 12; // Αυτό το ρολόι είναι 12ωρο, αν 13-23, μετατρέπεται σε 0-11`
stripS.setPixelColor (δεύτερο κύκλο, 0, 0, 20); stripS.show (); καθυστέρηση (10)? if (secondval == 59) {for (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.show (); καθυστέρηση (16);}}
stripM.setPixelColor (λεπτό λεπτό, 0, g, 0);
stripM.show (); καθυστέρηση (10)? if (secondval == 59 && minuteval == 59) {for (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); καθυστέρηση (16);}}
stripH.setPixelColor (ωριαία ώρα, r, 0, 0);
stripH.show (); καθυστέρηση (10)? if (secondval == 59 && minuteval == 59 && hourval == 11) {for (uint8_t i = stripH.numPixels (); i> 0; i--) {stripH.setPixelColor (i, 0, 0, b) ? stripH.show (); καθυστέρηση (83);}} // για σειριακή αποσφαλμάτωση Serial.print (ωράριο, DEC); Serial.print (':'); Serial.print (minuteval, DEC); Serial.print (':'); Serial.println (secondval, DEC); }
// Γεμίστε τις τελείες η μία μετά την άλλη με ένα χρώμα
void colorWipeS (uint32_t c, uint8_t wait) {for (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); καθυστέρηση (αναμονή)? }}
void colorWipeM (uint32_t c, uint8_t αναμονή) {
για (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); καθυστέρηση (αναμονή)? }}
void colorWipeH (uint32_t c, uint8_t αναμονή) {
για (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); καθυστέρηση (αναμονή)? }}
Βήμα 5: Τελικές πινελιές
Το μόνο που πρέπει να απομείνει τώρα είναι να διορθώσετε το RTC και το Micro Controller κάτω στην εσοχή.
Έχω τοποθετήσει την πλευρά της μπαταρίας RTC προς τα επάνω, ώστε να μπορώ εύκολα να αλλάξω την μπαταρία εάν χρειάζεται.
Συνδέστε τα καλώδια 5v στην + πλευρά του συνδέσμου και το Ground στην πλευρά
Ενεργοποιήστε το!
Έχω το δικό μου συνδεδεμένο σε μια τράπεζα μπαταριών USB, αλλά ένας φορτιστής τηλεφώνου USB θα λειτουργούσε εξίσου καλά.
Σημείωση:
Η φωτεινότητα των LED καθορίζεται στον κωδικό. Έχει ρυθμιστεί χαμηλά για να διατηρηθεί η τρέχουσα κλήρωση χαμηλή. Σε πλήρη φωτεινότητα με όλες τις λυχνίες LED αναμμένες, θα μπορούσε να τραβήξει σχεδόν 8 αμπέρ. Με την τρέχουσα ρύθμιση είναι λιγότερο από 1.
Δευτέρα στο διαγωνισμό ρολογιών
Συνιστάται:
Ρολόι συνταξιοδότησης / Καταμέτρηση / Ρολόι Dn: 4 βήματα (με εικόνες)
Ρολόι συνταξιοδότησης / Count Up / Dn Clock: Είχα μερικές από αυτές τις οθόνες 8x8 LED με κουκκίδες στο συρτάρι και σκεφτόμουν τι να κάνω με αυτές. Εμπνευσμένο από άλλες οδηγίες, μου ήρθε η ιδέα να δημιουργήσω μια οθόνη αντίστροφης μέτρησης/ανύψωσης για να μετράω αντίστροφα σε μια μελλοντική ημερομηνία/ώρα και αν ο στόχος είναι
C51 4 Bits Ηλεκτρονικό Ρολόι - Ξύλινο Ρολόι: 15 Βήματα (με Εικόνες)
C51 4 Bits Ηλεκτρονικό Ρολόι - Ξύλινο Ρολόι: Είχα λίγο ελεύθερο χρόνο αυτό το Σαββατοκύριακο, έτσι προχώρησα και συναρμολόγησα αυτό το ηλεκτρονικό ψηφιακό ρολόι 4 -bit DIY 2,40 AU $ 2,40 που αγόρασα από την AliExpress πριν από λίγο
Μετατρέψτε το συνηθισμένο ρολόι στο σπίτι σε αυτόνομο λαμπερό ρολόι: 8 βήματα (με εικόνες)
Μετατρέψτε το συνηθισμένο ρολόι σε αυτό το λαμπερό ρολόι: ΠΡΩΤΑ ΔΩΣΩ ΤΗΝ ΕΥΧΑΡΙΣΤΙΚΗ ΜΟΥ ΟΜΑΔΑ ΚΑΙ ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΥΓΕΙΑ ΜΟΥ ΑΝΑΚΑΛΥΗ ΠΕΡΙΣΣΟΤΕΡΟ ΑΠΑΝΤΗΣΗ ….. Σε αυτά τα εκπαιδευτικά, θέλω να μοιραστώ μαζί σας παιδιά πώς να μετατρέψετε το συνηθισμένο ρολόι του σπιτιού σας μέσα στο λαμπερό ρολόι. > > Για να το κάνετε αυτό
Microdot - Ρολόι χειρός LED μοτίβο ρολόι: 7 βήματα (με εικόνες)
Microdot - Wrist Watch LED Pattern Timepiece: Μια άλλη παραγωγή RGB Sunset Productions! Αυτό το έργο είναι ένας πίνακας κυκλωμάτων για την κατασκευή μιας έκδοσης μεγέθους ρολογιού χειρός του ρολογιού minidot: https: //www.instructables.com/id/EEGLXQCSKIEP2876EE/ με μερικά ακόμη λειτουργίες πιο εφαρμόσιμες σε φορητή συσκευή. ΕΝΑ
Δημιουργήστε ένα πραγματικό ρολόι που χτυπά το κουδούνι για τον υπολογιστή σας και ένα ρολόι που χτυπά πυροσβεστήρα .: 3 βήματα (με εικόνες)
Δημιουργήστε ένα πραγματικό ρολόι που χτυπά το κουδούνι για τον υπολογιστή σας και ένα ρολόι που προκαλεί πυροσβεστήρα .: Ένα κουδούνι από ορείχαλκο, ένα μικρό ρελέ μερικά ακόμη πράγματα και ένα πραγματικό κουδούνι μπορούν να χτυπήσουν τις ώρες στην επιφάνεια εργασίας σας. Αν και αυτό το έργο τρέχει σε Windows και Mac Το OS X επίσης, αποφάσισα να εγκαταστήσω το Ubuntu Linux σε έναν υπολογιστή που βρήκα στα σκουπίδια και να δουλέψω σε αυτό: Δεν είχα ποτέ