Διαφήμιση
Αυτό είναι το επόμενο μέρος στη σειρά εκμάθησης Arduino, και αυτή τη φορά; Μαθαίνω και χρησιμοποιώ Πίνακες για να φτιάξετε ένα μικρό χριστουγεννιάτικο δέντρο στολίδι με διάφορες ακολουθίες που αναβοσβήνουν. Αυτό θα ήταν ένα ιδανικό έργο για να κρατήσετε τα παιδιά απασχολημένα αν θέλετε να τους διδάξετε βασική συγκόλληση - απλώς τοποθετήστε τις λυχνίες LED σε ένα κομμάτι κάρτας και μπορείτε να αποκτήσετε ισχύ από μια τυπική μπαταρία 9v.
Είναι επίσης ένα βασικό μάθημα για τον προγραμματισμό του αρχάριου Arduino, αν και αν δεν σκοπεύετε να το χρησιμοποιήσετε ως διακοσμητικό στοιχείο, θα πρότεινα ανεπιφύλακτα.
Σημείωση: Πρόκειται για ένα σεμινάριο πολύ αρχάριου επιπέδου και σίγουρα κερδίσαμε; σπάζεις κάθε νέο έδαφος - αυτό; μικρό? απλώς μια συσκευή για να διδάξει τις έννοιες της χρήσης Πίνακες και Για βρόχους να ασχοληθεί με ένα μεγάλος αριθμός LED (ή άλλες συσκευές εξόδου).
Εάν έχετε καταφύγιο; Ήδη, τώρα θα ήταν μια καλή στιγμή να ακολουθήσετε μαζί με τα άλλα άρθρα της σειράς:
- Τι είναι το Arduino και τι μπορείτε να κάνετε με αυτό Τι είναι το Arduino & τι μπορείτε να κάνετε με αυτό;Το Arduino είναι μια αξιοσημείωτη μικρή ηλεκτρονική συσκευή, αλλά αν δεν έχετε χρησιμοποιήσει ποτέ πριν, τι ακριβώς είναι και τι μπορείτε να κάνετε με μία; Διαβάστε περισσότερα ?
- Τι είναι ένα κιτ εκκίνησης Arduino & τι περιέχει; Τι περιλαμβάνεται σε ένα κιτ εκκίνησης Arduino; [MakeUseOf Εξηγεί]Έχω εισαγάγει στο παρελθόν το υλικό ανοιχτού κώδικα Arduino εδώ στο MakeUseOf, αλλά χρειάζεστε κάτι περισσότερο από το πραγματικό Arduino για να δημιουργήσετε κάτι από αυτό και να ξεκινήσετε. Το Arduino "starter kits" είναι ... Διαβάστε περισσότερα
- Περισσότερα Cool Components για αγορά με το Starter Kit 8 Περισσότερα Cool Components για τα Έργα ArduinoΛοιπόν, σκέφτεστε να αποκτήσετε ένα κιτ εκκίνησης Arduino, αλλά αναρωτιέστε εάν κάποια βασικά LED και αντιστάσεις θα είναι αρκετά για να σας κρατήσουν απασχολημένους για το Σαββατοκύριακο; Πιθανώς όχι. Εδώ είναι άλλα 8 ... Διαβάστε περισσότερα
- Ξεκινώντας με το κιτ εκκίνησης Arduino; Εγκατάσταση προγραμμάτων οδήγησης και ρύθμιση της πλακέτας και της θύρας Ξεκινώντας με το κιτ εκκίνησης Arduino - Εγκατάσταση προγραμμάτων οδήγησης και ρύθμιση της πλακέτας και της θύραςΛοιπόν, έχετε αγοράσει ένα κιτ εκκίνησης Arduino και πιθανώς κάποια άλλα τυχαία δροσερά εξαρτήματα - τώρα τι; Πώς ξεκινάτε πραγματικά με τον προγραμματισμό αυτού του Arduino; Πώς το ρυθμίζετε ... Διαβάστε περισσότερα
- Fritzing, ένα δωρεάν εργαλείο για τη σχεδίαση διαγραμμάτων κυκλωμάτων Fritzing - Το απόλυτο εργαλείο για τη σχεδίαση έργων ηλεκτρονικής [Cross Platform]Παρόλο που ακούγεται σαν ένα αλκοπόπ, το Fritzing είναι στην πραγματικότητα ένα απίστευτο κομμάτι ελεύθερου λογισμικού που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε διαγράμματα κυκλωμάτων και εξαρτημάτων για χρήση με ηλεκτρονικές πλακέτες ταχείας πρωτοτύπωσης, όπως το φανταστικό ανοιχτού κώδικα Arduino ... Διαβάστε περισσότερα
- Μια πιο προσεκτική ματιά στη δομή μιας εφαρμογής Arduino και στο πρόγραμμα Blink του παραδείγματος Πρώτα βήματα με το Arduino: Μια πιο προσεκτική ματιά στον πίνακα κυκλωμάτων και τη δομή ενός προγράμματοςΤην τελευταία φορά σας άφησα να ρυθμίσετε το Arduino για να δουλεύετε με Mac ή Windows και να ανεβάσατε μια απλή δοκιμαστική εφαρμογή που αναβοσβήνει το ενσωματωμένο LED. Σήμερα θα εξηγήσω τον κωδικό ... Διαβάστε περισσότερα
Για αυτό το έργο, εσείς; Θα χρειαστώ τουλάχιστον 8 ή 9 LED σε κόκκινο ή πράσινο, α αντίσταση για καθένα από αυτά, α ψωμί και μερικά καλώδια σύνδεσης. Το κιτ εκκίνησης από το Ooomlout, το οποίο αγόρασα πρόσφατα και απεικονίζεται σε αυτό το σεμινάριο, προσφέρει μεγάλη αξία για τα χρήματα και έχει περισσότερα LED και αντιστάσεις από εσάς; Θα χρειαζόμουν πάντα, καθώς και με μια τακτοποιημένη γκαρνταρόμπα και μια θήκη Arduino για να διατηρήσουμε τα πράγματα τακτοποιημένα.
Εδώ? είναι το τελευταίο πράγμα:
Και ένα βίντεο σε δράση.
Εδώ? είναι μια άποψη της καλωδίωσης από το Fritzing. Το? είναι πολύ βασικό - απλώς συνδέστε το θετικό καλώδιο των LED στις ακίδες 2-> οτιδήποτε (έως τον ακροδέκτη 13) και συνδέστε τα αρνητικά πόδια στο έδαφος ευθυγραμμισμένα με μια αντίσταση. Η τιμή I; Χρησιμοποιήθηκε εδώ είναι 560 Ohms. Οτι? είναι για καλωδίωση.
Από την πλευρά του λογισμικού, σκεφτείτε πώς μπορείτε να γράψετε σε όλες αυτές τις λυχνίες LED στον κώδικα. Θα μπορούσατε να το κάνετε έτσι:
int led1 = 2; // πρώτο LED στον πείρο 2. int led2 = 3; // δευτερόλεπτο στον πείρο 3. // κλπ. void loop () {digitalWrite (led1, HIGH); καθυστέρηση (100) digitalWrite (led1, LOW); καθυστέρηση (100) digitalWrite (led2, HIGH); // και τα λοιπά. }
Θα πρέπει να μπορείτε να δείτε ότι με 9 LED, αυτό θα γίνει γρήγορα κουραστικό. Η απάντηση βρίσκεται Πίνακες, αν μπορείτε; δεν θυμάμαι μας Προγραμματισμός 101 για βασικούς τύπους δεδομένων Τα βασικά του προγραμματισμού υπολογιστών 101 - Μεταβλητές και τύποι δεδομένωνΈχοντας εισαγάγει και μιλήσει λίγο για τον Προγραμματισμένο Προγραμματισμό Αντικειμένου πριν και πού το ομώνυμο προέρχεται από, νόμιζα ότι ήρθε η ώρα να περάσουμε απόλυτα βασικά του προγραμματισμού σε ένα μη γλωσσικό συγκεκριμένο τρόπος. Αυτό... Διαβάστε περισσότερα - βασικά είναι απλώς λίστες.
Η σύνταξη μοιάζει με αυτήν (τοποθετήστε την ως πρώτη γραμμή στον κώδικά σας):
int leds [] = {2,3,4,5,6,7,8,9,10};
Οι αγκύλες τετραγώνου υποδεικνύουν ότι το? μεταβλητή πρόκειται να είναι Πίνακας. Τα σγουρά τιράντες περικλείουν τη λίστα των αριθμών pin που θα διατηρήσει η σειρά μας.
Τώρα, για να χρησιμοποιήσουμε ένα Array, πρέπει να το αντιμετωπίσουμε με τον αριθμό ευρετηρίου. ο ο δείκτης ξεκινά από το 0, και επομένως θα φτάνει πάντα στο 1 λιγότερο από τον συνολικό αριθμό πραγμάτων μέσα σε αυτό (έτσι με 9 αντικείμενα, το τελευταίο θα έχει δείκτη 8).
Το γράφεις έτσι:
leds [0]
Ποιο στην περίπτωσή μας, θα έπαιρνε τον αριθμό 2, γιατί αυτό; τι; s στο ευρετήριο 0 στη σειρά μας.
Παρακολουθήστε μέχρι τώρα; Μεγάλος. Αυτό μόνο δεν είναι; αρκεί για εμάς - χρειαζόμαστε επίσης κάποιον τρόπο για να επαναλάβουμε κάθε στοιχείο της σειράς LED μας. Για αυτό, θα χρησιμοποιήσουμε ένα για βρόχο. Η σύνταξη που πρέπει να κάνετε είναι έτσι:
για (αρχική μεταβλητή; κατάσταση υπό την οποία επαναλαμβάνουμε ξανά. αλλαγή σε μεταβλητή κάθε επανάληψη)
Για παράδειγμα:
για (int i = 0; εγώ <9; εγώ ++)
Που λέει
- ξεκινήστε αυτόν τον βρόχο με μια μεταβλητή, Εγώ, η οποία έχει τιμή μηδέν
- συνεχίστε το βρόχο μόνο όταν είμαι λιγότερο από 9; (έτσι: 0,1,2,3,4,5,6,7,8)
- κάθε φορά, προσθήκη 1 στο i (Το i ++ είναι ένας σύντομος τρόπος να πούμε i = i + 1)
Βασικά λοιπόν, ο βρόχος θα επαναληφθεί όσες φορές έχουμε LED και κάθε φορά; επαναλαμβάνουμε ότι θα έχουμε μια μεταβλητή, Εγώ, το οποίο μπορούμε να χρησιμοποιήσουμε όσο θέλουμε.
Εμείς? Θα χρησιμοποιήσω αυτήν τη δομή δύο φορές για να ξεκινήσω. Μόλις μπείτε στη λειτουργία εγκατάστασης για να μετατρέψετε όλες τις καρφίτσες μας σε λειτουργία εξόδου, όπως αυτή:
άκυρη ρύθμιση () {για (int i = 0; i <9; i ++) {pinMode (leds [i], OUTPUT); } }
Μπορείτε να δείτε τι κάναμε εκεί; Αντί να γράφουμε 9 γραμμές κώδικα για να δηλώσουμε κάθε μεμονωμένη καρφίτσα ως έξοδο, δημιουργούμε έναν βρόχο «για» για να επαναλαμβάνεται 9 φορές, κάθε φορά που ορίζει μια άλλη ακίδα.
Τώρα, θα πρέπει να μπορείτε να δείτε πώς θα μπορούσαμε να κάνουμε το ίδιο ακριβώς πράγμα στον κύριο βρόχο προγράμματος για να ανάψουμε κάθε LED στη σειρά:
void loop () {για (int i = 0; i <9; i ++) {digitalWrite (leds [i], HIGH); καθυστέρηση (100) digitalWrite (leds [i], LOW); } }
Δοκίμασέ το. Μπορείς κατεβάστε τον πλήρη κώδικα για το σημερινό έργο από εδώ αν εσύ? δ μάλλον να μην το πληκτρολογήσετε ξανά (αν και σας ενθαρρύνω, καθώς βοηθά στη μαθησιακή διαδικασία).
Εντάξει, οπότε τώρα έχουμε μια αρκετά βαρετή ακολουθία φωτισμού. Αφήνω? πρόγραμμα άλλο ένα. Ακριβώς για διασκέδαση, ας; Κάντε το εντελώς τυχαίο. Αντικαταστήστε τον κύριο κωδικό βρόχου με αυτό:
κενός βρόχος () { int randomLed = τυχαίο (0,8); digitalWrite (leds [randomLed], HIGH); καθυστέρηση (50); randomLed = τυχαία (0,8); digitalWrite (leds [randomLed], LOW); }
Αντί να χρησιμοποιήσουμε έναν βρόχο «για» για να επαναλάβουμε κάθε LED, επιλέγουμε έναν τυχαίο αριθμό από 0-9 αντί για αυτό και ανάβουμε.
Θα το αφήσω εκεί για σήμερα, καθώς τώρα θα πρέπει να οπλιστείτε με αρκετές γνώσεις για να προγραμματίσετε όλες τις νέες ακολουθίες και να πειραματιστείτε με βρόχους. Για να αποδείξω πόσο εύκολο είναι όλα αυτά, προκάλεσα τη γυναίκα μου να σκεφτεί μια ακολουθία αυτή; μου αρέσει να βλέπω και μετά πήρα;να προγραμματίσει η ίδια, δεδομένου μόνο του κωδικού και των μαθημάτων; είχαμε μέχρι τώρα. Ήρθε με αυτό, οπότε δείτε αν μπορείτε να ταιριάξετε αυτό για την εργασία!
Ερωτήσεις, προτάσεις, προβλήματα - επικοινωνήστε με τα σχόλια.
Ο James έχει πτυχίο Τεχνητής Νοημοσύνης και είναι πιστοποιημένο με CompTIA A + και Network +. Είναι ο κύριος προγραμματιστής του MakeUseOf και περνά τον ελεύθερο χρόνο του παίζοντας VR paintball και boardgames. Δημιουργεί υπολογιστές από τότε που ήταν παιδί.