Διαφήμιση
Μπορείτε να κάνετε όλα τα πράγματα με LED που αναβοσβήνουν, και σε αυτό το απλό έργο, θα φτιάξουμε μια μικρή συσκευή που θα ανάβει τα μηνύματα στον αέρα όταν τα κυματίζετε μπροστά και πίσω. Είναι πιο εύκολο από ό, τι νομίζετε και το συνολικό κόστος των ανταλλακτικών είναι κάτω από $ 5.
Αυτό το έργο χρησιμοποιεί μια οπτική ψευδαίσθηση που ονομάζεται εμμονή της όρασης για να εμφανιστεί το κείμενο στον αέρα. Πιθανότατα συναντήσατε αυτό το φαινόμενο όταν κάποιος μετακινεί έναν αναμμένο σπινθήρα γρήγορα το βράδυ. Θα χρησιμοποιήσουμε ένα Arduino και μερικά LED για να μιμηθούμε αυτό το αποτέλεσμα. Αυτό το έργο είναι απλό να κατασκευαστεί, με λίγα εξαρτήματα και λίγη συγκόλληση (αν και αν θέλετε μερικές συμβουλές για να ξεκινήσετε με το συγκολλητικό υλικό σας αυτόν τον οδηγό Μάθετε πώς να κολλήσετε με αυτές τις απλές συμβουλές και έργαΕίστε λίγο εκφοβισμένοι από τη σκέψη ενός ζεστού σιδήρου και λιωμένου μετάλλου; Εάν θέλετε να αρχίσετε να εργάζεστε με ηλεκτρονικά, θα πρέπει να μάθετε να κολλήσετε. Ας βοηθήσουμε. Διαβάστε περισσότερα ).
Θα χρειαστείτε
- Arduino (χρησιμοποίησα ένα $ 2 Nano επειδή είναι συμπαγές και φθηνό, αλλά κάθε μοντέλο θα πρέπει να είναι εντάξει).
- 5x Κόκκινες λυχνίες LED.
- 5x 220 Ohm αντιστάσεις.
- 1x 9v υποδοχή μπαταρίας.
- 1x μεταγωγέας.
- 1 τεμάχιο protoboard.
- Μια θήκη για το τελικό προϊόν (χρησιμοποίησα ένα μικρό κιβώτιο από χαρτόνι βαμμένο μαύρο).
Θα χρειαστείτε επίσης ένα συγκολλητικό σίδερο και κάποια συγκόλληση για να το βάλετε όλοι μαζί.
Ενώ είναι προαιρετικό, κάποιο φιτίλιο συγκόλλησης μπορεί να έρθει πολύ χρήσιμο σε περίπτωση που κάνετε οποιαδήποτε σφάλματα συγκόλλησης. Ένα breadboard και μερικά καλώδια σύνδεσης είναι επίσης χρήσιμα για τη δοκιμή του κυκλώματος σας.
Καλωδίωση
Η καλωδίωση δεν θα μπορούσε να είναι απλούστερη. Αρχικά, συνδέστε τα Arduino, τις λυχνίες LED και τις αντιστάσεις σας, όπως φαίνεται σε αυτό το διάγραμμα.
Οι ακίδες D2 έως D6 πηγαίνουν σε κάθε αντίσταση αντιστοίχως, οι οποίες συνδέονται με τη θετική άνοδο (μακρύ πόδι) κάθε LED. Η κάθοδος συνδέεται με το έδαφος, που συνδέεται πίσω με το Arduino. Όταν γίνει, θα πρέπει να φαίνεται κάτι τέτοιο:
Αυτό είναι: το κύκλωμά μας γίνεται! Θα προσθέσουμε ένα περίβλημα μπαταρίας και ένα διακόπτη σε αυτό αργότερα, αλλά αυτό είναι όλο που πρέπει να εξετάσουμε αν λειτουργεί.
Κώδικας
Τώρα συνδέστε το Arduino σας στον υπολογιστή και ανοίξτε το ID του Arduino. Εάν είστε νέοι στη χρήση του Arduino και θέλετε έναν καλό οδηγό για να προχωρήσετε, αυτός ο σύνδεσμος Ξεκινώντας με το Arduino: Οδηγός για αρχάριουςΤο Arduino είναι μια πλατφόρμα πρωτοτύπου ηλεκτρονικής ανοικτής πηγής που βασίζεται σε ευέλικτο και εύχρηστο υλικό και λογισμικό. Πρόκειται για καλλιτέχνες, σχεδιαστές, χομπίστες και όσους ενδιαφέρονται να δημιουργήσουν διαδραστικά αντικείμενα ή περιβάλλοντα. Διαβάστε περισσότερα θα είναι χρήσιμο.
Ανοίξτε ένα νέο σκίτσο και αντιγράψτε αυτόν τον κώδικα. Ο κώδικας τροποποιήθηκε από αυτη η εργασια και μπορείτε να το κατεβάσετε πλήρως σε αυτή την ουσία.
// πόσο καιρό κάθε led παραμένει για. int καθυστέρησηTime = 1; // πόσο καιρό μεταξύ κάθε int charBreak = 3; // πόσο καιρό να περιμένει μετά το τέλος του μηνύματος πριν επαναλάβει. int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; άκυρη ρύθμιση () { pinMode (LED1, OUTPUT); pinMode (LED2, OUTPUT); pinMode (LED3, έξοδος); pinMode (LED4, OUTPUT); pinMode (LED5, έξοδος); } int a [] = {1, 6, 26, 6, 1}. int b [] = {31, 21, 21, 10, 0}. int c2 [] = {14, 17, 17, 10, 0}. int d [] = {31, 17, 17, 14, 0}. int e [] = {31, 21, 21, 17, 0}. int f [] = {31, 20, 20, 16, 0}. int g [] = {14, 17, 19, 10, 0}. int h [] = {31, 4, 4, 4, 31}. int i [] = {0, 17, 31, 17, 0}. int j [] = {0, 17, 30, 16, 0}. int k [] = {31, 4, 10, 17, 0}. int l [] = {31, 1, 1, 1, 0}. int m [] = {31, 12, 3, 12, 31}. int n [] = {31, 12, 3, 31, 0}. int o [] = {14, 17, 17, 14, 0}. int p [] = {31, 20, 20, 8, 0}. int q] = {14, 17, 19, 14, 2}. int r [] = {31, 20, 22, 9, 0}. int s [] = {8, 21, 21, 2, 0}. int t [] = {16, 16, 31, 16, 16}. int u [] = {30, 1, 1, 30, 0}. int v [] = {24, 6, 1, 6, 24}. int w [] = {28, 3, 12, 3, 28}. int x [] = {17, 10, 4, 10, 17}. int y [] = {17, 10, 4, 8, 16}. int z [] = {19, 21, 21, 25, 0}. int eos [] = {0, 1, 0, 0, 0}. int excl [] = {0, 29, 0, 0, 0}. int ques [] = {8, 19, 20, 8, 0}. int διάστημα [] = {0, 0, 0, 0, 0}. void displayLine (int γραμμή) { ενδογλυκόνη. myline = γραμμή; αν (myline> = 16) {digitalWrite (LED1, HIGH); myline- = 16?} αλλιώς {digitalWrite (LED1, LOW)?} αν (myline> = 8) {digitalWrite (LED2, HIGH); myline- = 8?} αλλιώς {digitalWrite (LED2, LOW)?} αν (myline> = 4) {digitalWrite (LED3, HIGH); myline- = 4?} αλλιώς {digitalWrite (LED3, LOW)?} αν (myline> = 2) {digitalWrite (LED4, HIGH); myline- = 2?} αλλιώς {digitalWrite (LED4, LOW)?} αν (myline> = 1) {digitalWrite (LED5, HIGH); myline- = 1?} αλλιώς {digitalWrite (LED5, LOW)?} } άκυρη εμφάνισηChar (char c) { αν (c == 'a') {για (int i = 0; i <5; i ++) {displayLine (a [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'b') {για (int i = 0; i <5; i ++) {displayLine (b [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'c2') {για (int i = 0; i <5; i ++) {displayLine (c2 [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'd') {για (int i = 0; i <5; i ++) {displayLine (d [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'e') {για (int i = 0; i <5; i ++) {displayLine (e [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'f') {για (int i = 0; i <5; i ++) {displayLine (f [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'g') {για (int i = 0; i <5; i ++) {displayLine (g [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'h') {για (int i = 0; i <5; i ++) {displayLine (h [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'i') {για (int it = 0; <5; it ++) {displayLine (i [it]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'j') {για (int i = 0; i <5; i ++) {displayLine (j [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'k') {για (int i = 0; i <5; i ++) {displayLine (k [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'l') {για (int i = 0; i <5; i ++) {displayLine (l [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'm') {για (int i = 0; i <5; i ++) {displayLine (m [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'n') {για (int i = 0; i <5; i ++) {displayLine (n [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'o') {για (int i = 0; i <5; i ++) {displayLine (o [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'p') {για (int i = 0; i <5; i ++) {displayLine (p [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'q') {για (int i = 0; i <5; i ++) {displayLine (q [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'r') {για (int i = 0; i <5; i ++) {displayLine (r [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 's') {για (int i = 0; i <5; i ++) {displayLine (s [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 't') {για (int i = 0; i <5; i ++) {displayLine (t [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'u') {για (int i = 0; i <5; i ++) {displayLine (u [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'v') {για (int i = 0; i <5; i ++) {displayLine (v [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'w') {για (int i = 0; i <5; i ++) {displayLine (w [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'x') {για (int i = 0; i <5; i ++) {displayLine (x [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'y') {για (int i = 0; i <5; i ++) {displayLine (y [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == 'z') {για (int i = 0; i <5; i ++) {displayLine (z [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == '!') {για (int i = 0; i <5; i ++) {displayLine (εκτός [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == '?') {για (int i = 0; i <5; i ++) {displayLine (ερώτημα [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == '.') {για (int i = 0; i <5; i ++) {displayLine (eos [i]), καθυστέρηση (delayTime),} displayLine (0),} αν (c == '') {για (int i = 0; i <5; i ++) {displayLine (διάστημα [i]), καθυστέρηση (delayTime),} displayLine (0),} καθυστέρηση (charBreak); } άκυρη απεικόνισηString (char * s) {για (int i = 0; i <= strlen (s); i ++) {displayChar (s [i]); } } void loop () {// Αλλάξτε το κείμενο εδώ μέσα για να αλλάξετε το κείμενο που εμφανίζεται. // Βεβαιωθείτε ότι έχετε κρατήσει τις αγκύλες και τα εισαγωγικά. displayString (".. γεια ..."); καθυστέρηση (40). }
Αποθηκεύστε το σκίτσο και ανεβάστε το στο σκάφος σας. Αν εμφανίσετε τυχόν σφάλματα, βεβαιωθείτε ότι έχετε επιλέξει τη σωστή πλακέτα και τη θύρα COM. Τα LED σας θα πρέπει να αρχίσουν να τρεμοπαίζουν. Εάν δεν το κάνουν, ελέγξτε όλες τις συνδέσεις σας στο breadboard σας. Οι ακέραιοι που δηλώνονται στην αρχή του κώδικα καθορίζουν πόσο γρήγορα εμφανίζεται το κείμενο. Όσο μεγαλύτερος είναι ο αριθμός, τόσο πιο γρήγορα θα χρειαστεί να κάνετε κύμα της συσκευής. Βρήκα ότι οι αριθμοί που χρησιμοποιούνται εδώ λειτουργούσαν καλά.
Τώρα για να κάνετε μια γρήγορη δοκιμή. Αποσυνδέστε το Arduino από το καλώδιο USB και τοποθετήστε την υποδοχή της μπαταρίας στις καρφίτσες VIN και GND του arduino
Τώρα που μπορείτε να το μετακινήσετε, δοκιμάστε προσεκτικά τα LED που βρίσκονται μπροστά σας. Θα πρέπει να δείτε μερικές επιστολές που σχηματίζονται στον αέρα, αρκεί να είναι αρκετά σκοτεινό γύρω σας. Βρήκα ότι βοήθησε να θέσω το τηλέφωνό μου για να συλλάβω αυτό.
Δουλεύει! Τώρα για να γίνει λίγο πιο μόνιμη.
Σίδερα στο Ready!
Τοποθετήστε τον πίνακα Arduino, τις αντιστάσεις και τις λυχνίες LED στο πρωτόπλοιο σας όπως αυτό:
Μπορείτε φυσικά να κάνετε τη διάταξη τόσο συμπαγή όσο θέλετε, όσο το κύκλωμα παραμένει το ίδιο. Σιγουρευτείτε ότι αφήνετε τουλάχιστον μία γραμμή επαφών protoboard από κάθε πλευρά του Arduino για τα εξαρτήματα και το τροφοδοτικό. Εάν είστε αρχάριος στην ηλεκτρονική, εδώ είναι μερικοί τέλειες συμβουλές για εσάς Ηλεκτρονικά αρχαρίων: 10 δεξιότητες που πρέπει να ξέρετεΠολλοί από εμάς δεν έχουν αγγίξει ποτέ ούτε ένα συγκολλητικό σίδερο - αλλά τα πράγματα μπορούν απίστευτα να ανταμείψουν. Εδώ είναι δέκα από τις πιο βασικές δεξιότητες ηλεκτρονικών ειδών DIY που θα σας βοηθήσουν να ξεκινήσετε. Διαβάστε περισσότερα .
Θα συγκολλήσουμε τις κάθοδοι LED μαζί σε μια γραμμή για να δημιουργήσουμε ένα κοινό έδαφος, όπως και όταν κάναμε το δικό μας Μήτρα LED Αναβαθμίστε το Χριστουγεννιάτικο στεφάνι σας με μια μήτρα με ενεργοποιημένη κίνηση LEDΑυτό το DIY Χριστουγεννιάτικο στεφάνι χρησιμοποιεί μια μήτρα Arduino και LED για να παράγει μια εκπληκτική οθόνη φωτισμού που θα εντυπωσιάσει τους φίλους και την οικογένειά σας. Διαβάστε περισσότερα .
Αναδιπλώστε κάθε κάθοδο έτσι ώστε να επικαλύπτει την επόμενη και να τα συγκολλήσετε για να δημιουργήσετε μια αδιάσπαστη γραμμή. Τώρα πρέπει να κολλήσουμε τις ανόδους μας στα πόδια των αντιστάσεων δίπλα τους. Βρήκα τον ευκολότερο τρόπο να γίνει αυτό ήταν να κολλήσετε κάθε πόδι στο αντίστοιχο μαξιλάρι τους, και στη συνέχεια τοποθετήστε το σιδήρου μεταξύ τους για να θερμάνουν και τις δύο αρθρώσεις, πριν τελικά προσθέσει περισσότερη συγκόλληση για να γεφυρώσει το χάσμα μεταξύ τους.
Ελέγξτε κάθε σύνδεση για να δείτε ότι είναι σταθερά στερεωμένη και, στη συνέχεια, χρησιμοποιήστε κόπτες για να κόψετε τα υπερβολικά πόδια από τις αντιστάσεις και τις λυχνίες LED.
Τώρα επαναλάβετε την ίδια εργασία, αλλά αυτή τη φορά συνδέοντας το άλλο άκρο των αντιστάσεων μας στα πόδια του Arduino. Αυτό είναι το πιο άσχημο μέρος της συγκόλλησης. Κάθε αντίσταση συνδέεται πολύ με τον πείρο του Arduino μόνο ή το κύκλωμα δεν θα λειτουργήσει με τον τρόπο που προορίζεται. Έκανα αρκετά λάθη εδώ και έπρεπε να χρησιμοποιήσω το φυτίλι για να αφαιρέσω ανεπιθύμητη συγκόλληση πολλές φορές.
Μόλις έχετε κάνει όλες τις σωστές συνδέσεις, ελέγξτε ότι κανένα από αυτά δεν επικαλύπτεται με τους γείτονές τους. Εάν έχετε πρόσβαση σε ένα πολυμέτρο εδώ, μπορείτε να χρησιμοποιήσετε τη λειτουργία συνέχειας για να ελέγξετε ότι κάθε ακροδέκτης έχει μόνο μια αδιάσπαστη γραμμή στην αντίσταση της. Αν έχετε μόλις ένα πολύμετρο, υπάρχει ένας πολύ καλός οδηγός σε αυτό το άρθρο. 7 DIY Τεχνικές δεξιότητες για να διδάξετε τα παιδιά σας, γιατί τα σχολεία δεν θα το κάνουν Διαβάστε περισσότερα
Μόλις ελέγξετε κάθε σύνδεση, κόψτε το επιπλέον μήκος από τα πόδια των αντιστάσεων
Προσθήκη ενέργειας
Τώρα εκτελέστε ένα κομμάτι σύρμα από τον πείρο GND του Arduino σας σε μια τρύπα δίπλα από την άκρη της γραμμής σας συγκολλημένων καθόδων και τοποθετήστε το μαύρο σύρμα της θήκης της μπαταρίας σας δίπλα.
Τώρα κολλήστε το καλώδιο στην πείρο GND, όπως ακριβώς κάναμε με τις αντιστάσεις, και στερεώστε τα δύο καλώδια στο τέλος της γραμμής των καθόδων για να δημιουργήσετε ένα κοινό έδαφος για το κύκλωμα.
Τέλος, συνδέστε ένα καλώδιο στον ακροδέκτη VIN του arduino σας και τοποθετήστε το διακόπτη μεταξύ αυτού του καλωδίου και της μπαταρίας. Ζητήστε συγνώμη για το διακόπτη που καλύπτεται με θερμή κόλλα σε αυτή τη φωτογραφία, έπρεπε να αποσυναρμολογήσω την τελική μηχανή για να φωτογραφίσετε αυτό το στάδιο!
Αφού όλα αυτά είναι συγκολλημένα μαζί, τοποθετήστε μια μπαταρία και σπρώξτε το διακόπτη. Συγχαρητήρια! Το κύκλωμα γίνεται. Εάν δεν βλέπετε τίποτα να φωτίζεται, ελέγξτε προσεκτικά κάθε κόλλα συγκόλλησης για να δείτε πού μπορεί να υπάρχει σπάσιμο ή βραχυκύκλωμα.
Περίφραξη
Τώρα που το έχουμε λειτουργήσει, ας το βάλουμε σε κουτί. Εδώ χρησιμοποιήθηκε ένα ζωγραφισμένο κουτί από χαρτόνι, αν και θα μπορούσατε να κάνετε κάτι πιο μόνιμο χρησιμοποιώντας ένα κουτί που αγοράστηκε σε ένα κατάστημα χόμπι ή ακόμα και ένα παλιό κιβώτιο tupperware. Για επιπλέον πιστεύουν geek, θα μπορούσατε ακόμη και να εκτυπώσετε 3D το δικό σας ένα από αυτά τα φθηνά 3D εκτυπωτές. 5 Φτηνές 3D εκτυπωτές που μπορείτε πραγματικά να αγοράσετε σήμεραΜερικά χρόνια πίσω, ακόμη και οι φθηνότεροι εκτυπωτές 3D ήταν δυσάρεστα κοντά στο σήμα 1.000 $ - τώρα μπορείτε να πάρετε έναν ποιοτικό 3D εκτυπωτή για τόσο χαμηλά όσο $ 400. Διαβάστε περισσότερα
Μειώστε το πρωτόμπαρ σας σε μέγεθος βαθμολογώντας το και τραβώντας προσεκτικά τα κομμάτια που δεν χρειάζεστε.
Τοποθετήστε το κύκλωμα στο εσωτερικό του περιβλήματος σας και σημειώστε πού πρέπει να περάσουν τα LED και ο διακόπτης. Μπορείτε επίσης να επισημάνετε όπου η υποδοχή USB του πίνακα Arduino ανταποκρίνεται στην άκρη ώστε να μπορείτε να την συνδέσετε για να αλλάξετε το κείμενο χωρίς να ανοίξετε το κουτί. Τρυπήστε ή κόψτε τις τρύπες που χρειάζεστε στο περίβλημα.
Τώρα προσθέστε μια μικρή ζεστή κόλλα στα άκρα των LED και κολλήστε τα στη θέση τους. Έχω κολλήσει ένα κομμάτι σφουγγαράκι κάτω από το κύκλωμα, έτσι ώστε να καθίσει άνετα στο κουτί. Συνδέστε το διακόπτη στη θήκη. Χρησιμοποίησα θερμή κόλλα, αν και οι βίδες ή τα μπουλόνια θα έκαναν μια πολύ ισχυρότερη σύνδεση. Μπορείτε επίσης να κολλήσετε τη θήκη της μπαταρίας στο πίσω μέρος της πλακέτας κυκλώματος για να σταματήσετε να κινείται γύρω από το εσωτερικό όταν το στοιχείο είναι σε χρήση, αλλά βεβαιωθείτε ότι οποιεσδήποτε μεταλλικές επαφές στην θήκη δεν έρχονται σε επαφή με κανένα από τους αρμούς συγκόλλησης!
Η εργασία ολοκληρώθηκε!
Κλείστε το περίβλημα σας και τελειώσατε! Για να αλλάξετε το κείμενο, συνδέστε το καλώδιο USB στην πλακέτα Arduino και, στη συνέχεια, αλλάξτε το κείμενο μέσα στις αγκύλες displayString στο βρόχος μέθοδος. Βρείτε ένα σκοτεινό μέρος και διασκεδάστε!
Έχετε οικοδομήσει μια μηχανή POV πριν και να μάθουν τρόπους για να βελτιωθεί το σχέδιο; Σκέφτεστε να κατασκευάσετε τον εαυτό σας; Πείτε μας για το έργο σας στα σχόλια παρακάτω, θα θέλαμε να το ακούσουμε!
Ο Ian Buckley είναι ανεξάρτητος δημοσιογράφος, μουσικός, ερμηνευτής και παραγωγός βίντεο που ζει στο Βερολίνο της Γερμανίας. Όταν δεν γράφει ή στη σκηνή, μιλάει με ηλεκτρονικά DIY ή κωδικοποιεί με την ελπίδα να γίνει τρελός επιστήμονας.