Διαφήμιση
Την τελευταία φορά που σας άφησα έχοντας δημιουργήσει Ξεκινώντας με το κιτ εκκίνησης Arduino - Εγκατάσταση προγραμμάτων οδήγησης & Εγκατάσταση του πίνακα & της θύραςΈτσι, έχετε αγοράσει τον εαυτό σας ένα κιτ εκκίνησης Arduino, και ίσως μερικά άλλα τυχαία δροσερά εξαρτήματα - τώρα τι; Πώς ξεκινάτε πραγματικά να προγραμματίζετε αυτό το πράγμα Arduino; Πώς το ρυθμίζετε ... Διαβάστε περισσότερα το Arduino σας να δουλεύει με Mac ή Windows και έχοντας ανεβάσει μια απλή εφαρμογή δοκιμής που αναβοσβήνει το ενσωματωμένο LED. Σήμερα θα εξηγήσω τον κώδικα που ανεβάσατε, τη δομή του λογισμικού Arduino και λίγα περισσότερα σχετικά με τα ηλεκτρονικά bits του ίδιου του πίνακα.
Αυτό το άρθρο είναι μέρος μιας εισαγωγής στη σειρά Arduino. Τα άλλα άρθρα της σειράς μέχρι τώρα είναι:
- Τι είναι το Arduino και τι μπορείτε να κάνετε με αυτό Τι είναι το Arduino και τι μπορείτε να κάνετε με αυτό;Το Arduino είναι μια αξιοσημείωτη μικρή ηλεκτρονική συσκευή, αλλά αν δεν έχετε χρησιμοποιήσει ποτέ πριν, τι ακριβώς είναι και τι μπορείτε να κάνετε με ένα; Διαβάστε περισσότερα ?
- Τι είναι το κιτ εκκίνησης Arduino και τι περιέχει; Τι περιλαμβάνεται σε ένα κιτ εκκίνησης Arduino; [Επεξηγήσεις MakeUseOf]Έχω προηγουμένως παρουσιάσει το υλικό ανοικτού κώδικα Arduino εδώ στο MakeUseOf, αλλά θα χρειαστείτε κάτι περισσότερο από το πραγματικό Arduino για να χτίσετε κάτι από αυτό και να αρχίσετε πραγματικά. Arduino "εκκίνησης kit" είναι ... Διαβάστε περισσότερα
- Περισσότερα δροσερά εξαρτήματα για αγορά με το κιτ εκκίνησης 8 Περισσότερα δροσερά εξαρτήματα για τα έργα ArduinoΣκεφτείτε λοιπόν να πάρετε ένα κιτ εκκίνησης Arduino, αλλά αναρωτιέστε αν κάποια βασικά LED και αντιστάσεις θα είναι αρκετά για να σας κρατήσουν απασχολημένους για το Σαββατοκύριακο; Πιθανώς όχι. Εδώ είναι άλλες 8 ... Διαβάστε περισσότερα
- Ξεκινώντας με το κιτ εκκίνησης Arduino - Εγκατάσταση προγραμμάτων οδήγησης & Εγκατάσταση του πίνακα & της θύρας Ξεκινώντας με το κιτ εκκίνησης Arduino - Εγκατάσταση προγραμμάτων οδήγησης & Εγκατάσταση του πίνακα & της θύραςΈτσι, έχετε αγοράσει τον εαυτό σας ένα κιτ εκκίνησης Arduino, και ίσως μερικά άλλα τυχαία δροσερά εξαρτήματα - τώρα τι; Πώς ξεκινάτε πραγματικά να προγραμματίζετε αυτό το πράγμα Arduino; Πώς το ρυθμίζετε ... Διαβάστε περισσότερα
Το υλικό
Ας ρίξουμε μια πιο προσεκτική ματιά σε αυτό που το Arduino Uno έχει από την άποψη των bits στο κύκλωμα.
Εδώ είναι ένα μεγεθυμένο διάγραμμα για να αναφερθώ σε:
- Στην κορυφή υπάρχουν 14 ψηφίδες εισόδου / εξόδου (αριθμημένες 0-13). Αυτές είναι οι πιο ευέλικτες καρφίτσες του Arduino και μπορούν να λειτουργήσουν είτε ως είσοδος είτε ως έξοδος, και θα αποτελέσουν τον πυρήνα των έργων σας. Το ψηφιακό σημαίνει ότι το σήμα που μπορούν να γράψουν ή να διαβάσουν αυτές οι καρφίτσες θα είναι ενεργοποιημένες ή απενεργοποιημένες.
- 6 από αυτές τις ψηφιακές ακίδες, οι οποίες σημειώνονται με το σύμβολο tilde ~ είναι σε θέση να κάνει αυτό που ονομάζεται Ρύθμιση πλάτους παλμού. Δεν είμαι ηλεκτρολόγος μηχανικός, οπότε δεν θα ενοχλήσω τον εαυτό μου εξηγώντας την επιστήμη πίσω από αυτό, αλλά σε εσένα και εγώ αυτό σημαίνει ότι μπορούμε να προσφέρουμε ένα φάσμα επιπέδων εξόδου - για παράδειγμα, να μειώσουμε το LED ή να οδηγήσουμε έναν κινητήρα σε διαφορετικό ταχύτητες.
- Ο ακροδέκτης 13 είναι ξεχωριστός επειδή έχει ενσωματωμένο LED. Αυτό είναι για λόγους ευκολίας και δοκιμής μόνο πραγματικά. Μπορείτε να χρησιμοποιήσετε αυτήν την ενσωματωμένη λυχνία LED, όπως κάνατε στην εφαρμογή παράδειγμα Blink, απλά βγάζοντας τον ακροδέκτη 13 - ή μπορεί να χρησιμοποιηθεί ως τυπική ακίδα εισόδου / εξόδου.
- Στην κάτω δεξιά πλευρά υπάρχουν 6 ακίδες αναλογικής εισόδου. Αυτά θα διαβάσουν την τιμή των αναλογικών αισθητήρων, όπως ένας μετρητής φωτός ή μεταβλητές αντιστάσεις.
- Στο κάτω αριστερό μέρος δίπλα από τις ακίδες αναλογικής εισόδου υπάρχουν ακίδες τροφοδοσίας. Οι μόνοι που πραγματικά πρέπει να ανησυχήσετε είναι οι αγωγοί γείωσης (GND), 3.3V και 5v.
- Τέλος, ο μόνος διακόπτης που βρίσκεται στο Arduino είναι ένας διακόπτης επαναφοράς. Αυτό θα ξεκινήσει εκ νέου ό, τι πρόγραμμα έχει στη μνήμη του.
- Το Arduino έχει μια καθορισμένη ποσότητα μνήμης, και αν το πρόγραμμά σας πάει πάρα πολύ μεγάλο, ο μεταγλωττιστής θα σας δώσει ένα λάθος.
Η δομή ενός προγράμματος Arduino
Κάθε πρόγραμμα Arduino αποτελείται από τουλάχιστον δύο λειτουργίες (αν δεν ξέρετε τι είναι μια λειτουργία, φροντίστε να διαβάσετε τη δική μου Βασικό εκπαιδευτικό πρόγραμμα, μέρος 2 - Λειτουργίες και έλεγχοι Τα απόλυτα βασικά του προγραμματισμού για αρχάριους (Μέρος 2)Στο μέρος 2 του οδηγού απόλυτης αρχαίας για τον προγραμματισμό, θα καλύψω τα βασικά των λειτουργιών, τις τιμές επιστροφής, τους βρόχους και τους όρους. Βεβαιωθείτε ότι έχετε διαβάσει το μέρος 1 πριν αντιμετωπίσετε αυτό, όπου εξήγησα ... Διαβάστε περισσότερα , και μέρος 1 όπου συζητήσαμε τις μεταβλητές Τα βασικά του προγραμματισμού υπολογιστών 101 - Μεταβλητές και τύποι δεδομένωνΈχοντας παρουσιάσει και μίλησε λίγο για τον Αντικειμενοστρεφή Προγραμματισμό πρίν και όπου το όνομά του προέρχεται από, σκέφτηκα ότι είναι καιρός να περάσουμε από τα απόλυτα βασικά του προγραμματισμού σε ένα μη-γλωσσικό συγκεκριμένο τρόπος. Αυτό... Διαβάστε περισσότερα πριν συνεχίσετε).
Η πρώτη είναι η λειτουργία ρύθμισης. Αυτό εκτελείται αρχικά - μία φορά μόνο - και χρησιμοποιείται για να πει το Arduino τι είναι συνδεδεμένο και όπου, καθώς και την αρχικοποίηση οποιωνδήποτε μεταβλητών μπορεί να χρειαστείτε στο πρόγραμμά σας.
Δεύτερον είναι ο βρόχος. Αυτός είναι ο πυρήνας κάθε προγράμματος Arduino. Όταν το Arduino τρέχει, αφού ολοκληρωθεί η λειτουργία ρύθμισης, ο βρόχος θα περάσει από όλες τις κωδικοποιήστε, στη συνέχεια, κάντε ολόκληρο το πράγμα ξανά - μέχρι να χαθεί η ισχύς ή να γίνει ο διακόπτης επαναφοράς πατημένο. Το χρονικό διάστημα που χρειάζεται για να ολοκληρωθεί ένας πλήρης βρόχος εξαρτάται από τον κώδικα που περιέχεται. Μπορείτε να γράψετε κάποιον κώδικα που λέει "περιμένετε 6 ώρες", οπότε ο βρόχος δεν πρόκειται να επαναλαμβάνεται πολύ συχνά.
Ακολουθεί ένα γρήγορο διάγραμμα κατάστασης για να απεικονιστεί:
Εξέταση του προγράμματος Blink
Ρίξτε μια ματιά πίσω στον κωδικό προγράμματος Blink και προσδιορίστε τις λειτουργίες ρύθμισης και βρόχου.
Εδώ είναι η ρύθμιση:
άκυρη ρύθμιση () { // αρχικοποιήστε τον ψηφιακό ακροδέκτη ως έξοδο. // Ο ακροδέκτης 13 έχει LED συνδεδεμένη στις περισσότερες πλακέτες Arduino: pinMode (13, OUTPUT). }
Οι γραμμές που αρχίζουν με // είναι απλά σχόλια για να εξηγήσουν τον κώδικα σε έναν ανθρώπινο αναγνώστη και δεν μεταφορτώνονται στο Arduino. Έτσι, στην πραγματικότητα, υπάρχει μόνο μία γραμμή κώδικα εγκατάστασης σε αυτήν την συγκεκριμένη εφαρμογή Arduino. Αυτή η γραμμή λέει "Ρυθμίστε τον ακροδέκτη 13 στον τρόπο εξόδου". 13, θυμηθείτε, είναι η ενσωματωμένη LED.
Στη συνέχεια, υπάρχει ο βρόχος:
void loop () { Ψηφιακή εγγραφή (13, ΥΨΗΛΗ); // ενεργοποιήστε τη λυχνία LED. καθυστέρηση (1000). // περιμένετε για ένα δευτερόλεπτο. ψηφιακή γραφή (13, χαμηλή); // ορίστε το LED εκτός λειτουργίας. καθυστέρηση (1000). // περιμένετε για ένα δευτερόλεπτο. }
Τα σχόλια στο τέλος κάθε γραμμής κώδικα εξηγούν τη λειτουργία τους αρκετά καλά. HIGH και LOW ανατρέξτε στην κατάσταση ON και OFF της ψηφιακής εξόδου - στην περίπτωση μας LED. Μπορείτε επίσης να γράψετε ON ή OFF στον κώδικα επίσης, και οι δύο είναι συνώνυμοι (όπως και 0 και 1 επίσης). Καθυστέρηση λέει στον Arduino να περιμένει λίγο, στην περίπτωση αυτή 1000 χιλιοστά του δευτερολέπτου (ή 1 δευτερόλεπτο).
Τέλος, μια σημείωση σχετικά με τη γλώσσα προγραμματισμού που χρησιμοποιείται εδώ. Παρατηρήστε ότι οι λειτουργίες ρύθμισης και βρόχου έχουν τη λέξη κενός μπροστά τους. Αυτή είναι μια ειδική λέξη για τίποτα, επειδή η λειτουργία δεν επιστρέφει τίποτα όταν ονομάζεται - απλά τρέχει τον κώδικα που περιέχεται μέσα. Προς το παρόν, αφήστε το να λέει ότι το μπλοκ κώδικα της λειτουργίας περικλείεται από τις σγουρές braces {}, και ότι κάθε γραμμή κώδικα πρέπει να τελειώνει με ένα. άνω τελεία.
Δοκιμάστε να αλλάξετε κάπως το βασικό πρόγραμμα αλλάζοντας τις ακριβείς τιμές καθυστέρησης σε κάτι μεγαλύτερο ή μικρότερο. Δείτε πόσο μικρός μπορείτε να το κατεβάσετε πριν το αναβοσβήνει δεν είναι πλέον αισθητό. Επεξεργαστείτε ποια αξία θέλετε να αλλάξετε για να παραμείνει για παρατεταμένη διάρκεια ή να παραμείνει μακριά για μεγαλύτερο χρονικό διάστημα. Προσπαθήστε να προσθέσετε κάποιες άλλες δηλώσεις ψηφιακής γραφής και καθυστέρησης στη λειτουργία βρόχου για να δημιουργήσετε ένα πιο περίπλοκο μοτίβο αναλαμπής όπως το κώδικα morse για την SOS. Εάν έχετε ένα βομβητή, δοκιμάστε να το συνδέσετε με ακροδέκτες 13 και GND επίσης (υπαινιγμός: το κόκκινο καλώδιο φτάνει στο 13, μαύρο στο έδαφος).
Αυτά για σήμερα. Την επόμενη φορά θα προσθέσουμε μερικές περισσότερες λυχνίες LED και θα γράψουμε τη δική μας εφαρμογή από την αρχή. Όπως πάντα, τα σχόλια και οι μετοχές εκτιμήθηκαν πολύ. Δεν μπορώ να φανταστώ ότι θα έχετε προβλήματα με τον κώδικα που αναφέρεται σήμερα, αλλά αν έχετε δοκιμάσει να ρυθμίσετε ελαφρώς τον κωδικό και είναι που τρέχουν σε σφάλματα ή απροσδόκητη συμπεριφορά, διστάσετε να το δημοσιεύσετε στα σχόλια και θα δούμε αν μπορούμε να εργαστούμε μέσα από αυτό μαζί.
Ο James έχει πτυχίο στην Τεχνητή Νοημοσύνη και είναι πιστοποιημένος με CompTIA A + και Network +. Είναι ο κύριος προγραμματιστής της MakeUseOf, και ξοδεύει τον ελεύθερο χρόνο του παίζοντας VR paintball και boardgames. Κατασκευάζει υπολογιστές από τότε που ήταν παιδί.