Προγραμματισμός Arduino στο C στο Studio AVR. Εισαγωγή στη γλώσσα προγραμματισμού Arduino

Στη λεπτομέρεια η γλώσσα προγραμματισμού Arduino για αρχάριους παρουσιάζεται στον παρακάτω πίνακα. Το Arduino Microcontroller προγραμματίζεται σε μια ειδική γλώσσα προγραμματισμού με βάση το C / C ++. Γλώσσα Προγραμματισμός Arduino. Είναι μια ποικιλία C ++, με άλλα λόγια, δεν υπάρχει ξεχωριστή γλώσσα προγραμματισμού για το Arduino. Κατεβάστε το βιβλίο PDF στο τέλος της σελίδας.

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

Λεπτομερές εγχειρίδιο της γλώσσας Arduino

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

Arduino Παράδειγμα Περιγραφή

Φορείς εκμετάλλευσης

Ρύθμιση () κενή εγκατάσταση ()
{
pINMODE (3, είσοδος);
}
Η λειτουργία χρησιμοποιείται για την προετοιμασία των μεταβλητών, προσδιορίζοντας τους τρόπους λειτουργίας των συμπερασμάτων του πίνακα κ.λπ. Η λειτουργία ξεκινά μόνο μία φορά, μετά από κάθε τροφοδοσία ρεύματος στον μικροελεγκτή.
βρόχος () κενό βρόχο ()
{
digitalwrite (3, υψηλή)?
Καθυστέρηση (1000).
digitalwrite (3, χαμηλά);
Καθυστέρηση (1000).
}
Η λειτουργία βρόχου περιστρέφεται στον κύκλο, επιτρέποντας στο πρόγραμμα να κάνει υπολογισμούς και να αντιδράσει σε αυτά. Οι λειτουργίες ρύθμισης () και βρόχου () πρέπει να υπάρχουν σε κάθε σκίτσο, ακόμη και αν αυτοί οι χειριστές δεν χρησιμοποιούνται στο πρόγραμμα.

Διαχειριστές χειριστών

αν
Εάν (x\u003e
Εάν (x.< 100) digitalWrite (3, LOW );
Η δήλωση αν χρησιμοποιείται σε συνδυασμό με τους φορείς σύγκρισης (\u003d\u003d,! \u003d,<, >) Και ελέγχει αν επιτυγχάνεται η αλήθεια. Για παράδειγμα, εάν η τιμή της μεταβλητής X είναι μεγαλύτερη από 100, τότε η λυχνία LED στην έξοδο 13, αν είναι απενεργοποιημένη η λυχνία LED.
Αν
Εάν (x\u003e 100) digitalwrite (3, υψηλή).
Αλλιώς digitalwrite (3, χαμηλά).
Ο άλλος χειριστής σας επιτρέπει να ελέγξετε τον έλεγχο διαφορετικό από αυτό που καθορίζεται σε εάν να εφαρμόσετε αρκετούς αμοιβαία αποκλειστικούς ελέγχους. Εάν κανένας από τους ελέγχους δεν έλαβε το αποτέλεσμα της αλήθειας, η μονάδα χειριστή εκτελείται σε αλλού.
Διακόπτης ... περίπτωσης.
Διακόπτης (x)
{


Περίπτωση 3: Break;

}
Όπως και αν ο χειριστής διακόπτη διαχειρίζεται το πρόγραμμα, επιτρέποντάς σας να ορίσετε ενέργειες που θα εκτελεστούν υπό διαφορετικές συνθήκες. Το Break είναι μια εντολή της παραγωγής από τον χειριστή, η προεπιλογή εκτελείται αν δεν έχει επιλεγεί εναλλακτική λύση.
Για κενή εγκατάσταση ()
{
pinmode (3, έξοδος);
}
κενό βρόχο ()
{
για (int i \u003d 0; i<= 255; i++){
Αναλογία (3, i);
Καθυστέρηση (10);
}
}
Το σχεδιασμό χρησιμοποιείται για τους επαναλαμβανόμενους φορείς εκμετάλλευσης που περικλείονται σε σγουρά αγκύλες. Για παράδειγμα, ομαλή σκίαση της λυχνίας LED. Η κεφαλίδα του κύκλου αποτελείται από τρία μέρη: για (αρχικοποίηση, κατάσταση, αύξηση) - εκτελείται η προετοιμασία μία φορά, τότε η κατάσταση ελέγχεται, εάν η κατάσταση είναι σωστή, η αύξηση αυξάνεται. Ο κύκλος επαναλαμβάνεται μέχρι να γίνει ψευδή κατάσταση της κατάστασης.
Ενώ κενό βρόχο ()
{
Ενώ (X.< 10)
{
x \u003d x + 1;
Serial.println (x);
Καθυστέρηση (200).
}
}
Ο χειριστής χρησιμοποιείται ως κύκλος που θα εκτελεστεί έως ότου η κατάσταση στις παρενθέσεις είναι αλήθεια. Στο παράδειγμα, ο χειριστής του κύκλου θα επαναλάβει τον κώδικα σε παρένθεση άπειρα μέχρι το x να είναι μικρότερο από 10.
Κάνετε ... ενώ κενό βρόχο ()
{
κάνω.
{
x \u003d x + 1;
Καθυστέρηση (100).
Serial.println (x);
}
Ενώ (X.< 10);
Καθυστέρηση (900).
}
Ο χειριστής του κύκλου κάνει ... ενώ λειτουργεί ακριβώς όπως ο κύκλος ενώ ο κύκλος. Ωστόσο, με την αλήθεια της έκφρασης σε παρενθέσεις, ο κύκλος συνεχίζεται και δεν ισχύει από τον κύκλο. Στο παραπάνω παράδειγμα, με το x Περισσότερο από 10, η λειτουργία προσθήκης θα συνεχιστεί, αλλά με μια παύση 1000 ms.
Διακοπή
Να συνεχίσει.
Διακόπτης (x)
{
Περίπτωση 1: Digitalwrite (3, υψηλή).
Περίπτωση 2: Digitalwrite (3, χαμηλά);
Περίπτωση 3: Break;
Περίπτωση 4: Συνέχεια;
Προεπιλογή: Digitalwrite (4, υψηλή).
}
Το διάλειμμα χρησιμοποιείται για την επιβολή της παραγωγής από το διακόπτη, κάνετε, για και ενώ κύκλους, χωρίς να περιμένετε την ολοκλήρωση του κύκλου.
Συνεχίστε τον χειριστή παραλείπει τους υπόλοιπους φορείς στο βήμα του τρέχοντος κύκλου.

Σύνταξη

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

digitalwrite (3, υψηλή)?
Το σημείο Sein χρησιμοποιείται για να ορίσει το τέλος του χειριστή. Ξεχάσατε στο τέλος της συμβολοσειράς, ένα σημείο κόμμα οδηγεί σε ένα σφάλμα κατά την κατάρτιση.
{}
(σιδερακια ΔΟΝΤΙΩΝ)
κενή εγκατάσταση ()
{
pINMODE (3, είσοδος);
}
Το βραχίονα ανοίγματος "(" πρέπει να συνοδεύεται από ένα βραχίονα κλεισίματος ")". Οι αδέσμευτες αγκύλες μπορούν να οδηγήσουν σε κρυφά και ακατανόητα σφάλματα κατά τη σύνταξη σκίτσου.
//
(σχόλιο)
x \u003d 5; // σχόλιο

Η μελέτη των μικροελεγκτών φαίνεται να είναι κάτι περίπλοκο και ακατανόητο; Πριν από την εμφάνιση του Arudino - δεν ήταν πραγματικά εύκολο και απαιτούσε ένα ορισμένο σύνολο προγραμματιστών και άλλου εξοπλισμού.

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

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

Ποιο είναι το πρώτο συμβούλιο Arduino Αγοράστε έναν νεοεισερχόμενο;

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

Σε εγχώρια καταστήματα για το 2017, η τιμή του είναι περίπου 4-5 δολάρια. Στα σύγχρονα μοντέλα, η καρδιά του είναι ATMEGA328.

Εικόνα του πλακέτα Arduino και αποκρυπτογράφηση κάθε λειτουργιών εξόδου, Arduino Uno Pinout

Ο μικροελεγκτής σε αυτό το πίνακα είναι το μήκος του τσιπ στην περίπτωση DIP28, η οποία υποδεικνύει ότι έχει 28 πόδια.

Η δημοτικότητα της επόμενης αμοιβής είναι σχεδόν δύο φθηνότερα από τα προηγούμενα - 2-3 δολάρια. Αυτό είναι ένα συμβούλιο. Οι τρέχουσες σανίδες είναι χτισμένες ως ATMEGA328, είναι λειτουργικά παρόμοιες με τις uno, οι διαφορές σε μέγεθος και επίλυση συντονισμού με USB, αυτό διαβάζεται αργότερα περισσότερο. Μια άλλη διαφορά είναι ότι παρέχεται ένα βύσμα για να συνδεθεί με την πλακέτα των συσκευών, με τη μορφή βελόνας.

Ο αριθμός των ακίδων (πόδια) αυτού του πίνακα συμπίπτει, αλλά μπορείτε να παρατηρήσετε ότι ο μικροελεγκτής κατασκευάζεται σε ένα πιο συμπαγές συσκευασία TQFP32, το ADC6 και το ADC7 προστίθενται στο περίβλημα, τα άλλα δύο "επιπλέον" πόδια αντιγράψουν την τροφοδοσία ρεύματος. Τα μεγέθη του είναι αρκετά συμπαγή - περίπου σαν ένας αντίχειρας του χεριού σας.

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

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

Στην κορυφή του συστήματος σύνδεσης USB-UART, το PIN "GRN" - αραιωμένο στο κύκλωμα εκκένωσης μικροελεγκτών, μπορεί να καλείται σε άλλο, για το οποίο πρέπει να μάθετε περαιτέρω.

Εάν το UNO είναι βολικό για την επισήμανση, τότε το Nano και Pro Mini είναι βολικό για τις τελικές εκδόσεις του έργου σας, επειδή χρειάζεται λίγο χώρο.

Πώς να συνδεθείτε το Arduino σε έναν υπολογιστή;

Το Arduino Uno και Nano συνδέονται με έναν υπολογιστή USB. Ταυτόχρονα, δεν υπάρχει υποστήριξη θύρας USB για τη θύρα, το διάλυμα μετατροπής του επιπέδου χρησιμοποιείται εδώ, που συνήθως ονομάζεται USB-to-Serial ή USB-UART (RS-232). Ταυτόχρονα, ο μικροελεγκτής θα αναβοσβήνει έναν ειδικό φορτωτή Arduino, το οποίο σας επιτρέπει να αναβοσβήνει σε αυτά τα ελαστικά.

Το Arduino UNO έχει εφαρμοστεί στον μικροελεγκτή με υποστήριξη USB - ATMEGA16U2 (AT16U2). Αυτή η κατάσταση λαμβάνεται ότι απαιτείται πρόσθετος μικροελεγκτής στο διοικητικό συμβούλιο για το υλικολογισμικό του κύριου μικροελεγκτή.

Στο Arduino Nano, αυτό υλοποιείται από τον μικροκυκλώματα FT232R ή το αναλογικό του CH340. Αυτό δεν είναι ένας μικροελεγκτής είναι ένας μετατροπέας επιπέδου, αυτό το γεγονός διευκολύνει το συγκρότημα Arduino Nano από το μηδέν με τα χέρια σας.

Συνήθως οι οδηγοί εγκαθίστανται αυτόματα όταν συνδέεται το Arduino. Ωστόσο, όταν αγόρασα Κινέζικο αντίγραφο Το Arduino Nano, η συσκευή εντοπίστηκε, αλλά δεν λειτούργησε, μια στρογγυλή ετικέτα επικολλήθηκε στον πομπό για την ημερομηνία κυκλοφορίας, δεν ξέρω αν έγινε, αλλά το απέρριξα, είδα τη σήμανση CH340.

Πριν από αυτό, δεν συναντήθηκα ότι όλοι οι μετατροπείς USB-UART συλλέχθηκαν στο FT232, έπρεπε να κατεβάσω τους οδηγούς, είναι πολύ εύκολο να βρουν κατόπιν αιτήματος "Arduino CH340 Drivers". Μετά από μια απλή εγκατάσταση - όλα λειτουργούσαν!

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

Τι να κάνετε αν δεν υπάρχει USB στο διοικητικό συμβούλιο μου;

Το Arduino Pro Mini έχει μικρότερες διαστάσεις. Αυτό έφτασε στο γεγονός ότι αφαιρέσαμε το υποδοχή υλικολογισμικού USB και τον ίδιο μετατροπέα USB-UART. Επομένως, πρέπει να αγοραστεί χωριστά. Ο απλούστερος μετατροπέας στο CH340 (το φθηνότερο), το CPL2102 και το FT232R, πωλούνται αξίας 1 δολαρίων.

Όταν αγοράζετε, δώστε προσοχή στο πώς υπολογίζεται η τάση από αυτόν τον προσαρμογέα. Το Pro Mini βρίσκεται σε εκδόσεις 3.3 και 5 V, σε μετατροπείς, ένας βραχυκυκλωτήρας βρίσκεται συχνά για να αλλάξει την τάση τροφοδοσίας.

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

Ενώνται με ειδικά τερματικά "μαμά μαμά" (θηλυκό-θηλυκό).

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

Πώς να γράψετε προγράμματα για το Arduino;

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

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

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

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

Βασικά στοιχεία προγραμματισμού στο Arduino IDE

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

#Include biblioteka.h; // Συνδέστε τη βιβλιοθήκη με το όνομα "Biblioteka.h"

#Define peremennaya 1234; // Δηλώστε μια μεταβλητή με μια τιμή 1234

Η εντολή Ορισμός δίνει στον ίδιο τον μεταγλωττιστή να επιλέξει τον τύπο της μεταβλητής, αλλά μπορείτε να το ορίσετε χειροκίνητα, για παράδειγμα, ένα ακέραιο int ή πλωτό σημείο πλωτήρα.

int LED \u003d 13; // Δημιούργησε τη μεταβλητή "LED" και έχει εκχωρήσει την τιμή "13"

Το πρόγραμμα μπορεί να καθορίσει την κατάσταση του πεύκου ως 1 ή 0. 1 - αυτή είναι μια λογική μονάδα εάν ο πείρος 13 είναι 1, η τάση στο φυσικό του πόδι θα είναι ίσο με την τάση τροφοδοσίας του μικροελεγκτή (για το Arduino Uno και Nano - 5 V)

Το ψηφιακό σήμα καταγράφεται από την εντολή DigitalWrite (PIN, VALUE), για παράδειγμα:

digitalwrite (LED, υψηλή). // Καταγράψτε τη μονάδα στο PIN 13 (το δηλώνουμε παραπάνω). Μονάδες.

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

digitalwrite (13, υψηλή)? // ορίστε το συμπέρασμα 13 στη μονάδα

Συχνά η σχετική λειτουργία καθυστέρησης χρόνου καλείται από την εντολή καθυστέρησης (), η τιμή του οποίου έχει οριστεί σε χιλιοστά του δευτερολέπτου, τα μικροδευτερόλεπτα επιτυγχάνονται με

καθυστερημένη καθυστέρηση (1000). // microcontroller θα περιμένει 1000 ms (1 δευτερόλεπτο)

Οι ρυθμίσεις θύρας στην είσοδο και την έξοδο ρυθμίζονται στη λειτουργία VOW SETUP (), εντολή:

pinMode (Nomerporta, Output / Input); // Επιχειρήματα - Όνομα Μεταβλητής ή αριθμός θύρας, είσοδος ή επιλογή

Δείτε το πρώτο πρόγραμμα αναλαμπής

Ως περίεργο "Γεια σας, Κόσμος" για Microcontrollers, το πρόγραμμα LED αναβοσβήνει, ας καταλάβουμε τον κώδικα του:

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

Στη συνέχεια, ορίζουμε την έξοδο στην οποία η λυχνία LED είναι σε ένα (5 V), η επόμενη γραμμή προκαλεί το MK να περιμένει 1 δευτερόλεπτο και στη συνέχεια ρυθμίζει το PIN LED_BUILTIN στο μηδέν, περιμένει για ένα δευτερόλεπτο και το πρόγραμμα επαναλαμβάνεται σε έναν κύκλο , οπότε όταν led_builtin είναι 1 η λυχνία LED (ναι, και οποιοδήποτε άλλο φορτίο που είναι συνδεδεμένο στη θύρα) είναι ενεργοποιημένη όταν βρίσκεται σε 0-off.

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

Ο μικροελεγκτής AVR ATMEGA328 έχει έναν ενσωματωμένο ψηφιακό μετατροπέα αναλογικού 10 bit. 10 bit adc σας επιτρέπει να διαβάσετε την τιμή μιας τάσης από 0 έως 5 volts, σε βήματα 1/1024 από ολόκληρο το πεδίο εφαρμογής του πλάτους του σήματος (5 V).

Για να καταστεί σαφές να εξετάσει την κατάσταση, ας πούμε την τιμή τάσης στην αναλογική είσοδο 2.5b, που σημαίνει ότι ο μικροελεγκτής θα διαβάσει την τιμή από την Pina "512" εάν η τάση είναι 0 - "0" και αν 5 V - (1023 και αν 5 V - (1023 ). 1023 - Επειδή η βαθμολογία πηγαίνει από 0, δηλ. 0, 1, 2, 3, κλπ. Έως 1023 - μόνο 1024 τιμές.

Έτσι φαίνεται στον κώδικα, στο παράδειγμα του τυποποιημένου σκίτσου "Analoginput"

int sensorpin \u003d a0;

int ledpin \u003d 13;

int sensorvalue \u003d 0;

pinmode (Ledpin, έξοδος);

sENSORVALUE \u003d αναλόγου (αισθητήρα);

digitalwrite (ledpin, υψηλή)?

Καθυστέρηση (αισθητήρα);

digitalwrite (Ledpin, χαμηλή);

Καθυστέρηση (αισθητήρα);

Δηλώνουμε μεταβλητές:

    Ledpin - αυτο-συνταγογραφήστε το Idus με ενσωματωμένο LED στην έξοδο και δώστε ένα μεμονωμένο όνομα.

    sensorpin - Αναλογική είσοδος, που ρυθμίζεται στη σήμανση στην πλακέτα: A0, A1, A2, κ.λπ.

    Το Sensorvalue είναι μια μεταβλητή για την αποθήκευση μιας τιμής ανάγνωσης ακέραιας και την περαιτέρω εργασία με αυτό.

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

Καταγράψτε μια μονάδα στη Ledpin, η λυχνία LED ανάβει και περιμένει το χρόνο ίσο με την αισθητήρια τιμή, δηλ. από 0 έως 1023 χιλιοστά του δευτερολέπτου. Απενεργοποιήστε το LED και περιμένετε ξανά αυτή την περίοδο, μετά την οποία επαναλαμβάνεται ο κώδικας.

Έτσι, η θέση του ποτενσιόμετρου ορίζουμε τη συχνότητα των αναλαμπών της λυχνίας LED.

Λειτουργία χάρτη για το Arudino

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

Τώρα για τη σύνταξη: Χάρτης (η τιμή που μεταφράζουμε, η ελάχιστη τιμή εισόδου, το μέγιστο μέγεθος της εισόδου, ελάχιστη έξοδος, μέγιστη τιμή εξόδου).

Στον κώδικα που μοιάζει με αυτό:

(Χάρτης (αναλόγου (κατσαρόλα), 0, 1023, 0, 180)).

Διαβάζουμε την τιμή με ένα ποτενσιόμετρο (αναλόγου (pot)) από 0 έως 1023 και στην έξοδο λαμβάνουμε έναν αριθμό από το 0 έως το 180

Τιμές χάρτη:

Στην πράξη, εφαρμόζεται η εργασία για να εργαστεί ο ίδιος σερβο-κώδικας, ρίξτε μια ματιά στον κώδικα με το Arduino IDE, εάν διαβάσετε προσεκτικά τα προηγούμενα τμήματα, τότε δεν απαιτεί εξηγήσεις.

Και το σχέδιο σύνδεσης.

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

Μου αρέσει το Arduino. Είναι λυπηρό ότι οι πολλοί έμπειροι προγραμματιστές των μικροελεγκτών scatterly επιπλήττουν ότι είναι πολύ απλοποιημένη. Απλοποιείται, κατ 'αρχήν, μόνο μια γλώσσα, αλλά κανείς δεν τις δυνάμεις να το χρησιμοποιεί, καθώς μπορείτε να αναβοσβήσετε τον μικροελεγκτή μέσω του συνδετήρα ICSP και να ρίξετε τον κώδικα που θέλετε, χωρίς να περιττώσετε τους bootloaders σας.

Για όσους θέλουν να παίξουν με ηλεκτρονικά, ως προχωρημένους σχεδιαστές - θα είναι υπέροχο και για έμπειρους προγραμματιστές ως αμοιβή που δεν απαιτεί συναρμολόγηση θα γίνει επίσης χρήσιμη!

Περισσότερες πληροφορίες σχετικά με το Arduino και τα χαρακτηριστικά της χρήσης τους σε διάφορα προγράμματα, δείτε το ηλεκτρονικό βιβλίο - .

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

Ακόμη και προς τα έξω Ι.Arduino.IDE I.Η επεξεργασία είναι παρόμοια


Ποιο είναι το πρόγραμμα (σκίτσο);
Κάθε πρόγραμμα, το οποίο πολύπλοκο δεν φαίνεται να αποτελείται από ξεχωριστά σύνολα μπλοκ κώδικα που υποδεικνύεται με αγκύλες σχήματος (). Το ελάχιστο πρόγραμμα απαιτεί μόνο 2 μπλοκ: Ρύθμιση και βρόχο. Η παρουσία τους είναι αναγκαστικά σε οποιοδήποτε πρόγραμμα στο C ++ για το Arduino, διαφορετικά είναι δυνατό να λάβετε ένα σφάλμα στο στάδιο σύνταξης.
κενό ρύθμιση () () κενό βρόχο () () ()
Στη λειτουργία ρύθμισης (), εμφανίζονται οι αρχικές ρυθμίσεις μεταβλητών, καταχωρητές. Μετά την ολοκλήρωση της ρύθμισης (), ο έλεγχος προχωρά στη λειτουργία βρόχου (), η οποία είναι ένας άπειρος βρόχος που καταγράφεται στο σώμα (μεταξύ ()). Είναι αυτές οι εντολές που κάνουν όλες τις αλγοριθμικές ενέργειες του ελεγκτή.

Σκεύη, εξαρτήματα "Γεια., κόσμος" - Αναβοσβήνει LED.
Τι αρχίζει με την πρώτη γνωριμία με το Arduino στη διασταύρωση του λογισμικού και το υλικό αναβοσβήνει LED.


Πρώτον, είναι απαραίτητο να συμπληρωθεί το ελάχιστο πρόγραμμα. Arduino (για παράδειγμα, UNO), σε 12 ακίδων και GND Συνδέστε το LED (το χρώμα του ίδιου της LED επιλέγεται από προσωπικές προτιμήσεις).

Κενή εγκατάσταση () (pinmode (12, έξοδος);) κενό βρόχο () (digitalwrite (12, υψηλή); καθυστέρηση (100), digitalwrite (12, χαμηλή); καθυστέρηση (900);)
Κάνουμε CTRL + C -\u003e CTRL + V, συντάξτε, φορτίο, Weiss. Βλέπουμε την κατοχή φωτός, η οποία δεν είναι μεγαλύτερη από ένα δευτερόλεπτο. Καταλαβαίνουμε γιατί αυτό συμβαίνει ακριβώς.

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

Τι συμβαίνει μεταξύ{ } ?
Όπως γνωρίζετε, οι ακίδες Arduino μπορούν να λειτουργήσουν τόσο στην έξοδο όσο και στην είσοδο. Όταν θέλουμε να διαχειριστούμε κάτι, τότε πρέπει να μεταφράσουμε τον έλεγχο PIN σε μια κατάσταση εργασίας. Αυτό γίνεται με έκφραση στη λειτουργία.Ρύθμιση:
Pinmode (12, έξοδος); Σε αυτή την περίπτωση, η έκφραση πραγματοποιείται Λειτουργία κλήσης . Ο Pinmode ορίζει το σετ καρφίτσας στην καθορισμένη λειτουργία (είσοδος ή έξοδο). Τι είδους πεύκο και για το τι λέει ο τρόπος ομιλίας, υποδεικνύεται σε παρενθέσεις, μέσω ενός κόμματος. Στην περίπτωσή μας, θέλουμε το 12ο ping να δουλεύει ως διέξοδο. Η έξοδος σημαίνει έξοδος, είσοδος εισόδου. Οι τιμές αποσαφηνισμού, όπως 12 και η έξοδος ονομάζονται Επιχειρήματα λειτουργίας . Πόσα επιχειρήματα λειτουργούν εξαρτώνται από την ουσία της λειτουργίας και τη θέληση του δημιουργού της. Οι λειτουργίες μπορούν να είναι καθόλου επιχειρήματα, όπως και το παράδειγμα της εγκατάστασης και του βρόχου.

Στη συνέχεια, μεταβείτε στη μονάδα βρόχου, προκειμένου:
- Ενσωματωμένη λειτουργία Digitalwrite. Έχει σχεδιαστεί για να τροφοδοτεί ένα δεδομένο πείρο του λογικού μηδενικού μηδέν (χαμηλής, 0 volt) ή μιας λογικής μονάδας (υψηλής, 5 βολτ) στα επιχειρήματα digitalwrite 2 μεταδίδονται: Τα επιχειρήματα: Pina και λογική τιμή.
- Λειτουργίες καθυστέρησης. Αυτό, και πάλι, η ενσωματωμένη λειτουργία, η οποία προκαλεί τον επεξεργαστή "ύπνου" Μια συγκεκριμένη ώρα. Χρειάζεται μόνο ένα επιχείρημα: χρόνος σε χιλιοστά του δευτερολέπτου για ύπνο. Στην περίπτωσή μας, είναι 100 ms. Μόλις λήξει 100 ms, ο επεξεργαστής ξυπνά και αμέσως προχωρά στην ακόλουθη έκφραση.
- Κλήση της ενσωματωμένης λειτουργίας digitalwrite. Μόνο αυτή τη φορά το δεύτερο επιχείρημα είναι χαμηλό. Δηλαδή, εγκαθιστούμε ένα λογικό μηδέν OK στο 12ο PIN -\u003e Δώστε 0 Volt -\u003e LED αερίου.
- Κλήση της δυνατότητας καθυστέρησης. Αυτή τη φορά, η "Spike" λίγο περισσότερο - 900 ms.

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

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


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

κενή εγκατάσταση () (pinmode (12, έξοδος);) κενό βρόχο () (digitalwrite (12, υψηλή); καθυστέρηση (100), digitalwrite (12, χαμηλή); καθυστέρηση (900);)

Για να διαβάσετε το αίμα από το μάτι κατά την ανάγνωση, μπορείτε να ακολουθήσετε αρκετούς απλούς κανόνες:


1. Πάντα, στην αρχή του νέου μπλοκ μεταξύ(και) Αύξηση της παύσης. Συνήθως χρησιμοποιούν 2 ή 4 κενά. Επιλέξτε μία από τις τιμές και κολλήστε το καθ 'όλη τη διάρκεια.

Κενό βρόχο () (digitalwrite (12, high); καθυστέρηση (100), digitalwrite (12, χαμηλά); καθυστέρηση (900);)
2. Όπως και στη συνήθη γλώσσα: βάλτε ένα χώρο μετά από κόμματα.

Digitalwrite (12, υψηλή)?
3. Τοποθετήστε το εικονίδιο Έναρξη (σε μια νέα σειρά στο τρέχον επίπεδο συνταξιοδότησης ή στο τέλος του προηγούμενου. Και το εικονίδιο τελικού μπλοκ) σε ξεχωριστή γραμμή στο τρέχον επίπεδο της παύσης:

κενό εγκατάσταση () (PinMode (12, έξοδος);) κενό εγκατάσταση () (Pinmode (12, έξοδος);)
4. Χρησιμοποιήστε κενές συμβολοσειρές σε ξεχωριστά σημασιολογικά μπλοκ:

κενό βρόχο () (digitalwrite (12, υψηλή); καθυστέρηση (100). digitalwrite (12, χαμηλή); καθυστέρηση (900); digitalwrite (12, υψηλή); καθυστέρηση (100, χαμηλή)? καθυστέρηση ( Καθυστέρηση (900) ·)
5. Προκειμένου το braychild σας, είναι ωραίο να διαβάζετε υπάρχουν λεγόμενα σχόλια. Αυτές είναι οι δομές στον κώδικα προγράμματος που αγνοούνται εντελώς από τον μεταγλωττιστή και είναι μόνο σημαντικές για το ποιος το διαβάζει. Τα σχόλια μπορούν να είναι πολλαπλών γραμμών ή μονής γραμμής:

/ * Αυτό είναι ένα σχόλιο πολλαπλών γραμμών * /// είναι μία φορά

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

  • - Διοικητικό Συμβούλιο Arduino Uno,
  • - καλώδιο USB (USB A - USB B),
  • - Προσωπικός υπολογιστής,
  • - Δίοδος εκπομπής φωτός,
  • - Αντίσταση 220 ohms,
  • - Ζεύγος καλωδίων 5-10 cm,
  • - Εάν υπάρχει ένα breadboard (breadboard).

Εντολή

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

Εγκαταστήστε το πρόγραμμα οδήγησης. Εξετάστε την επιλογή για τα Windows. Για να το κάνετε αυτό, περιμένετε πότε λειτουργικό σύστημα Προσφέρετε τον οδηγό εγκατάστασης. Αρνηθεί. Πατήστε WIN + PAUSE, εκτελέστε το διαχειριστή συσκευών. Βρείτε την ενότητα "Θύρα (COM & LPT)". Θα δείτε ένα λιμάνι με το όνομα "Arduino Uno (Comxx)". Κάντε κλικ Κάντε δεξί κλικ Ποντίκια σε αυτό και επιλέξτε "Update Driver". Στη συνέχεια, επιλέξτε τη θέση του οδηγού που μόλις κατεβάσατε.

Το αναπτυξιακό περιβάλλον περιέχει ήδη πολλά παραδείγματα για να μελετήσει το έργο του Διοικητικού Συμβουλίου. Ανοίξτε το παράδειγμα "Blink": Αρχείο\u003e Παραδείγματα\u003e 01.basics\u003e Αναβοσβήνει.

Καθορίστε το περιβάλλον ανάπτυξης για την αμοιβή σας. Για να το κάνετε αυτό, στα εργαλεία\u003e Μενού, επιλέξτε "Arduino Uno".

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

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

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

Βίντεο για το θέμα

Σημείωση

Προσέξτε όταν εργάζεστε με το Arduino Board είναι ένα ηλεκτρονικό προϊόν που απαιτεί μια προσεκτική σχέση. Από το κάτω μέρος του σκάφους υπάρχουν γυμνά αγωγοί και αν βάλετε ένα διοικητικό συμβούλιο σε μια αγώγιμη επιφάνεια, υπάρχει η ευκαιρία να κάψετε το διοικητικό συμβούλιο. Επίσης, μην αγγίζετε την πλακέτα με βρεγμένα ή υγρά χέρια και αποφύγετε τη λειτουργία των Rawrooms.

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

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

Πηγές:

  • Αναβοσβήνει LED

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

Εντολή

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

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

Μαθηματικά

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

Η κατάρτιση δεν τελειώνει

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

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

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

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

Προηγουμένως κατεβάσει και αποσυσκευασμένο λογισμικό Arduino ( arduino-1.6.6-Windows). Στη συνέχεια κατεβάσα αυτό. Αυτο-εξαγωγή. Ξεκίνησε το αρχείο. Ch341ser.exe. Επιλέγομαι Εγκατάσταση (εγκατάσταση). Μετά την εγκατάσταση, εμφανίστηκε το μήνυμα, πατημένο " Εντάξει"(Δεν είχα χρόνο να διαβάσω).

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

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

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

Πριν συνεχίσετε, πρέπει να εκτελέσετε δύο υποχρεωτικές επιχειρήσεις:

- Καθορίστε στο περιβάλλον λογισμικού Arduino, ποια χρέωση χρησιμοποιείτε. Εργαλείο-\u003e Board-\u003e Arduino Uno. Εάν το σήμα είναι ήδη στο συμβούλιο που χρειάζεστε - είναι καλό αν όχι - βάλτε ένα σημάδι.

- Καθορίστε στο περιβάλλον του προγράμματος που χρησιμοποιείτε σειριακή θύρα για να επικοινωνήσετε με το συμβούλιο. Εργαλείο-\u003e PORT-\u003e COM3. Εάν το σήμα βρίσκεται ήδη στο λιμάνι - είναι καλό αν όχι - τοποθετήστε ένα σημάδι. Εάν παρουσιάζονται στην ενότητα Ports περισσότερες από μία θύρες, πώς να μάθετε που χρησιμοποιείται για να συνδεθείτε με την πλακέτα; Λαμβάνουμε ένα τέλος και αποσυνδέουμε το καλώδιο από αυτό. Επιστρέφουμε στα λιμάνια και εξετάζουμε ποιος εξαφανίστηκε. Στην περίπτωσή μου, η καρτέλα "Λιμάνια" δεν έγινε ενεργά.

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

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

Για να ξεκινήσετε με, διαμορφώστε 13 έξοδο (στην είσοδο ή την έξοδο).

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

Πηγαίνετε στο μπλοκ " Κενό βρόχο."Και εισάγετε την ομάδα digitalwrite. Με παράμετροι (13, υψηλή) .


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

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

LED ενεργοποιήσαμε, φώναξε λίγο, ήρθε η ώρα να το απενεργοποιήσετε. Για να το κάνετε αυτό, βλέπουμε το πρόγραμμα που έχουμε γράψει. Αντί " Υψηλός "Γράφω" Χαμηλός. ».


Κάντε κλικ στο κουμπί Μεταφόρτωσης. Η LED βγήκε έξω.

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

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

Δημιουργήστε μια παγκόσμια μεταβλητή int led_pin \u003d 13; (Τύπος μεταβλητής, όνομα μεταβλητής που αντιστοιχεί σε αυτό).


Κάντε κλικ στο κουμπί Μεταφόρτωσης. LED λάμπει. Όλα λειτουργούν τέλεια.

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

Για να το κάνετε αυτό, εισάγετε τη δεύτερη εντολή " digitalwrite.» Με παράμετροι (Led_pin, χαμηλή.).


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


Κάντε κλικ στο κουμπί Μεταφόρτωσης. Η λυχνία LED άρχισε να τρεμοπαίζει. Όλα λειτουργούν.

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


Κάντε κλικ στο κουμπί Μεταφόρτωσης. Το LED χτυπά, όπως Merzl.

Βελτιώνουμε το πρόγραμμα που έχουμε γράψει. Οι εργασίες έχουν ως εξής:

  • Η λυχνία LED ενεργοποιείται 0,2 δευτερόλεπτα και απενεργοποιήστε 0,8 δευτερόλεπτα.
  • Η λυχνία LED είναι ενεργοποιημένη 0,7 δευτερόλεπτα και απενεργοποιήστε 0,3 δευτερόλεπτα.

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

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

Συνεχίζοντας το θέμα:
Λειτουργός

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

Νέα άρθρα
/
Δημοφιλής