Πώς να γράψετε ένα πρόγραμμα για κινητήρες στο arduino. Προγραμματισμός Arduino

Πρόγραμμα Kerish Doctor. 10.08.2019
Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...

Αυτό το εισαγωγικό άρθρο είναι για όσους έχουν ήδη αποσυσκευάσει μια ντουζίνα ή δύο χρωματιστά κουτιά από σετ κατασκευών με το παιδί τους, έχουν φτιάξει εκατοντάδες διαφορετικές κατασκευές και έχουν γεμίσει όλα τα διαθέσιμα δοχεία στην ντουλάπα με εξαρτήματα Lego. Εάν είστε έτοιμοι να προχωρήσετε στο επόμενο επίπεδο: με ηλεκτρονικά, μικροελεγκτές, αισθητήρες και έξυπνες συσκευές, τότε ήρθε η ώρα να πειραματιστείτε με το Arduino!

Σε αυτή τη σειρά άρθρων θα συλλέξουμε τα πιο σημαντικά πράγματα που πρέπει να γνωρίζετε για το Arduino για να ξεκινήσετε να διδάσκετε μόνοι σας τα παιδιά. Ακόμα κι αν δεν έχετε πάρει ποτέ κολλητήρι και οι λέξεις «ελεγκτής» και «ελεγκτής» έχουν περίπου την ίδια σημασία για εσάς, να είστε σίγουροι ότι θα τα καταφέρετε! Ο κόσμος της ηλεκτρονικής και της ρομποτικής σήμερα είναι γεμάτος απλές και πολύ βολικές λύσεις που σας επιτρέπουν να δημιουργείτε πολύ ενδιαφέροντα έργα πρακτικά από την αρχή. Το σεμινάριο μας θα σας βοηθήσει να πλοηγηθείτε γρήγορα και να κάνετε τα πρώτα σας βήματα.

Στην καθημερινή γλώσσα, το Arduino είναι μια συσκευή στην οποία μπορείτε να συνδέσετε πολλές διαφορετικές συσκευές και να τις κάνετε να συνεργαστούν χρησιμοποιώντας ένα πρόγραμμα γραμμένο στη γλώσσα Arduino σε ένα ειδικό περιβάλλον προγραμματισμού.

Τις περισσότερες φορές ο πίνακας μοιάζει με αυτό:

Το σχήμα δείχνει μια από τις πλακέτες Arduino - Arduino Uno. Θα το μελετήσουμε αναλυτικότερα στα επόμενα μαθήματα.

Μπορείτε να συνδέσετε καλώδια στην πλακέτα και να συνδέσετε πολλά διαφορετικά στοιχεία. Τις περισσότερες φορές, για σύνδεση χρησιμοποιείται μια σανίδα ψωμιού για τοποθέτηση χωρίς συγκόλληση. Μπορείτε να προσθέσετε LED, αισθητήρες, κουμπιά, κινητήρες, μονάδες επικοινωνίας, ρελέ και να δημιουργήσετε εκατοντάδες ενδιαφέροντα σχέδια έξυπνων συσκευών. Η πλακέτα Arduino είναι μια έξυπνη υποδοχή που θα ενεργοποιεί και θα απενεργοποιεί όλα τα συνδεδεμένα ανάλογα με τον τρόπο προγραμματισμού.




Όλες οι εργασίες για το έργο χωρίζονται στα ακόλουθα στάδια:

  1. Έχουμε μια ιδέα και τη σχεδιάζουμε.
  2. Συναρμολογούμε ένα ηλεκτρικό κύκλωμα. Εδώ χρειαζόμαστε ένα breadboard, το οποίο απλοποιεί την εγκατάσταση στοιχείων. Φυσικά, θα χρειαστείτε δεξιότητες στην εργασία με ηλεκτρονικές συσκευές και ικανότητα.
  3. Συνδέουμε τον υπολογιστή μέσω USB.
  4. και γράψτε το στον πίνακα κυριολεκτικά πατώντας ένα κουμπί στην οθόνη στο .
  5. Αποσυνδεθείτε από τον υπολογιστή. Τώρα η συσκευή θα λειτουργεί αυτόνομα - όταν ενεργοποιηθεί η τροφοδοσία, θα ελέγχεται από το πρόγραμμα που γράψαμε σε αυτήν.

Το πρόγραμμα και το περιβάλλον προγραμματισμού μοιάζουν με αυτό:

Στην οθόνη εμφανίζεται ένα πρόγραμμα (στην αργκό Arduino το κείμενο του προγράμματος ονομάζεται "σκίτσο"), το οποίο θα αναβοσβήνει με μια λυχνία συνδεδεμένη στην είσοδο 13 στην πλακέτα Arduino UNO. Όπως μπορείτε να δείτε, το πρόγραμμα είναι αρκετά απλό και αποτελείται από οδηγίες που είναι κατανοητές για όσους γνωρίζουν αγγλικά. Η γλώσσα προγραμματισμού Arduino χρησιμοποιεί τη δική της διάλεκτο της γλώσσας C++, αλλά υποστηρίζονται όλες οι λειτουργίες της C++.

Υπάρχει μια άλλη επιλογή για τη σύνταξη κώδικα - ένα οπτικό πρόγραμμα επεξεργασίας. Δεν χρειάζεται να γράψετε τίποτα εδώ - μπορείτε απλά να μετακινήσετε τα μπλοκ και να συνθέσετε τον επιθυμητό αλγόριθμο από αυτά. Το πρόγραμμα θα φορτωθεί στη συνδεδεμένη πλακέτα με ένα κλικ του κουμπιού του ποντικιού!

Συνολικά, όλα φαίνονται αρκετά ξεκάθαρα, έτσι δεν είναι; Μένει να μάθουμε τις λεπτομέρειες.

Γρήγορη εκκίνηση με το Arduino

Αρχικά, ας καταλάβουμε τι και τι πρόκειται να κάνουμε. Τι είναι το Arduino και πώς να το χρησιμοποιήσετε; Εάν είστε ήδη εξοικειωμένοι με το θέμα, μη διστάσετε να προχωρήσετε. Αν όχι, ας κάνουμε μια μικρή βουτιά μαζί.

Το Arduino είναι...

Το Arduino δεν είναι επωνυμία ή όνομα προμηθευτή κιτ. Αυτό είναι ένα γενικό όνομα για μια ολόκληρη οικογένεια διαφορετικών τεχνολογιών και μια ανοιχτή πλατφόρμα, η οποία περιλαμβάνει τόσο συσκευές υλικού (πίνακες ελεγκτή και συμβατό εξοπλισμό) όσο και λογισμικό σχεδιασμένο για τον έλεγχο του υλικού. Στον πυρήνα του, το Arduino είναι μια υποδομή και ένα περιβάλλον στο οποίο μπορούμε να συναρμολογήσουμε ηλεκτρονικά και μηχανικά εξαρτήματα συμβατά μεταξύ τους σε μια ενιαία συσκευή και στη συνέχεια μέσω ενός κανονικού υπολογιστή, σε δύο λεπτά, να προγραμματίσουμε τη συμπεριφορά αυτών των ίδιων κομματιών υλικού με τον τρόπο χρειαζόμαστε.

Το Arduino είναι μια γέφυρα από τον κόσμο των εικονικών υπολογιστών στον κόσμο των πραγματικών πραγμάτων και συσκευών. Έχοντας γράψει ένα πρόγραμμα σε έναν κανονικό υπολογιστή, το χρησιμοποιούμε για να ελέγξουμε όχι εικονικά αντικείμενα, αλλά πραγματικούς αισθητήρες, κινητήρες και οθόνες. Αλλάζουμε τον κόσμο γύρω μας - απλά προγραμματίζοντας σε υπολογιστή, χρησιμοποιώντας δωρεάν λογισμικό και πολλά έτοιμα παραδείγματα βιβλιοθηκών.

Η τεχνολογία έλαβε το όνομά της, όπως συμβαίνει συχνά, εντελώς τυχαία. Πηγή έμπνευσης ήταν ένα μπαρ όπου οι μελλοντικοί δημιουργοί του Arduino άρεσε να πίνουν ένα φλιτζάνι τσάι. Η εγκατάσταση ονομαζόταν ακριβώς έτσι – Arduino, από το όνομα της κύριας ιστορικής φιγούρας της πόλης Ivrea, του βασιλιά Arduino. Ο βασιλιάς δεν άφησε κανένα φωτεινό σημάδι στην ιστορία και θεωρήθηκε αποτυχημένος, αλλά χάρη στην ομάδα προγραμματιστών της νέας πλατφόρμας, κέρδισε νέα δημοτικότητα και είναι πλέον γνωστός σε εκατομμύρια ανθρώπους σε όλο τον κόσμο.

Γιατί Arduino;

Η ομορφιά του Arduino έγκειται στα ακόλουθα απλά πλεονεκτήματα:

  1. Απλότητα. Ναι, ναι - ακριβώς η απλότητα (αν και τα Lego και άλλα παιχνίδια είναι αναμφίβολα πιο οικεία, αλλά δεν συγκρίνουμε μαζί τους). Για τους νέους προγραμματιστές ηλεκτρονικών, το Arduino «κρύβει» έναν τεράστιο αριθμό διαφορετικών τεχνικών ζητημάτων. Πολλά αρκετά πολύπλοκα έργα μπορούν να δημιουργηθούν πολύ γρήγορα, χωρίς μεγάλη εμβάπτιση στις λεπτομέρειες. Και αυτό είναι πολύ σημαντικό για ένα παιδί - να μην χάσει το ενδιαφέρον του μέχρι το πρώτο αποτέλεσμα που λαμβάνεται με τα χέρια του.
  2. Δημοτικότητα. Το Arduino είναι εξαιρετικά δημοφιλές, μπορείτε εύκολα να βρείτε απαντήσεις σε οποιεσδήποτε ερωτήσεις σε πολλά φόρουμ ή ιστότοπους. Η κοινότητα του Arduino είναι τεράστια και φιλική - υπάρχουν σχετικά λίγοι σκληραγωγημένοι, σνομπ μηχανικοί εκεί και γεμάτοι χομπίστες και αρχάριους που χαίρονται να μοιραστούν τη χαρά τους από όσα έχουν βρει και έμαθαν. Αυτό, φυσικά, αφήνει ένα αποτύπωμα στην ποιότητα των συμβουλών, αλλά κατά κανόνα, ακόμη και τα πιο περίπλοκα ζητήματα μπορούν να επιλυθούν γρήγορα με τη βοήθεια φόρουμ και ιστοτόπων.
  3. Διαθεσιμότητα. Τόσο η ίδια η τεχνολογία όσο και σχεδόν όλο το λογισμικό κυκλοφορούν με ανοιχτές άδειες και μπορείτε να χρησιμοποιήσετε ελεύθερα τις εξελίξεις και τα προγράμματα άλλων ανθρώπων και σε πολλές περιπτώσεις ακόμη και για εμπορική χρήση. Αυτό εξοικονομεί πολύ χρόνο και σας επιτρέπει να κάνετε μεγάλα βήματα, βασιζόμενοι στην εμπειρία προηγούμενων ερευνητών.
  4. Φτήνια. Μπορείτε να αγοράσετε ένα κιτ για τα πρώτα σας μαθήματα ηλεκτρονικών και προγραμματισμού για λιγότερο από 500 ρούβλια. Τα πλήρη μαθήματα ρομποτικής είναι δυνατά με. Καμία άλλη τεχνολογία δεν θα σας επιτρέψει να εισέλθετε στον κόσμο της πραγματικής εκπαιδευτικής ρομποτικής τόσο γρήγορα και τόσο αποτελεσματικά.

Από πού να ξεκινήσω;

Εάν θέλετε να κάνετε ρομποτική χρησιμοποιώντας το Arduino, τότε θα χρειαστείτε αυτό το κιτ κυρίων:

  1. με καλώδιο USB για σύνδεση σε υπολογιστή.
  2. και καλώδια.
  3. Ένα σετ βασικών ηλεκτρονικών εξαρτημάτων και ένας προσαρμογέας για μια μπαταρία κορώνας.
  4. Περιβάλλον εγκατεστημένο στον υπολογιστή

Όλος ο εξοπλισμός πωλείται σε κιτ που ονομάζονται κιτ εκκίνησης -

Στο μέλλον, εάν οι τάξεις σας αιχμαλωτίσουν πραγματικά και υπάρχει η επιθυμία να συνεχίσετε τα πειράματα, τότε ο κατάλογος του εξοπλισμού θα επεκταθεί:

  1. Οθόνες και ενδείξεις.
  2. Κινητήρες και , ρελέ και .
  3. Ενότητες επικοινωνίας.
  4. Διάφορες πρόσθετες μονάδες και ασπίδες

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

Πώς να αγοράσετε Arduino;

Πριν μάθετε κάτι χρήσιμο, πρέπει πρώτα να αγοράσετε κάτι χρήσιμο. Για να πειραματιστείτε με τα ηλεκτρονικά, θα χρειαστείτε τα ίδια ηλεκτρονικά με τη μορφή ενός σετ κατασκευής ή ξεχωριστών σανίδων. Συνιστάται να αγοράσετε ένα όχι πολύ ακριβό οικιακό κιτ με τα κύρια εξαρτήματα και στη συνέχεια να παραγγείλετε αισθητήρες, κινητήρες, ελεγκτές και άλλους θησαυρούς από την Aliexpress. μπορείτε να βρείτε στο Διαδίκτυο (όχι μόνο στον ιστότοπό μας). Εάν ζείτε σε μια μεγάλη πόλη, τότε για να αγοράσετε όλα όσα χρειάζεστε θα διαρκέσει το πολύ δύο ημέρες. Η εύρεση του καταστήματος που χρειάζεστε είναι εύκολη στο Διαδίκτυο.

Λίγα λόγια για. Σήμερα, οποιοσδήποτε κατασκευαστής μπορεί να τα κατασκευάσει υπό απολύτως νόμιμες προϋποθέσεις: τόσο μεγάλοι, όπως η Intel, όσο και μικροί προμηθευτές noname από την Κίνα. Η αξιοπιστία και η ευκολία των "κινεζικών" και "επίσημων" πλακών Arduino είναι στις περισσότερες περιπτώσεις η ίδια. Επομένως, δεν χρειάζεται να πληρώσετε υπερβολικά - για τα εκπαιδευτικά σας έργα μπορείτε να αγοράσετε με ασφάλεια ανάλογα που είναι εύκολο να βρείτε στο Διαδίκτυο.

Πώς να διακρίνετε την "πρωτότυπη" από τη "συμβατή πλακέτα":

  1. Οι "κινέζικες" πλακέτες δεν έχουν το δικαίωμα να βάλουν το λογότυπο Arduino.
  2. Οι "κινέζικες" σανίδες είναι πολύ φθηνότερες.
  3. Οι «Κινέζοι» χρησιμοποιούν συχνά ένα άλλο τσιπ για να διατηρήσουν τη σύνδεση με έναν υπολογιστή που απαιτεί ειδικά προγράμματα οδήγησης. Τα προγράμματα οδήγησης εγκαθίστανται σε δευτερόλεπτα και σχεδόν ποτέ δεν δημιουργούν προβλήματα.

Τονίζουμε για άλλη μια φορά ότι η χρήση μη γνήσιων πλακών είναι απολύτως νόμιμη. Το Arduino είναι μια ανοιχτή αρχιτεκτονική και οι προγραμματιστές δίνουν σε όλους την ευκαιρία να δημιουργήσουν τη δική τους έκδοση του πίνακα.

Δεν μπορείτε να αγοράσετε;

Εάν ζείτε στην Ανταρκτική ή πραγματικά δεν έχετε αρκετά χρήματα ακόμη και για τα πιο απλά κιτ, τότε μην απελπίζεστε - μπορείτε να αρχίσετε να μαθαίνετε Arduino σε εικονικούς προσομοιωτές. Η πιο ισχυρή, απλή και δημοφιλής επιλογή σήμερα είναι η ηλεκτρονική υπηρεσία Tinkercad από τη διάσημη εταιρεία Autodesk. Θα μπορείτε να δημιουργήσετε ηλεκτρονικά κυκλώματα συνδέοντας πολλά διαφορετικά εξαρτήματα και στη συνέχεια να «ενεργοποιήσετε» την τροφοδοσία και να μετρήσετε όλες τις ηλεκτρικές παραμέτρους. Η βιβλιοθήκη συσκευών περιλαμβάνει μια πλακέτα Arduino και ακόμη και έναν ενσωματωμένο επεξεργαστή προγραμματισμού (συμπεριλαμβανομένου ενός οπτικού!). Μπορείτε να βρείτε ένα ξεχωριστό άρθρο στον ιστότοπό μας

Το πρώτο πράγμα που πρέπει να κάνετε για να κυριαρχήσετε στο Arduino είναι να αγοράσετε μια πλακέτα εντοπισμού σφαλμάτων (θα ήταν καλή ιδέα να αγοράσετε αμέσως μια πλακέτα κυκλώματος κ.λπ.). Έχω ήδη περιγράψει ποιοι τύποι πλακών Arduino κυκλοφορούν στην αγορά. Αν δεν έχετε διαβάσει ακόμα το άρθρο, σας συνιστώ να το διαβάσετε. Για να μάθουμε τα βασικά, επιλέγουμε μια τυπική πλακέτα Arduino Uno (το πρωτότυπο ή ένα καλό κινέζικο αντίγραφο - εξαρτάται από εσάς). Όταν συνδέετε την αρχική πλακέτα για πρώτη φορά, δεν πρέπει να υπάρχουν προβλήματα, αλλά με την "κινέζικη" θα χρειαστεί να σκάψετε λίγο βαθύτερα (μην ανησυχείτε - θα σας δείξω και θα σας πω τα πάντα).

Συνδέουμε το Arduino στον υπολογιστή με καλώδιο USB. Το LED στην πλακέτα πρέπει να ανάψει ΕΠΙ". Μια νέα συσκευή θα εμφανιστεί στη Διαχείριση Συσκευών " Άγνωστη συσκευή". Πρέπει να εγκαταστήσετε το πρόγραμμα οδήγησης. Εδώ θα προσθέσω ένα μικρό ασάφεια(η γάτα αποσπάστηκε - δεν θυμάμαι ποιος οδηγός αποφάσισε " άγνωστο πρόβλημα συσκευής».

Πρώτη λήψη και αποσυσκευασία του περιβάλλοντος λογισμικού Arduino ( arduino-1.6.6-παράθυρα). Μετά κατέβασα αυτό. Είναι αυτοεξαγωγικό. Ξεκίνησε το αρχείο CH341SER.EXE. Επιλεγμένο εγκατάσταση (ΕΓΚΑΤΑΣΤΑΣΗ). Μετά την εγκατάσταση, εμφανίστηκε ένα μήνυμα, κάντε κλικ στο " ΕΝΤΑΞΕΙ(δεν πρόλαβα να το διαβάσω).

Στη συνέχεια, πήγα στις ιδιότητες της ακόμα "άγνωστης συσκευής" και επέλεξα το κουμπί "Ενημέρωση προγράμματος οδήγησης". Επέλεξα την επιλογή "Εγκατάσταση από καθορισμένη τοποθεσία" - υποδεικνύεται ο φάκελος με το αποσυμπιεσμένο περιβάλλον λογισμικού Arduino. Και ιδού, όλα λειτούργησαν με επιτυχία...

Εκκινούμε το πρόγραμμα Arduino (στην περίπτωσή μου 1.6.6) και επιτρέπουμε την πρόσβαση.

Όλα τα έργα (προγράμματα) για το Arduino αποτελούνται από δύο μέρη: ρύθμιση κενούΚαι κενός βρόχος. ρύθμιση κενούεκτελείται μόνο μία φορά και κενός βρόχοςγίνεται ξανά και ξανά.

Πριν συνεχίσουμε, υπάρχουν δύο υποχρεωτικές λειτουργίες που πρέπει να ολοκληρωθούν:

— υποδείξτε στο περιβάλλον λογισμικού Arduino ποια πλακέτα χρησιμοποιείτε. Εργαλείο->πίνακας->Arduino Uno. Εάν το σημάδι βρίσκεται ήδη στον πίνακα που χρειάζεστε, αυτό είναι καλό, αν όχι, βάλτε ένα σημάδι.

— καθορίστε στο περιβάλλον λογισμικού ποια σειριακή θύρα χρησιμοποιείτε για την επικοινωνία με την πλακέτα. Εργαλείο->θύρα->COM3. Εάν το σημάδι είναι ήδη στη θύρα, αυτό είναι καλό, αν όχι, βάλτε ένα σημάδι. Εάν έχετε περισσότερες από μία θύρες που αναφέρονται στην ενότητα θυρών, πώς μπορείτε να μάθετε ποια χρησιμοποιείται για τη σύνδεση στην πλακέτα; Παίρνουμε την πλακέτα και αποσυνδέουμε το καλώδιο από αυτήν. Πηγαίνουμε ξανά στα λιμάνια και βλέπουμε ποιο έχει εξαφανιστεί. Στην περίπτωσή μου, η καρτέλα "ports" έγινε καθόλου ανενεργή.

Συνδέστε ξανά το καλώδιο USB.

Το πρώτο πρόγραμμα δεν απαιτεί πρόσθετες ενότητες. Θα ανάψουμε το LED, το οποίο είναι ήδη τοποθετημένο στην πλακέτα (στο pin 13 του μικροελεγκτή).

Αρχικά, ας διαμορφώσουμε τον ακροδέκτη 13 (είσοδος ή έξοδος).

Για να το κάνετε αυτό, εισαγάγετε στο μπλοκ " ρύθμιση κενού» ομάδα pinMode , υποδεικνύουμε τις παραμέτρους σε αγκύλες (13, OUTPUT) (Ποια καρφίτσα εμπλέκεται, Τρόπος λειτουργίας). Το περιβάλλον λογισμικού επισημαίνει λέξεις/εντολές με το κατάλληλο χρώμα γραμματοσειράς.

Μεταβείτε στο μπλοκ " κενός βρόχος"και εισάγετε την εντολή digitalWrite με παραμέτρους (13, ΥΨΗΛΟ) .


Το πρώτο πρόγραμμα είναι έτοιμο, τώρα το μόνο που μένει είναι να το φορτώσετε στον μικροελεγκτή. Κάντε κλικ στο κουμπί UPLOAD.

Το LED άναψε. Αλλά μην είστε τόσο δύσπιστοι για την απλότητα του πρώτου προγράμματος. Μόλις κατακτήσετε την πρώτη εντολή ελέγχου. Αντί για LED, μπορείτε να συνδέσετε οποιοδήποτε φορτίο (είτε είναι φωτισμός δωματίου είτε σερβομηχανισμός που διακόπτει την παροχή νερού), αλλά θα μιλήσουμε για όλα αυτά αργότερα...

Ανάψαμε το LED, έλαμψε λίγο, ήρθε η ώρα να το σβήσουμε. Για να γίνει αυτό, ας τροποποιήσουμε το πρόγραμμα που γράψαμε. Αντί για " ΨΗΛΑ "ας γράψουμε" ΧΑΜΗΛΟΣ ».


Κάντε κλικ στο κουμπί UPLOAD. Το LED έσβησε.

Έχουμε ήδη εξοικειωθεί με την έννοια του "", ήρθε η ώρα να το χρησιμοποιήσουμε. Περαιτέρω προγράμματα θα γίνονται όλο και πιο ογκώδη και πολύπλοκα, και η εργασία για την αλλαγή τους θα παίρνει όλο και περισσότερο χρόνο αν συνεχίσουμε να γράφουμε κώδικα όπως αυτό.

Κοιτάμε το πρόγραμμα (ανάψτε ξανά το LED). Ας ορίσουμε τον αριθμό pin του μικροελεγκτή όχι ως αριθμό 13 , αλλά μια μεταβλητή στην οποία θα εκχωρηθεί η τιμή της αντίστοιχης εξόδου (στην περίπτωσή μας, 13). Στο μέλλον, θα είναι πολύ βολικό να αλλάξετε τις τιμές των μεταβλητών στην αρχή του προγράμματος, αντί να ψάξετε στον κώδικα για να αναζητήσετε εκείνα τα μέρη όπου είναι απαραίτητο να αλλάξετε τιμές.

Δημιουργήστε μια καθολική μεταβλητή int LED_pin = 13; (τύπος μεταβλητής, όνομα μεταβλητής, τιμή που της έχει εκχωρηθεί).


Κάντε κλικ στο κουμπί UPLOAD. Το LED ανάβει. Όλα λειτουργούν υπέροχα.

Σε αυτό το μάθημα, εκτός από την ενεργοποίηση/απενεργοποίηση του LED, θα μάθουμε και πώς να το αναβοσβήνει.

Για να το κάνετε αυτό, εισάγετε τη δεύτερη εντολή " digitalWrite» με παραμέτρους (LED_pin, LOW).


Κάντε κλικ στο κουμπί UPLOAD. Και τι βλέπουμε; Το LED ανάβει «στο μέγιστο βαθμό». Ο λόγος έγκειται στο γεγονός ότι ο χρόνος μεταγωγής δύο καταστάσεων ( ΨΗΛΑ Και ΧΑΜΗΛΟΣ ) είναι αμελητέα και το ανθρώπινο μάτι δεν μπορεί να ανιχνεύσει αυτούς τους διακόπτες. Είναι απαραίτητο να αυξηθεί ο χρόνος παραμονής του LED σε μία από τις καταστάσεις. Για να γίνει αυτό γράφουμε την εντολή καθυστέρηση με παράμετρο (1000 ) . Καθυστέρηση σε χιλιοστά του δευτερολέπτου: 1000 χιλιοστά του δευτερολέπτου – 1 δευτερόλεπτο. Ο αλγόριθμος προγράμματος είναι ο εξής: ανάψτε το LED - περιμένετε 1 δευτερόλεπτο, απενεργοποιήστε το LED - περιμένετε 1 δευτερόλεπτο κ.λπ.


Κάντε κλικ στο κουμπί UPLOAD. Το LED άρχισε να τρεμοπαίζει. Όλα λειτουργούν.

Ας ολοκληρώσουμε το πρόγραμμα δημιουργώντας μια μεταβλητή στην οποία θα εκχωρηθεί μια τιμή υπεύθυνη για τη διάρκεια της καθυστέρησης.


Κάντε κλικ στο κουμπί UPLOAD. Το LED αναβοσβήνει όπως πριν.

Ας ολοκληρώσουμε το πρόγραμμα που γράψαμε. Οι εργασίες είναι οι εξής:

  • Το LED ανάβει για 0,2 δευτερόλεπτα και σβήνει για 0,8 δευτερόλεπτα.
  • Το LED ανάβει για 0,7 δευτερόλεπτα και σβήνει για 0,3 δευτερόλεπτα.

Το πρόγραμμα δημιούργησε 2 μεταβλητές που ευθύνονται για τις χρονικές καθυστερήσεις. Το ένα καθορίζει το χρόνο λειτουργίας του αναμμένου LED και το δεύτερο - το χρόνο λειτουργίας του LED σβηστό.

Σας ευχαριστώ για την προσοχή σας. Τα λέμε σύντομα!

Η γλώσσα προγραμματισμού Arduino για αρχάριους παρουσιάζεται αναλυτικά στον παρακάτω πίνακα. Ο μικροελεγκτής Arduino είναι προγραμματισμένος σε ειδική γλώσσα προγραμματισμού βασισμένη σε C/C++. Η γλώσσα προγραμματισμού Arduino είναι μια παραλλαγή της C++, με άλλα λόγια, δεν υπάρχει ξεχωριστή γλώσσα προγραμματισμού για το Arduino. Μπορείτε να κατεβάσετε το βιβλίο PDF στο τέλος της σελίδας.

Στο Arduino IDE, όλα τα γραπτά σκίτσα μεταγλωττίζονται σε ένα πρόγραμμα σε C/C++ με ελάχιστες αλλαγές. Ο μεταγλωττιστής Arduino IDE απλοποιεί σημαντικά τη σύνταξη προγραμμάτων για αυτήν την πλατφόρμα και η δημιουργία συσκευών στο Arduino γίνεται πολύ πιο προσιτή σε άτομα που δεν έχουν εκτενή γνώση της γλώσσας C/C++. Παρακάτω θα δώσουμε μια σύντομη αναφορά που περιγράφει τις κύριες λειτουργίες της γλώσσας Arduino με παραδείγματα.

Αναλυτική αναφορά στη γλώσσα Arduino

Η γλώσσα μπορεί να χωριστεί σε τέσσερις ενότητες: δηλώσεις, δεδομένα, συναρτήσεις και βιβλιοθήκες.

Γλώσσα Arduino Παράδειγμα Περιγραφή

χειριστές

εγκατάσταση () void setup()
{
pinMode(3, INPUT);
}
Η συνάρτηση χρησιμοποιείται για την προετοιμασία μεταβλητών, τον προσδιορισμό των τρόπων λειτουργίας των ακίδων στην πλακέτα κ.λπ. Η λειτουργία εκτελείται μόνο μία φορά, μετά από κάθε παροχή ρεύματος στον μικροελεγκτή.
βρόχος() void loop()
{
digitalWrite(3, HIGH);
καθυστέρηση (1000);
digitalWrite(3, LOW);
καθυστέρηση (1000);
}
Η συνάρτηση βρόχου περιστρέφεται γύρω, επιτρέποντας στο πρόγραμμα να εκτελεί και να αντιδρά σε υπολογισμούς. Οι συναρτήσεις setup() και loop() πρέπει να υπάρχουν σε κάθε σκίτσο, ακόμα κι αν αυτές οι δηλώσεις δεν χρησιμοποιούνται στο πρόγραμμα.

Δηλώσεις ελέγχου

αν
αν(x>
αν (χ< 100) digitalWrite (3, LOW );
Η εντολή if χρησιμοποιείται σε συνδυασμό με τελεστές σύγκρισης (==, !=,<, >) και ελέγχει εάν η συνθήκη είναι αληθής. Για παράδειγμα, εάν η τιμή της μεταβλητής x είναι μεγαλύτερη από 100, τότε η λυχνία LED στην έξοδο 13 ανάβει, εάν είναι μικρότερη, η λυχνία LED σβήνει.
αν..αλλιώς
εάν (x > 100) digitalWrite (3, HIGH );
else digitalWrite(3, LOW);
Ο χειριστής else σάς επιτρέπει να κάνετε έναν έλεγχο διαφορετικό από αυτόν που καθορίζεται στο if, προκειμένου να πραγματοποιήσετε αρκετούς αμοιβαία αποκλειστικούς ελέγχους. Εάν κανένας από τους ελέγχους δεν λάβει TRUE αποτέλεσμα, τότε εκτελείται το μπλοκ εντολών στο else.
διακόπτης...θήκης
διακόπτης (x)
{


περίπτωση 3: διάλειμμα ;

}
Όπως ένα if, μια δήλωση διακόπτη ελέγχει ένα πρόγραμμα επιτρέποντάς σας να καθορίσετε ενέργειες που θα εκτελούνται υπό διαφορετικές συνθήκες. Το Break είναι μια εντολή για έξοδο από μια δήλωση που εκτελείται εάν δεν έχει επιλεγεί εναλλακτική.
για void setup()
{
pinMode(3, OUTPUT);
}
void loop()
{
για (int i=0; i<= 255; i++){
analogWrite(3, i);
καθυστέρηση(10);
}
}
Η κατασκευή for χρησιμοποιείται για την επανάληψη εντολών που περικλείονται σε σγουρά άγκιστρα. Για παράδειγμα, ομαλή μείωση της φωτεινότητας ενός LED. Η κεφαλίδα του βρόχου for αποτελείται από τρία μέρη: for (αρχικοποίηση, συνθήκη, προσαύξηση) - η προετοιμασία εκτελείται μία φορά, μετά ελέγχεται η συνθήκη, εάν η συνθήκη είναι αληθής, τότε εκτελείται η αύξηση. Ο βρόχος επαναλαμβάνεται έως ότου η συνθήκη γίνει ψευδής.
ενώ void loop()
{
ενώ (χ< 10)
{
x = x + 1;
Serial.println(x);
καθυστέρηση (200);
}
}
Η εντολή while χρησιμοποιείται ως βρόχος που θα εκτελείται εφόσον η συνθήκη στις παρενθέσεις είναι αληθής. Στο παράδειγμα, η πρόταση βρόχου while θα επαναλαμβάνει τον κώδικα σε παρένθεση ατελείωτα μέχρι το x να είναι μικρότερο από 10.
κάνε...ενώ void loop()
{
κάνω
{
x = x + 1;
καθυστέρηση (100);
Serial.println(x);
}
ενώ (χ< 10);
καθυστέρηση (900);
}
Η πρόταση βρόχου do...while λειτουργεί με τον ίδιο τρόπο όπως ο βρόχος while. Ωστόσο, εάν η έκφραση στις παρενθέσεις είναι αληθής, ο βρόχος συνεχίζει αντί να βγαίνει από τον βρόχο. Στο παραπάνω παράδειγμα, εάν το x είναι μεγαλύτερο από 10, η λειτουργία πρόσθεσης θα συνεχιστεί, αλλά με μια παύση 1000 ms.
διακοπή
συνεχίζω
διακόπτης (x)
{
περίπτωση 1: digitalWrite (3, HIGH );
περίπτωση 2: digitalWrite (3, LOW );
περίπτωση 3: διάλειμμα ;
περίπτωση 4: συνέχεια ;
προεπιλογή : digitalWrite (4, HIGH );
}
Το Break χρησιμοποιείται για την εξαναγκαστική έξοδο από τους βρόχους διακόπτη, do, for και while χωρίς να περιμένετε να ολοκληρωθεί ο βρόχος.
Η δήλωση συνέχειας παρακάμπτει τις υπόλοιπες δηλώσεις στο τρέχον βήμα βρόχου.

Σύνταξη

;
(άνω τελεία)

digitalWrite(3, HIGH);
Το ερωτηματικό χρησιμοποιείται για να επισημάνει το τέλος μιας πρότασης. Το να ξεχάσετε ένα ερωτηματικό στο τέλος μιας γραμμής οδηγεί σε σφάλμα μεταγλώττισης.
{}
(σιδεράκια)
void setup()
{
pinMode(3, INPUT);
}
Η αρχική παρένθεση «(» πρέπει να ακολουθείται από την παρένθεση κλεισίματος «)». Οι μη αντιστοιχισμένες παρενθέσεις μπορεί να οδηγήσουν σε κρυφά και ακατανόητα σφάλματα κατά τη σύνταξη ενός σκίτσου.
//
(σχόλιο)
x = 5; // σχόλιο

Εισαγωγή

Το Freeduino/Arduino είναι προγραμματισμένο σε μια ειδική γλώσσα προγραμματισμού - βασίζεται σε C/C++ και σας επιτρέπει να χρησιμοποιήσετε οποιαδήποτε από τις λειτουργίες του. Αυστηρά μιλώντας, δεν υπάρχει ξεχωριστή γλώσσα Arduino, όπως δεν υπάρχει μεταγλωττιστής Arduino - τα γραπτά προγράμματα μετατρέπονται (με ελάχιστες αλλαγές) σε πρόγραμμα σε C/C++ και στη συνέχεια μεταγλωττίζονται από τον μεταγλωττιστή AVR-GCC. Έτσι, στην πραγματικότητα, χρησιμοποιείται μια παραλλαγή του C/C++ που είναι εξειδικευμένη για μικροελεγκτές AVR.

Η διαφορά είναι ότι έχετε ένα απλό περιβάλλον ανάπτυξης και ένα σύνολο βασικών βιβλιοθηκών που απλοποιούν την πρόσβαση στα περιφερειακά που βρίσκονται "επί του" του μικροελεγκτή.

Συμφωνώ, είναι πολύ βολικό να ξεκινήσετε να εργάζεστε με μια σειριακή θύρα με ταχύτητα 9600 bit ανά δευτερόλεπτο, πραγματοποιώντας μια κλήση σε μία γραμμή:

Serial.begin(9600);

Και όταν χρησιμοποιείτε "γυμνό" C/C++, θα πρέπει να ασχοληθείτε με την τεκμηρίωση για τον μικροελεγκτή και να καλέσετε κάτι σαν αυτό:

UBRR0H = ((F_CPU / 16 + 9600 / 2) / 9600 - 1) >> 8;
UBRR0L = ((F_CPU / 16 + 9600 / 2) / 9600 - 1);
sbi(UCSR0B, RXEN0);
sbi(UCSR0B, TXEN0);
sbi(UCSR0B, RXCIE0);

Ακολουθεί μια σύντομη επισκόπηση των κύριων λειτουργιών και χαρακτηριστικών του προγραμματισμού Arduino. Εάν δεν είστε εξοικειωμένοι με τη σύνταξη των γλωσσών C/C++, σας συνιστούμε να ανατρέξετε σε οποιαδήποτε βιβλιογραφία σχετικά με αυτό το ζήτημα ή σε πηγές του Διαδικτύου.

Από την άλλη πλευρά, όλα τα παραδείγματα που παρουσιάζονται είναι πολύ απλά και πιθανότατα δεν θα έχετε καμία δυσκολία να κατανοήσετε τα κείμενα πηγής και να γράψετε τα δικά σας προγράμματα ακόμη και χωρίς να διαβάσετε πρόσθετη βιβλιογραφία.

Πιο πλήρης τεκμηρίωση (στα αγγλικά) παρουσιάζεται στον επίσημο ιστότοπο του έργου - http://www.arduino.cc. Υπάρχει επίσης ένα φόρουμ, σύνδεσμοι προς πρόσθετες βιβλιοθήκες και οι περιγραφές τους.

Κατ' αναλογία με την περιγραφή στον επίσημο ιστότοπο του έργου Arduino, η "θύρα" αναφέρεται σε μια επαφή μικροελεγκτή συνδεδεμένη σε έναν σύνδεσμο κάτω από τον αντίστοιχο αριθμό. Επιπλέον, υπάρχει μια θύρα σειριακής επικοινωνίας (θύρα COM).

Δομή προγράμματος

Στο πρόγραμμά σας πρέπει να δηλώσετε δύο κύριες συναρτήσεις: setup() και loop().

Η συνάρτηση setup() καλείται μία φορά, μετά από κάθε ενεργοποίηση ή επαναφορά της πλακέτας του Freeduino. Χρησιμοποιήστε το για να αρχικοποιήσετε μεταβλητές, να ορίσετε τρόπους λειτουργίας ψηφιακών θυρών κ.λπ.

Η συνάρτηση loop() εκτελεί διαδοχικά τις εντολές που περιγράφονται στο σώμα της ξανά και ξανά. Εκείνοι. Αφού ολοκληρωθεί η λειτουργία, θα κληθεί ξανά.

Ας δούμε ένα απλό παράδειγμα:

void setup() // αρχικές ρυθμίσεις
{
startSerial(9600); // ρυθμίζοντας την ταχύτητα της σειριακής θύρας στα 9600 bps
pinMode(3, INPUT); // ρύθμιση της 3ης θύρας για την εισαγωγή δεδομένων
}

// Το πρόγραμμα ελέγχει την 3η θύρα για την ύπαρξη σήματος σε αυτήν και στέλνει μια απάντηση
// ως μήνυμα κειμένου στη σειριακή θύρα του υπολογιστή
void loop() // σώμα προγράμματος
{
if (digitalRead(3) == HIGH) // συνθήκη για ψηφοφορία στην 3η θύρα
serialWrite("H"); // στείλτε ένα μήνυμα με τη μορφή του γράμματος "H" στη θύρα COM
αλλού
serialWrite("L"); // στείλτε ένα μήνυμα με τη μορφή του γράμματος "L" στη θύρα COM
καθυστέρηση (1000); // καθυστέρηση 1 δευτερόλεπτο.
}

pinMode(port, mode);

Περιγραφή:

Ρυθμίζει την καθορισμένη θύρα για είσοδο ή έξοδο σήματος.

Παράμετροι:

port – ο αριθμός της θύρας της οποίας η λειτουργία θέλετε να ορίσετε (μια ακέραια τιμή από 0 έως 13).

λειτουργία - είτε INPUT (είσοδος) είτε OUTPUT (έξοδος).

pinMode(13, OUTPUT); //13η ακίδα θα είναι η έξοδος
pinMode(12, INPUT); //και η 12η είναι η είσοδος

Σημείωμα:

Οι αναλογικές είσοδοι μπορούν να χρησιμοποιηθούν ως ψηφιακές είσοδοι/έξοδοι με πρόσβαση σε αυτές χρησιμοποιώντας τους αριθμούς 14 (αναλογική είσοδος 0) έως 19 (αναλογική είσοδος 5)

digitalWrite(port, value);

Περιγραφή:

Ρυθμίζει το επίπεδο τάσης σε υψηλή (HIGH) ή χαμηλή (LOW) στην καθορισμένη θύρα.

Παράμετροι:

port: αριθμός θύρας

τιμή: ΥΨΗΛΗ ή ΧΑΜΗΛΗ

digitalWrite(13, HIGH); // ορίστε τον ακροδέκτη 13 σε κατάσταση "υψηλή".

value = digitalRead(port);

Περιγραφή:

Διαβάζει την τιμή στην καθορισμένη θύρα

Παράμετροι:

θύρα: αριθμός θύρας δημοσκόπησης

Return value: επιστρέφει την τρέχουσα τιμή στη θύρα (HIGH ή LOW) τύπου int

int val;
val = digitalRead(12); // poll the 12th pin

Σημείωμα:

Εάν δεν υπάρχει τίποτα συνδεδεμένο με τη θύρα που διαβάζεται, τότε η συνάρτηση digitalRead() μπορεί να επιστρέψει τιμές HIGH ή LOW ακατάστατα.

Είσοδος/Έξοδος αναλογικού σήματος

value = analogRead(port);

Περιγραφή:

Διαβάζει μια τιμή από την καθορισμένη αναλογική θύρα. Το Freeduino περιέχει 6 κανάλια, μετατροπέα αναλογικού σε ψηφιακό των 10 bit το καθένα. Αυτό σημαίνει ότι η τάση εισόδου από 0 έως 5V μετατρέπεται σε ακέραια τιμή από 0 έως 1023. Η ανάλυση ανάγνωσης είναι: 5V/1024 τιμές = 0,004883 V/τιμή (4,883 mV). Χρειάζονται περίπου 100 nS (0,0001 C) για την ανάγνωση μιας αναλογικής τιμής εισόδου, επομένως ο μέγιστος ρυθμός ανάγνωσης είναι περίπου 10.000 φορές ανά δευτερόλεπτο.

Παράμετροι:

Return Value: Επιστρέφει έναν αριθμό int στο εύρος 0 έως 1023 που διαβάζεται από την καθορισμένη θύρα.

int val;
val = analogRead(0); // διαβάστε την τιμή στην 0η αναλογική είσοδο

Σημείωμα:

Οι αναλογικές θύρες ορίζονται ως είσοδος σήματος από προεπιλογή και, σε αντίθεση με τις ψηφιακές θύρες, δεν χρειάζεται να διαμορφωθούν καλώντας τη λειτουργία pinMode.

analogWrite(port, value);

Περιγραφή:

Εξάγει μια αναλογική τιμή στη θύρα. Αυτή η λειτουργία λειτουργεί σε: 3, 5, 6, 9, 10 και 11 ψηφιακές θύρες Freeduino.

Μπορεί να χρησιμοποιηθεί για την αλλαγή της φωτεινότητας ενός LED, τον έλεγχο ενός κινητήρα κ.λπ. Αφού καλέσετε τη λειτουργία analogWrite, η αντίστοιχη θύρα αρχίζει να λειτουργεί σε λειτουργία διαμόρφωσης πλάτους παλμού τάσης έως ότου υπάρξει άλλη κλήση στη λειτουργία analogWrite (ή λειτουργίες digitalRead / digitalWrite στην ίδια θύρα).

Παράμετροι:

Θύρα: αριθμός της αναλογικής εισόδου που μετράται

Τιμή: ένας ακέραιος αριθμός μεταξύ 0 και 255. Μια τιμή 0 παράγει 0 V στην καθορισμένη θύρα. μια τιμή 255 δημιουργεί +5V στην καθορισμένη θύρα. Για τιμές μεταξύ 0 και 255, η θύρα αρχίζει να εναλλάσσεται γρήγορα μεταξύ των επιπέδων τάσης 0 και +5 V - όσο υψηλότερη είναι η τιμή, τόσο πιο συχνά η θύρα δημιουργεί το επίπεδο HIGH (5 V).

analogWrite(9, 128);

Σημείωμα:

Δεν χρειάζεται να καλέσετε το pinMode για να ρυθμίσετε τη θύρα να εξάγει σήματα πριν καλέσετε το analogWrite.

Η συχνότητα παραγωγής σήματος είναι περίπου 490 Hz.

χρόνος = millis();

Περιγραφή:

Επιστρέφει τον αριθμό των χιλιοστών του δευτερολέπτου από τότε που το Freeduino εκτέλεσε το τρέχον πρόγραμμα. Ο μετρητής θα ξεχειλίσει και θα επαναφερθεί μετά από περίπου 9 ώρες.

Επιστρεφόμενη τιμή: επιστρέφει μια μη υπογεγραμμένη μεγάλη τιμή

ανυπόγραφο πολύ καιρό? // δήλωση χρονικής μεταβλητής τύπου unsigned long
χρόνος = millis(); // μεταφορά του αριθμού των χιλιοστών του δευτερολέπτου

καθυστέρηση (time_ms);

Περιγραφή:

Παύση του προγράμματος για τον καθορισμένο αριθμό χιλιοστών του δευτερολέπτου.

Παράμετροι:

time_ms – χρόνος καθυστέρησης προγράμματος σε χιλιοστά του δευτερολέπτου

καθυστέρηση (1000); //παύση 1 δευτερόλεπτο

καθυστέρησηΜικροδευτερόλεπτα

delayMicroseconds(time_μs);

Περιγραφή:

Διακόπτει το πρόγραμμα για τον καθορισμένο αριθμό μικροδευτερόλεπτων.

Παράμετροι:

time_μs – χρόνος καθυστέρησης προγράμματος σε μικροδευτερόλεπτα

delayMicroseconds(500); //παύση 500 μικροδευτερόλεπτα

pulseIn(port, value);

Περιγραφή:

Διαβάζει έναν παλμό (υψηλό ή χαμηλό) από μια ψηφιακή θύρα και επιστρέφει τη διάρκεια του παλμού σε μικροδευτερόλεπτα.

Για παράδειγμα, εάν η παράμετρος τιμής έχει οριστεί σε HIGH κατά την κλήση της συνάρτησης, τότε η pulseIn() περιμένει να φτάσει ένα σήμα υψηλού στη θύρα. Από τη στιγμή που φτάνει, αρχίζει η αντίστροφη μέτρηση μέχρι να ληφθεί χαμηλό επίπεδο σήματος στη θύρα. Η συνάρτηση επιστρέφει το μήκος παλμού (υψηλό επίπεδο) σε μικροδευτερόλεπτα. Λειτουργεί με παλμούς από 10 μικροδευτερόλεπτα έως 3 λεπτά. Σημειώστε ότι αυτή η λειτουργία δεν θα επιστρέψει αποτέλεσμα έως ότου ανιχνευτεί παλμός.

Παράμετροι:

port: αριθμός θύρας από την οποία διαβάζουμε τον παλμό

τιμή: τύπος παλμού HIGH ή LOW

Τιμή επιστροφής: επιστρέφει τη διάρκεια παλμού σε μικροδευτερόλεπτα (τύπος int)

int διάρκεια? // δήλωση μεταβλητής διάρκειας τύπου int
duration = pulseIn(pin, HIGH); // μετρήστε τη διάρκεια του παλμού

Σειριακή μεταφορά δεδομένων

Το Freeduino διαθέτει ενσωματωμένο ελεγκτή για σειριακή μετάδοση δεδομένων, ο οποίος μπορεί να χρησιμοποιηθεί τόσο για επικοινωνία μεταξύ συσκευών Freeduino/Arduino όσο και για επικοινωνία με υπολογιστή. Σε έναν υπολογιστή, η αντίστοιχη σύνδεση αντιπροσωπεύεται από μια θύρα USB COM.

Η επικοινωνία πραγματοποιείται μέσω ψηφιακών θυρών 0 και 1 και επομένως δεν μπορείτε να τις χρησιμοποιήσετε για ψηφιακές εισόδους/εξόδους εάν χρησιμοποιείτε σειριακές λειτουργίες.

Serial.begin(baud_rate);

Περιγραφή:

Ρυθμίζει τον ρυθμό μεταφοράς πληροφοριών της θύρας COM σε bit ανά δευτερόλεπτο για σειριακή μετάδοση δεδομένων. Για να επικοινωνήσετε με έναν υπολογιστή, χρησιμοποιήστε μία από αυτές τις τυποποιημένες ταχύτητες: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 ή 115200. Μπορείτε επίσης να ορίσετε άλλες ταχύτητες όταν ελέγχετε άλλες ταχύτητες θύρες 0 και 1.

Παράμετροι:

baud_rate: Ρυθμός ροής δεδομένων σε bit ανά δευτερόλεπτο.

Serial.begin(9600); //ρυθμίστε την ταχύτητα στα 9600 bps

Serial.διαθέσιμο

count = Serial.available();

Περιγραφή:

Τα byte που λαμβάνονται μέσω της σειριακής θύρας καταλήγουν στο buffer του μικροελεγκτή, από όπου το πρόγραμμά σας μπορεί να τα διαβάσει. Η συνάρτηση επιστρέφει τον αριθμό των byte που έχουν συσσωρευτεί στο buffer. Η σειριακή προσωρινή μνήμη μπορεί να αποθηκεύσει έως και 128 byte.

Επιστρεφόμενη τιμή:

Επιστρέφει μια τιμή int - τον αριθμό των byte που είναι διαθέσιμα για ανάγνωση στη σειριακή προσωρινή μνήμη ή 0 εάν δεν υπάρχει τίποτα διαθέσιμο.

if (Serial.available() > 0) ( // Εάν υπάρχουν δεδομένα στο buffer
// θα πρέπει να υπάρχει λήψη και επεξεργασία δεδομένων εδώ
}

char = Serial.read();

Περιγραφή:

Διαβάζει το επόμενο byte από το buffer σειριακής θύρας.

Επιστρεφόμενη τιμή:

Το πρώτο διαθέσιμο byte εισερχόμενων δεδομένων από τη σειριακή θύρα ή -1 εάν δεν υπάρχουν εισερχόμενα δεδομένα.

incomingByte = Serial.read(); // byte ανάγνωσης

Περιγραφή:

Διαγράφει το buffer εισόδου σειριακής θύρας. Τα δεδομένα στο buffer χάνονται και περαιτέρω κλήσεις προς Serial.read() ή Serial.available() θα έχουν νόημα για δεδομένα που λαμβάνονται μετά την κλήση Serial.flush().

Serial.flush(); // Εκκαθάριση του buffer - έναρξη λήψης δεδομένων "από την αρχή"

Περιγραφή:

Εξαγωγή δεδομένων στη σειριακή θύρα.

Παράμετροι:

Η συνάρτηση έχει πολλές φόρμες κλήσης ανάλογα με τον τύπο και τη μορφή των δεδομένων εξόδου.

Το Serial.print(b, DEC) εκτυπώνει μια συμβολοσειρά ASCII - τη δεκαδική αναπαράσταση του b.

int b = 79;

Το Serial.print(b, HEX) εκτυπώνει μια συμβολοσειρά ASCII - τη δεκαεξαδική αναπαράσταση του αριθμού b.

int b = 79;

Το Serial.print(b, OCT) εκτυπώνει μια συμβολοσειρά ASCII - την οκταδική αναπαράσταση του αριθμού b.

int b = 79;
Serial.print(b, OCT); //θα εξάγει τη συμβολοσειρά "117" στη θύρα

Το Serial.print(b, BIN) εκτυπώνει μια συμβολοσειρά ASCII - τη δυαδική αναπαράσταση του αριθμού b.

int b = 79;
Serial.print(b, BIN); //θα εξάγει τη συμβολοσειρά "1001111" στη θύρα

Το Serial.print(b, BYTE) εκτυπώνει το χαμηλό byte του b.

int b = 79;
Serial.print(b, BYTE); //θα εμφανίσει τον αριθμό 79 (ένα byte). Στην οθόνη
//από τη σειριακή θύρα παίρνουμε το σύμβολο "O" - του
//κωδικός είναι 79

Το Serial.print(str) αν το str είναι συμβολοσειρά ή πίνακας χαρακτήρων, μεταφέρει το str στο byte byte της θύρας COM.

byte χαρακτήρων = (79, 80, 81); //πίνακας 3 byte με τιμές 79,80,81
Serial.print("Εδώ τα bytes μας:"); //Έξοδος της γραμμής "Εδώ τα bytes μας:"
Serial.print(bytes); //εξάγει 3 χαρακτήρες με κωδικούς 79,80,81 –
//αυτοί είναι οι χαρακτήρες "OPQ"

Το Serial.print(b) εάν το b είναι τύπου byte ή char, εκτυπώνει τον ίδιο τον αριθμό b στη θύρα.

char b = 79;
Serial.print(b); //θα εξάγει τον χαρακτήρα "O" στη θύρα

Το Serial.print(b) εάν το b είναι τύπου ακέραιος, εκτυπώνει τη δεκαδική αναπαράσταση του b στη θύρα.

int b = 79;
Serial.print(b); //θα εξάγει τη συμβολοσειρά "79" στη θύρα

Περιγραφή:

Η συνάρτηση Serial.println είναι παρόμοια με τη συνάρτηση Serial.print και έχει τις ίδιες επιλογές κλήσης. Η μόνη διαφορά είναι ότι δύο πρόσθετοι χαρακτήρες εξάγονται μετά τα δεδομένα - ένας χαρακτήρας επιστροφής μεταφοράς (ASCII 13, ή "\r") και ένας νέος χαρακτήρας γραμμής (ASCII 10, ή "\n").

Το Παράδειγμα 1 και το Παράδειγμα 2 θα εξάγουν το ίδιο πράγμα στη θύρα:

int b = 79;
Serial.print(b, DEC); //θα εξάγει τη συμβολοσειρά "79" στη θύρα
Serial.print("\r\n"); //θα εμφανίσει τους χαρακτήρες "\r\n" - τροφοδοσία γραμμής
Serial.print(b, HEX); //θα εξάγει τη συμβολοσειρά "4F" στη θύρα
Serial.print("\r\n");//θα εκτυπώσει τους χαρακτήρες "\r\n" – τροφοδοσία γραμμής

int b = 79;
Serial.println(b, DEC); //θα εξάγει τη συμβολοσειρά "79\r\n" στη θύρα
Serial.println(b, HEX); //θα εξάγει τη συμβολοσειρά "4F\r\n" στη θύρα

Στην οθόνη σειριακής θύρας έχουμε.

θα χρειαστείτε

  • - Πλακέτα Arduino UNO,
  • - Καλώδιο USB (USB A - USB B),
  • - προσωπικός υπολογιστής,
  • - LED,
  • - αντίσταση 220 Ohm,
  • - ένα ζευγάρι σύρματα 5-10 cm,
  • - εάν υπάρχει - breadboard.

Οδηγίες

Κατεβάστε το περιβάλλον ανάπτυξης Arduino για το λειτουργικό σας σύστημα (υποστηρίζονται Windows, Mac OS X, Linux) στη σελίδα http://arduino.cc/en/Main/Software, μπορείτε να το εγκαταστήσετε, μπορείτε. Το ληφθέν αρχείο περιέχει επίσης προγράμματα οδήγησης για πλακέτες Arduino.

Εγκαταστήστε το πρόγραμμα οδήγησης. Εξετάστε την επιλογή για λειτουργικό σύστημα Windows. Για να το κάνετε αυτό, περιμένετε μέχρι το λειτουργικό σύστημα να σας ζητήσει να εγκαταστήσετε το πρόγραμμα οδήγησης. Πτώση. Πατήστε Win + Παύση, εκκινήστε τη Διαχείριση Συσκευών. Βρείτε την ενότητα "Θύρες (COM & LPT)". Εκεί θα δείτε μια θύρα που ονομάζεται "Arduino UNO (COMxx)". Κάντε δεξί κλικ σε αυτό και επιλέξτε "Ενημέρωση προγράμματος οδήγησης". Στη συνέχεια, επιλέξτε τη θέση του προγράμματος οδήγησης που μόλις κατεβάσατε.

Το περιβάλλον ανάπτυξης περιέχει ήδη πολλά παραδείγματα για τη μελέτη της λειτουργίας του πίνακα. Ανοίξτε το παράδειγμα "Blink": File > Examples > 01.Basics > Blink.

Κατευθύνετε το περιβάλλον ανάπτυξής σας στον πίνακα σας. Για να το κάνετε αυτό, στο μενού Εργαλεία > Πίνακας, επιλέξτε "Arduino UNO".

Επιλέξτε τη θύρα στην οποία έχει εκχωρηθεί η πλακέτα Arduino. Για να μάθετε σε ποια θύρα είναι συνδεδεμένη η πλακέτα, εκκινήστε το Device Manager και αναζητήστε την ενότητα Ports (COM & LPT). Η θύρα θα αναγράφεται σε παρένθεση μετά το όνομα του πίνακα. Εάν η πλακέτα δεν είναι στη λίστα, δοκιμάστε την από τον υπολογιστή και περιμένετε μερικά δευτερόλεπτα, δοκιμάστε την ξανά.

Αποσυνδέστε την πλακέτα από τον υπολογιστή. Συναρμολογήστε το κύκλωμα όπως φαίνεται στο σχήμα. Λάβετε υπόψη ότι το κοντό σκέλος της λυχνίας LED πρέπει να συνδεθεί στον ακροδέκτη GND, το μακρύ σκέλος μέσω μιας αντίστασης στον ψηφιακό ακροδέκτη 13 της πλακέτας Arduino. Είναι πιο βολικό να χρησιμοποιήσετε ένα breadboard, αλλά εάν δεν είναι διαθέσιμο, μπορείτε να συνδέσετε τα καλώδια στρίβοντας.
Σημαντική σημείωση! Η ψηφιακή ακίδα 13 έχει ήδη τη δική της αντίσταση στην πλακέτα. Επομένως, όταν συνδέετε ένα LED στην πλακέτα, δεν είναι απαραίτητο να χρησιμοποιήσετε εξωτερική αντίσταση. Όταν συνδέετε ένα LED σε οποιαδήποτε άλλη ακίδα Arduino, η χρήση είναι υποχρεωτική!

Τώρα μπορείτε να φορτώσετε το πρόγραμμα στη μνήμη της πλακέτας. Συνδέστε την πλακέτα στον υπολογιστή, περιμένετε μερικά δευτερόλεπτα μέχρι να αρχικοποιηθεί η πλακέτα. Κάντε κλικ στο κουμπί "Μεταφόρτωση" και το δικό σας θα γραφτεί στη μνήμη της πλακέτας του Arduino. Ο προγραμματισμός με το Arduino είναι πολύ διαισθητικός και καθόλου δύσκολος. Κοιτάξτε την εικόνα - υπάρχουν μικρές εξηγήσεις στα σχόλια του προγράμματος. Αυτό είναι αρκετό για να ξεκινήσετε με το πρώτο σας πείραμα.

Βίντεο σχετικά με το θέμα

Παρακαλώ σημειώστε

Να είστε προσεκτικοί όταν εργάζεστε με την πλακέτα Arduino - αυτό είναι ένα ηλεκτρονικό προϊόν που απαιτεί προσεκτικό χειρισμό. Υπάρχουν εκτεθειμένοι αγωγοί στο κάτω μέρος της σανίδας και εάν τοποθετήσετε την σανίδα σε μια αγώγιμη επιφάνεια, υπάρχει πιθανότητα να καεί η σανίδα. Επίσης, μην αγγίζετε την σανίδα με υγρά ή βρεγμένα χέρια και αποφεύγετε τις υγρές περιοχές όταν εργάζεστε.

Χρήσιμες συμβουλές

Υπάρχουν πολλοί ιστότοποι στο Διαδίκτυο αφιερωμένοι στο Arduino. Διαβάστε, δάσκαλε, μην φοβάστε να πειραματιστείτε και να μάθετε νέα πράγματα!

Πηγές:

  • LED που αναβοσβήνει

Ο προγραμματισμός προσελκύει και ενδιαφέρει πολλούς σύγχρονους ανθρώπους, ιδιαίτερα νέους και αρχάριους επαγγελματίες που μόλις αρχίζουν να επιλέγουν ένα μελλοντικό επάγγελμα. Συχνά αντιμετωπίζουν το ερώτημα - από πού να ξεκινήσουν την εκμάθηση προγραμματισμού; Εάν αποφασίσετε να μάθετε πώς να προγραμματίζετε, δεν πρέπει να κάνετε ένα κοινό λάθος - μην αναλάβετε αμέσως περίπλοκα συστήματα και γλώσσες (για παράδειγμα, C). Το να ξεκινήσετε με μια γλώσσα που είναι πολύ περίπλοκη μπορεί να σας δώσει λανθασμένη εντύπωση για τον προγραμματισμό γενικά. Συνιστάται στους αρχάριους να εργάζονται με τα πιο απλά συστήματα - για παράδειγμα, να μάθουν να γράφουν προγράμματα στο BASIC. Η εκμάθηση αυτής της γλώσσας θα σας επιτρέψει να επιτύχετε καλά αποτελέσματα σε σύντομο χρονικό διάστημα. Η εκμάθηση της PureBasic είναι εύκολη - αυτή η ευέλικτη, δυναμικά μεταγλωττισμένη γλώσσα θα σας βοηθήσει να κατανοήσετε τα βασικά του προγραμματισμού και να βελτιώσετε τις δεξιότητές σας στο μέλλον.

Οδηγίες

Μπορεί να σας πάρει περίπου ένα χρόνο για να μάθετε τα βασικά του προγραμματισμού. Θα μάθετε τα χαρακτηριστικά του διαδικαστικού και αντικειμενοστρεφούς προγραμματισμού, τις αρχές εργασίας με δυαδικά δέντρα, πίνακες, λίστες κ.λπ. Μόνο αφού μάθετε τα βασικά προχωρήστε σε πιο σύνθετες εργασίες.

Επισκεφτείτε ιστοσελίδες προγραμματιστών γλωσσών προγραμματισμού και τεκμηρίωση μελέτης. Φροντίστε να επικοινωνείτε σε φόρουμ προγραμματιστών συνήθως απαντούν στις περισσότερες ερωτήσεις από αρχάριους.

Μαθηματικά

Αν θέλετε να μάθετε να προγραμματίζετε, απλά πρέπει να γνωρίζετε μαθηματικά. Στη διαδικασία της εργασίας, θα συναντήσετε έναν μεγάλο αριθμό προβλημάτων που δεν μπορούν να λυθούν χωρίς γνώση των βασικών στοιχείων αυτής της επιστήμης. Υπάρχει ένας μεγάλος αριθμός μαθηματικών συστημάτων και θεωριών (σειρές Fourier, αριθμοί Fibonacci κ.λπ.) που απλοποιούν πολύ τη διαδικασία προγραμματισμού.

Η μάθηση δεν τελειώνει ποτέ

Η εξέλιξη των γλωσσών προγραμματισμού δεν παραμένει ακίνητη. Προσπαθήστε να διαβάσετε όσο το δυνατόν περισσότερη βιβλιογραφία σχετικά με τον τομέα του προγραμματισμού στον οποίο σκοπεύετε να εργαστείτε. Πάντα να αναζητάτε εναλλακτικούς τρόπους επίλυσης προβλημάτων που προκύπτουν, αυτό θα σας βοηθήσει να βελτιώνετε συνεχώς την αποτελεσματικότητα του κώδικα που δημιουργείτε. Μιλήστε με επαγγελματίες προγραμματιστές, θα είναι πάντα σε θέση να σας συμβουλεύουν πώς να αντιμετωπίσετε ένα συγκεκριμένο πρόβλημα. Η ανάγνωση των κωδικών τους θα σας ωφελήσει επίσης πολύ.
Είναι αδύνατο να κρατάς τα πάντα στο μυαλό σου όλη την ώρα. Μη διστάσετε να χρησιμοποιήσετε βιβλία αναφοράς για τη γλώσσα προγραμματισμού.

Τα προβλήματα προγραμματισμού, όσο απλά και αν είναι, δεν λύνονται ποτέ αμέσως. Απαιτούν πάντα την ανάπτυξη του σωστού αλγορίθμου ενεργειών που είναι αποτελεσματικός σε μια δεδομένη συγκεκριμένη κατάσταση. Η εύρεση βέλτιστων αλγορίθμων απαιτεί συνεχή εξάσκηση και εκπαίδευση. Προσπαθήστε να λύνετε μικρά προβλήματα προγραμματισμού πιο συχνά (μπορείτε να τα βρείτε σε εξειδικευμένους ιστότοπους), αυτό θα σας βοηθήσει να βελτιώσετε σταδιακά τις δεξιότητές σας σε αυτόν τον τομέα.



Συνιστούμε να διαβάσετε

Κορυφή