Κατηγορίες: Προτεινόμενα άρθρα » Πρακτικά ηλεκτρονικά
Αριθμός προβολών: 67360
Σχόλια σχετικά με το άρθρο: 7
Σύνδεση και προγραμματισμός του Arduino για αρχάριους
Η μελέτη των μικροελεγκτών φαίνεται περίπλοκη και ακατανόητη; Πριν από την εμφάνιση του Arudino, δεν ήταν πραγματικά εύκολο και απαιτούσε ένα ορισμένο σύνολο προγραμματιστών και άλλου εξοπλισμού.
Τι είναι το Arduino;
Αυτό είναι ένα είδος ηλεκτρονικού κατασκευαστή. Ο αρχικός στόχος του έργου είναι να επιτρέψει στους ανθρώπους να μάθουν εύκολα πώς να προγραμματίζουν ηλεκτρονικές συσκευές, ενώ αφιερώνει ελάχιστο χρόνο στο ηλεκτρονικό μέρος.
Η συναρμολόγηση των πιο περίπλοκων κυκλωμάτων και η σύνδεση των σανίδων μπορούν να πραγματοποιηθούν χωρίς συγκολλητικό σίδερο και με τη βοήθεια μανδάλων με αποσπώμενες συνδέσεις «πατέρας» και «μητέρα». Με αυτόν τον τρόπο, μπορούν να συνδεθούν και τα δύο εξαρτήματα και οι κάρτες επέκτασης, τα οποία στο λεξικό των αρδουίνων ονομάζονται απλά "Ασπίδες".

Ποιο είναι το πρώτο φύλλο Arduino που αγοράζει για έναν αρχάριο;
Η βάση και το πιο δημοφιλές συμβούλιο θεωρείται Arduino uno. Το ποσό αυτό μοιάζει με πιστωτική κάρτα. Αρκετά μεγάλο. Οι περισσότερες ασπίδες που πωλούνται είναι τέλειες γι 'αυτήν. Υπάρχουν υποδοχές στον πίνακα για τη σύνδεση εξωτερικών συσκευών.

Στα εγχώρια καταστήματα για το 2017, η τιμή του είναι περίπου 4-5 δολάρια. Στα σύγχρονα μοντέλα, η καρδιά της είναι Atmega328.
Arduino εικόνα και λειτουργία αποκωδικοποίησης συμβολοσειρών κάθε καρφίτσας, Arduino UNO pinout
Ο μικροελεγκτής αυτού του πίνακα είναι ένα μακρύ τσιπ στο πακέτο DIP28, το οποίο δείχνει ότι έχει 28 πόδια.
Το επόμενο πιο δημοφιλές συμβούλιο κοστίζει σχεδόν δύο φορές φθηνότερα από το προηγούμενο - 2-3 δολάρια. Αυτό είναι το διοικητικό συμβούλιο Arduino nano. Οι πραγματικές πλακέτες κατασκευάζονται από το ίδιο Atmega328, είναι λειτουργικά παρόμοιες με τις UNO, υπάρχουν διαφορές στα μεγέθη και μια λύση που ταιριάζει με το USB, περισσότερο σε αυτό αργότερα. Μια άλλη διαφορά είναι ότι ένα βύσμα, με τη μορφή βελονών, παρέχεται για τη σύνδεση συσκευών στην πλακέτα κυκλώματος.

Ο αριθμός των ακίδων αυτού του πίνακα είναι ο ίδιος, αλλά μπορείτε να παρατηρήσετε ότι ο μικροελεγκτής είναι κατασκευασμένος σε ένα πιο συμπαγές πακέτο TQFP32, τα ADC6 και ADC7 προστίθενται στην περίπτωση, ενώ τα άλλα δύο "extra" πόδια αντιγράφουν τον δίαυλο ισχύος. Οι διαστάσεις του είναι αρκετά συμπαγείς - περίπου στο μέγεθος του αντίχειρα του χεριού σας.
Το τρίτο πιο δημοφιλές συμβούλιο είναι Arduino Pro Mini, δεν έχει θύρα USB για σύνδεση με υπολογιστή, θα σας πω πώς να επικοινωνήσετε λίγο αργότερα.

Arduino Nano vs Pro Μίνι σύγκριση μεγέθους
Αυτή είναι η μικρότερη μητρική πλακέτα όλων των εξεταζόμενων, αλλιώς είναι παρόμοια με τα προηγούμενα δύο, και το Atmega328 εξακολουθεί να είναι η καρδιά του. Δεν θα εξετάσουμε άλλα συμβούλια, αφού πρόκειται για ένα άρθρο για αρχάριους και η σύγκριση των συμβουλίων είναι το θέμα ενός ξεχωριστού άρθρου.
Arduino Pro Mini pinout, στο πάνω μέρος, το διάγραμμα σύνδεσης USB-UART, το pin "GRN" - συνδέεται στο κύκλωμα επαναφοράς του μικροελεγκτή, μπορεί να ονομαστεί διαφορετικά, για το οποίο πρέπει να το μάθετε αργότερα.
Περίληψη:
Αν το UNO είναι κατάλληλο για πρωτότυπα, τότε το Nano και το Pro Mini είναι βολικά για τις τελικές εκδόσεις του έργου σας, επειδή καταλαμβάνουν λίγο χώρο.

Πώς συνδέεται το Arduino με έναν υπολογιστή;
Το Arduino Uno και το Nano συνδέονται με έναν υπολογιστή μέσω USB. Παράλληλα, δεν υπάρχει υποστήριξη υλικού για τη θύρα USB, εδώ χρησιμοποιείται μια λύση κυκλώματος μετατροπής επιπέδου, που συνήθως ονομάζεται USB-to-Serial ή USB-UART (rs-232). Ταυτόχρονα, ένας ειδικός bootloader Arduino αναβοσβήνει στον μικροελεγκτή, ο οποίος επιτρέπει την αναβοσβήνει σε αυτά τα λεωφορεία.
Στο Arduino Uno, αυτός ο σύνδεσμος υλοποιείται σε ένα μικροελεγκτή με υποστήριξη USB - ATmega16U2 (AT16U2). Αποδεικνύεται ότι ο πρόσθετος μικροελεγκτής στην κάρτα είναι απαραίτητος για να αναβοσβήνει ο κύριος μικροελεγκτής.
Στο Arduino Nano, αυτό υλοποιείται από το τσιπ FT232R, ή το αναλογικό του CH340. Αυτός δεν είναι ένας μικροελεγκτής - είναι ένας μετατροπέας επιπέδου, αυτό το γεγονός καθιστά εύκολη τη συναρμολόγηση του Arduino Nano από το μηδέν με τα χέρια σας.
Συνήθως, τα προγράμματα οδήγησης εγκαθίστανται αυτόματα όταν είναι συνδεδεμένη η πλακέτα Arduino. Ωστόσο, όταν αγόρασα ένα κινεζικό αντίγραφο του Arduino Nano, η συσκευή αναγνωρίστηκε, αλλά δεν λειτούργησε, ένα αυτοκόλλητο στρογγυλό με στοιχεία σχετικά με την ημερομηνία κυκλοφορίας ήταν κολλημένο στον μετατροπέα, δεν ξέρω αν έγινε με σκοπό, αλλά μετά το ξεφλούδισμα είδα το σήμα CH340.
Πριν από αυτό, δεν αντιμετώπισα κάτι τέτοιο και πίστευα ότι όλοι οι μετατροπείς USB-UART συναρμολογήθηκαν στο FT232, έπρεπε να κατεβάσω προγράμματα οδήγησης, είναι πολύ εύκολο να βρεθούν κατόπιν αιτήματος του οδηγού "Arduino ch340". Μετά από μια απλή εγκατάσταση - λειτούργησε!
Μέσω της ίδιας θύρας USB, ο μικροελεγκτής μπορεί επίσης να τροφοδοτηθεί, δηλ. αν το συνδέσετε με τον προσαρμογέα από ένα κινητό τηλέφωνο, το σύστημά σας θα λειτουργήσει.
Τι πρέπει να κάνω εάν η πλακέτα μου δεν έχει USB;
Το Arduino Pro Mini είναι μικρότερο. Αυτό επιτεύχθηκε αφαιρώντας τη θύρα USB για το υλικολογισμικό και τον ίδιο μετατροπέα USB-UART. Επομένως, πρέπει να αγοραστεί ξεχωριστά. Ο πιο απλός μετατροπέας σε CH340 (το φθηνότερο), CPL2102 και FT232R, για κόστος πώλησης από $ 1.
Κατά την αγορά, δώστε προσοχή σε τι τάση έχει σχεδιαστεί αυτός ο προσαρμογέας. Το Pro mini είναι διαθέσιμο στις εκδόσεις 3.3 και 5 V, συχνά βρίσκεται ένας βραχυκυκλωτήρας στους μετατροπείς για να αλλάξει η τάση τροφοδοσίας.

Όταν αναβοσβήνει το Pro Mini, λίγο πριν ξεκινήσει, πρέπει να κάνετε κλικ στο RESET, ωστόσο σε μετατροπείς με DTR δεν χρειάζεται να το κάνετε αυτό, το διάγραμμα σύνδεσης στο παρακάτω σχήμα.

Συνδέονται με ειδικά τερματικά "Mama-Mama" (θηλυκό-θηλυκό).

Στην πραγματικότητα, όλες οι συνδέσεις μπορούν να γίνουν χρησιμοποιώντας τέτοιους ακροδέκτες (Dupont), είναι και στις δύο πλευρές με πρίζες και με βύσματα, και στη μία πλευρά της πρίζας, και στην άλλη βύσμα.

Πώς να γράψετε προγράμματα για το Arduino;
Για να δουλέψετε με σκίτσα (το όνομα του firmware είναι στη γλώσσα του arduino), υπάρχει ένα ειδικό ολοκληρωμένο περιβάλλον για την ανάπτυξη του IDE του Arduino, μπορείτε να το κατεβάσετε δωρεάν από τον επίσημο ιστότοπο ή από οποιαδήποτε θεματική πηγή, συνήθως δεν υπάρχουν προβλήματα με την εγκατάστασή του.
Έτσι φαίνεται η διεπαφή του προγράμματος. Μπορείτε να γράψετε προγράμματα στην απλοποιημένη γλώσσα C AVR ειδικά σχεδιασμένη για arduino, στην πραγματικότητα πρόκειται για ένα σύνολο βιβλιοθηκών που ονομάζεται καλωδίωση, καθώς και για καθαρό C AVR. Η χρήση του διευκολύνει τον κώδικα και επιταχύνει τη δουλειά του.
Στο επάνω μέρος του παραθύρου υπάρχει ένα γνωστό μενού όπου μπορείτε να ανοίξετε το αρχείο, τις ρυθμίσεις, να επιλέξετε τον πίνακα με τον οποίο εργάζεστε (Uno, Nano και πολλοί άλλοι) και επίσης να ανοίξετε έργα με έτοιμα παραδείγματα κώδικα. Παρακάτω είναι ένα σύνολο κουμπιών για εργασία με το υλικολογισμικό, τα πλήκτρα που θα δείτε στο παρακάτω σχήμα.

Στο κάτω μέρος του παραθύρου υπάρχει μια περιοχή για την προβολή πληροφοριών σχετικά με το έργο, την κατάσταση του κώδικα, το υλικολογισμικό και την παρουσία σφαλμάτων.
Arduino βασικά στοιχεία προγραμματισμού IDE
Στην αρχή του κώδικα, πρέπει να δηλώσετε μεταβλητές και να συνδέσετε επιπλέον βιβλιοθήκες, αν υπάρχουν, αυτό γίνεται ως εξής:
#include biblioteka.h; // συνδέστε τη βιβλιοθήκη με το όνομα "Biblioteka.h"
#define peremennaya 1234; // Δηλώστε μια μεταβλητή με τιμή 1234
Η εντολή Ορισμός επιτρέπει στον μεταγλωττιστή να επιλέξει τον τύπο της μεταβλητής, αλλά μπορείτε να τον ορίσετε με το χέρι, για παράδειγμα, έναν int int, ή float floating point.
int led = 13; // δημιούργησε τη μεταβλητή "led" και την ανέθεσε την τιμή "13"
Το πρόγραμμα μπορεί να καθορίσει την κατάσταση του πείρου ως 1 ή 0. 1 είναι μια λογική μονάδα, αν ο ακροδέκτης 13 είναι 1, τότε η τάση στο φυσικό πόδι θα είναι ίση με την τάση τροφοδοσίας του μικροελεγκτή (για arduino UNO και Nano - 5 V)
Το ψηφιακό σήμα καταγράφεται χρησιμοποιώντας την εντολή digitalWrite (pin, value), για παράδειγμα:
ψηφιακήWrite (led, υψηλή); // γράψτε τη μονάδα στο pin 13 (το ανήγγειλα παραπάνω). Μονάδες.
Όπως μπορείτε να καταλάβετε, η πρόσβαση στις θύρες γίνεται με αρίθμηση στον πίνακα, αντίστοιχη εικόνα. Ακολουθεί ένα παράδειγμα παρόμοιο με τον προηγούμενο κωδικό:
ψηφιακή καταγραφή (13, υψηλή); // ρυθμίστε τον ακροδέκτη 13 σε ένα
Συχνά, η επιθυμητή λειτουργία καθυστέρησης χρόνου καλείται από την εντολή καθυστέρησης (), η τιμή της οποίας ορίζεται σε χιλιοστά του δευτερολέπτου, επιτυγχάνονται μικροδευτερόλεπτα χρησιμοποιώντας
delayMicroseconds () Καθυστέρηση (1000); // ο μικροελεγκτής θα περιμένει 1000 ms (1 δευτερόλεπτο)
Οι ρυθμίσεις θύρας για είσοδο και έξοδο ρυθμίζονται στη λειτουργία void setup {}, με την εντολή:
άκυρη ρύθμιση () {
pinMode (NOMERPORTA, OUTPUT / INPUT). // arguments - όνομα μεταβλητής ή αριθμός θύρας, είσοδος ή έξοδος για να διαλέξετε
}
Άκυρο βρόχο {}
Κατανόηση του πρώτου προγράμματος Blink
Ως ένα είδος "Hello, world" για τους μικροελεγκτές, υπάρχει ένα LED που αναβοσβήνει το πρόγραμμα, ας αναλύσουμε τον κώδικα του:
Στην αρχή, με την εντολή pinMode, είπαμε στον μικροελεγκτή να αντιστοιχίσει μια θύρα με LED στην έξοδο.Έχετε ήδη παρατηρήσει ότι ο κώδικας δεν δηλώνει τη μεταβλητή "LED_BUILTIN", το γεγονός είναι ότι σε Uno, Nano και άλλες κάρτες από το εργοστάσιο, το ενσωματωμένο LED συνδέεται στον ακροδέκτη 13 και είναι συγκολλημένο στον πίνακα. Μπορεί να χρησιμοποιηθεί από εσάς για ένδειξη στα έργα σας ή για τον απλούστερο έλεγχο των προγραμμάτων που αναβοσβήνουν.
Έπειτα, ρυθμίζουμε την έξοδο στην οποία η LED είναι συγκολλημένη σε μονάδα (5 V), η επόμενη γραμμή κάνει το MK να περιμένει 1 δευτερόλεπτο και μετά θέτει τον ακροδέκτη LED_BUILTIN στο μηδέν, περιμένει ένα δευτερόλεπτο και το πρόγραμμα επαναλαμβάνεται σε έναν κύκλο, έτσι όταν το LED_BUILTIN είναι 1 - και οποιοδήποτε άλλο φορτίο συνδέεται στη θύρα) είναι ενεργοποιημένο, όταν είναι 0 απενεργοποιημένο.
Τα πάντα δουλεύουν και όλα είναι ξεκάθαρα; Στη συνέχεια, προχωρήστε!
Διαβάζουμε την τιμή από την αναλογική θύρα και χρησιμοποιούμε τα δεδομένα ανάγνωσης
Ο μικροελεγκτής Atmega328 AVR διαθέτει ενσωματωμένο αναλογικό μετατροπέα 10 ψηφίων. Ο ADC 10-bit σας επιτρέπει να διαβάσετε την τιμή τάσης από 0 έως 5 βολτ, σε βήματα του 1/1024 ολόκληρου του εύρους εύρους του σήματος (5 V).
Για να γίνει σαφέστερο, σκεφτείτε την κατάσταση, υποθέστε ότι η τιμή τάσης στην αναλογική είσοδο είναι 2,5 V, τότε ο μικροελεγκτής θα διαβάσει την τιμή από τον ακροδέκτη "512" αν η τάση είναι 0 - "0" και 5 V - (1023). 1023 - επειδή ο αριθμός μετρά από 0, δηλ. 0, 1, 2, 3 κ.λπ. έως 1023 - σύνολο 1024 αξιών.
Δείτε πώς φαίνεται στον κώδικα, χρησιμοποιώντας το πρότυπο σκίτσο "analogInput" ως παράδειγμα
int αισθητήραςPin = A0;
int ledPin = 13;
int αισθητήραςValue = 0;
άκυρη ρύθμιση () {
pinMode (ledPin, OUTPUT).
}
void loop () {
αισθητήραςValue = αναλογικόΔιαβάστε (sensorPin);
ψηφιακήWrite (ledPin, HIGH);
καθυστέρηση (αισθητήραςValue);
ψηφιακήWrite (ledPin, LOW);
καθυστέρηση (αισθητήραςValue);
}

Το σχέδιο σύνδεσης του ποτενσιόμετρου με το Arduino, κατ 'αναλογία, η κεντρική έξοδος που μπορείτε να συνδέσετε σε οποιαδήποτε αναλογική είσοδο.
Δηλώστε μεταβλητές:
-
Ledpin - ορίστε ανεξάρτητα έναν ακροδέκτη με ενσωματωμένο LED στην έξοδο και δώστε ένα ατομικό όνομα.
-
sensorPin - αναλογική είσοδος, ρυθμισμένη σύμφωνα με τη σήμανση στην πλακέτα: A0, A1, A2, κ.λπ.
-
sensorValue - μια μεταβλητή για την αποθήκευση μιας ακέραιης τιμής ανάγνωσης και περαιτέρω εργασία με αυτήν.
Ο κώδικας λειτουργεί ως εξής: sensorValue αποθηκεύει την ανάλογη τιμή που διαβάζεται με την εντολή αισθητήραPin (αναλογικήΑποστολή). - εδώ τελειώνει η εργασία με το αναλογικό σήμα, τότε όλα είναι όπως στο προηγούμενο παράδειγμα.
Γράφουμε τη μονάδα στο ledPin, η λυχνία LED ανάβει και περιμένει για ένα χρόνο ίσο με την τιμή του αισθητήραValue, δηλ. από 0 έως 1023 χιλιοστά του δευτερολέπτου. Απενεργοποιήστε τη λυχνία LED και περιμένετε ξανά για αυτή την χρονική περίοδο, μετά την οποία επαναλαμβάνεται ο κώδικας.
Έτσι, από τη θέση του ποτενσιόμετρου, ρυθμίζουμε τη συχνότητα που αναβοσβήνει το LED.
Λειτουργία χάρτη για το Arudino
Όχι όλες οι λειτουργίες για τους ενεργοποιητές (δεν γνωρίζω κανένα) υποστηρίζουν το "1023" ως επιχείρημα, για παράδειγμα, ο σερβοκινητήρας περιορίζεται από τη γωνία περιστροφής, δηλαδή κατά μισή περιστροφή του σερβοκινητήρα το μέγιστο όρισμα της λειτουργίας είναι "180"
Τώρα για τη σύνταξη: χάρτη (η τιμή που μεταφράζουμε είναι η ελάχιστη είσοδος, η μέγιστη είσοδος, η ελάχιστη έξοδος, η μέγιστη έξοδος).
Σε κώδικα, μοιάζει με αυτό:
(χάρτης (ανάλογοςΔεχνισμός (pot), 0, 1023, 0, 180)).
Διαβάζουμε την τιμή από το ποτενσιόμετρο (analogRead (pot)) από 0 έως 1023, και στην έξοδο παίρνουμε αριθμούς από 0 έως 180
Τιμές τιμών τιμών:
-
0=0;
-
1023=180;
Στην πράξη, εφαρμόζουμε αυτό στο έργο του ίδιου σερβο κώδικα, ρίξτε μια ματιά στον κώδικα με το IDE του Arduino, εάν διαβάσετε προσεκτικά τα προηγούμενα τμήματα, τότε δεν χρειάζεται εξήγηση.

Και το διάγραμμα σύνδεσης.

Συμπεράσματα Το Arduino είναι ένα πολύ βολικό εργαλείο για να μάθεις πώς να δουλεύεις με τους μικροελεγκτές. Και αν χρησιμοποιείτε καθαρό C AVR, ή όπως αποκαλείται μερικές φορές "Pure C", θα μειώσετε σημαντικά το βάρος του κώδικα και θα ταιριάζει περισσότερο στη μνήμη του μικροελεγκτή, με αποτέλεσμα να έχετε έναν εξαιρετικό εργοστασιακό πίνακα εντοπισμού σφαλμάτων με firmware USB.

Γνώμη του συντάκτη:
Μου αρέσει το arduino. Είναι κρίμα που πολλοί έμπειροι προγραμματιστές μικροελεγκτών τον επικρίνουν αδικαιολόγητα, ότι είναι πολύ απλοποιημένο. Κατ 'αρχήν απλοποιείται μόνο η γλώσσα, αλλά κανείς δεν σε αναγκάζει να τη χρησιμοποιήσεις, ενώ μπορείτε να αναβοσβήνετε τον μικροελεγκτή μέσω του συνδέσμου ICSP και να συμπληρώσετε τον κωδικό που θέλετε χωρίς να έχετε bootloaders που δεν χρειάζεστε.
Για όσους θέλουν να παίζουν με την ηλεκτρονική, ως προηγμένος κατασκευαστής, είναι τέλειος, αλλά για τους έμπειρους προγραμματιστές, μια πλακέτα που δεν απαιτεί συναρμολόγηση θα είναι επίσης χρήσιμη!
Για περισσότερες πληροφορίες σχετικά με το Arduino και τα χαρακτηριστικά χρήσης του σε διάφορα σχήματα, ανατρέξτε στο ηλεκτρονικό βιβλίο -Arduino για ανδρείκελα. Εικονογραφημένος πρακτικός οδηγός.
Δείτε επίσης στο electro-el.tomathouse.com
: