Μαθήματα εκπαίδευσης Arduino. Εφαρμογή. Κατάλογος για κινητά. Εργασία - ψηφιακό θερμόμετρο

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

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

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

Ποια είναι η πρώτη πλακέτα Arduino που πρέπει να αγοράσετε για έναν αρχάριο;

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

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

Εικόνα της πλακέτας Arduino και επεξήγηση των λειτουργιών κάθε pin, Arduino UNO pinout

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

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

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

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

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

Στο επάνω μέρος υπάρχει ένα διάγραμμα σύνδεσης USB-UART, η ακίδα "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 οι μετατροπείς έχουν συχνά ένα βραχυκυκλωτήρα για την εναλλαγή της τάσης τροφοδοσίας.

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

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

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

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

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

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

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

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

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

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

#include biblioteka.h; // συνδέστε τη βιβλιοθήκη που ονομάζεται "Biblioteka.h"

#define changenaya 1234; // Δηλώστε μια μεταβλητή με την τιμή 1234

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

int led = 13; // δημιούργησε τη μεταβλητή "led" και της εκχώρησε την τιμή "13"

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

Ρεκόρ ψηφιακό σήμαεκτελείται από την εντολή digitalWrite (pin, value), για παράδειγμα:

digitalWrite(led, high); //γράψτε ένα στην καρφίτσα 13 (το δηλώσαμε παραπάνω) ημερολόγιο. Μονάδες.

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

digitalWrite(13, high); // ορίστε την καρφίτσα 13 σε ένα

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

delayMicroseconds() Delay(1000); //Ο μικροελεγκτής θα περιμένει 1000 ms (1 δευτερόλεπτο)

Οι ρυθμίσεις της θύρας εισόδου και εξόδου καθορίζονται στη συνάρτηση void setup() με την εντολή:

pinMode(NOMERPORTA, OUTPUT/INPUT); // ορίσματα - όνομα μεταβλητής ή αριθμός θύρας, είσοδος ή έξοδος για επιλογή

Κατανόηση του πρώτου προγράμματος Blink

Ως ένα είδος "Hello, world" για μικροελεγκτές, υπάρχει ένα πρόγραμμα για να αναβοσβήνει ένα LED, ας δούμε τον κώδικά του:

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

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

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

Ο μικροελεγκτής AVR Atmega328 έχει ενσωματωμένο αναλογικό 10-bit ψηφιακός μετατροπέας. Το 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 sensorPin = A0;

int ledPin = 13;

int sensorValue = 0;

pinMode(ledPin, OUTPUT);

sensorValue = analogRead(sensorPin);

digitalWrite(ledPin, HIGH);

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

digitalWrite(ledPin, LOW);

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

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

    Ledpin - αντιστοιχίζουμε ανεξάρτητα μια καρφίτσα με ενσωματωμένο LED στην έξοδο και της δίνουμε ένα μεμονωμένο όνομα.

    sensorPin - αναλογική είσοδος, ρυθμισμένη σύμφωνα με τις ενδείξεις στην πλακέτα: A0, A1, A2, κ.λπ.

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

Ο κώδικας λειτουργεί ως εξής: το sensorValue αποθηκεύει την αναλογική τιμή που διαβάζεται από το sensorPin (εντολή analogRead). - εδώ δουλέψτε με αναλογικό σήματελειώνει, τότε όλα είναι όπως στο προηγούμενο παράδειγμα.

Γράφουμε ένα στο ledPin, το LED ανάβει και περιμένουμε χρόνο ίσο με την τιμή sensorValue, δηλ. από 0 έως 1023 χιλιοστά του δευτερολέπτου. Σβήνουμε το LED και περιμένουμε ξανά αυτό το χρονικό διάστημα, μετά το οποίο ο κωδικός επαναλαμβάνεται.

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

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

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

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

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

(map(analogRead(pot), 0, 1023, 0, 180));

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

Τιμές χάρτη τιμών:

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

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

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

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

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

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

Πιθανώς, πολλοί έχουν ακούσει για μια τόσο υπέροχη πλατφόρμα, αλλά λόγω κακής γνώσης ηλεκτρονικών ή προγραμματισμού, πολλοί θα αποφασίσουν να παρακάμψουν το arduino. Ναι, η πλατφόρμα είναι αρκετά περίπλοκη, αλλά μπορείτε να το καταλάβετε, το κύριο πράγμα είναι η επιθυμία. Για πολύ καιρό εγώ ο ίδιος δεν τολμούσα να μελετήσω αυτή την πλατφόρμα, αλλά μια ωραία μέρα συνειδητοποίησα ότι θα μπορούσε να κάνει τη ζωή μου πιο εύκολη...
Υπάρχουν πολλές πληροφορίες για το arduino στο Διαδίκτυο, αλλά χωρίς πρακτική, καμία θεωρία δεν θα βοηθήσει, γι 'αυτό αποφάσισα να αγοράσω αυτό το κιτ, αλλά επιτρέψτε μου να προλάβω ότι είναι ακόμα φθηνότερο να αγοράσετε όλα τα εξαρτήματα μόνοι σας, όχι με κιτ, αλλά με αρχεία με οδηγίες και προγράμματα (σκίτσα που δημοσιεύονται παρακάτω).
Γιατί πήρα αυτό το σετ, επειδή υπάρχουν πολλές επιλογές στην Κίνα; Προηγουμένως, το Arduino ήταν σαν κάτι υπερβατικό και ακατανόητο για μένα, και το επέλεξα μόνο λόγω του αριθμού των μαθημάτων, γι 'αυτό επέλεξα αυτό το σετ, παρεμπιπτόντως, έχω ήδη αναθεωρήσει ένα παρόμοιο.

Το αγόρασα απευθείας από την Tao:

Το σετ ήρθε σε πλαστική θήκη σφραγισμένη με ταινία, προφανώς για να μην μπορεί να βγει τίποτα από το κουτί (είχα ήδη σκίσει την ταινία):


Τι υπάρχει στο κουτί?

Εξοπλισμός:



- 1x πλακέτα arduino uno, πιθανώς ακόμη και η αρχική
- 1 x οθόνη LCD 16 χαρακτήρων σε 2 γραμμές με πλακέτα i2c


- 15x LED: 5 τεμ. κόκκινο, 5 τεμ. μπλε χρώματοςκαι 5 τεμ. πορτοκαλί χρώμα


- 3x φωτοαντίσταση
- 1x δέκτης υπερύθρων
- 1x αισθητήρας φλόγας
- 2 αισθητήρες κραδασμών
- 1x αισθητήρας θερμοκρασίας
- 4 κουμπιά
- 2 πιεζοηλεκτρικά στοιχεία


- Ψηφιακή οθόνη LED με 1 ψηφίο
- Ψηφιακή οθόνη LED με 4 ψηφία
- Μήτρα LED 8x8


- 8x σταθερή αντίστασηστα 220 Ohm
- 5x σταθερή αντίσταση στο 1 kOhm
- 5x σταθερή αντίσταση στα 10 kOhm


- 1x αντίσταση μεταβλητής αντίστασης (ποτενσιόμετρο) 50 kOhm


- 1x μεγάλη περιοχή διάταξης


- 1x καλώδιο DuPont θηλυκό-αρσενικό 30 πολύχρωμα σύρματα


- 30 καλώδια σύνδεσης για το αρσενικό-αρσενικό breadboard


- 1x καλώδιο USB


- 1x πλακέτα RFID
- 1x κάρτα RFID
- 1x RFID για κλειδιά


- 1x τηλεχειριστήριο υπερύθρων
- 1x μονάδα μικροφώνου
- 1x μαξιλαράκι με κουμπιά μοντέλο 4x4
- 1x ρελέ
- 1x μονάδα ρολογιού
- 1x μονάδα οδήγησης για κινητήρα
- 1x μονάδα αισθητήρα θερμοκρασίας και υγρασίας
- 1x μονάδα joystick
- 1x μονάδα LED RGB
- 1x μονάδα αισθητήρα υγρασίας
- 1x καλώδιο τροφοδοσίας για στέμμα


- 1x σερβομηχανισμός
- 1x μοτέρ με κιβώτιο ταχυτήτων


- 1x καταχωρητής αλλαγής ταχυτήτων 74НС595N
Έτσι μοιάζουν όλα συναρμολογημένα:



Όταν παρέλαβα το σετ, άρχισα αμέσως να ψάχνω οδηγίες, αλλά δεν βρήκα τίποτα μέσα στο κουτί, νόμιζα ότι οι Κινέζοι με είχαν εξαπατήσει και ετοιμαζόμουν να τον μαλώσουν, αλλά διάβασα την περιγραφή της παρτίδας και εκεί ήταν ένας σύνδεσμος με όλες τις οδηγίες και τα προγράμματα: (password:22cd)
Αλλά Κινέζικα προγράμματαΕίναι καλύτερα να μην το χρησιμοποιήσετε, επομένως είναι καλύτερο να κάνετε λήψη του προγράμματος προγραμματισμού arduino από τον επίσημο ιστότοπο:
Αλλά έχω συλλέξει οδηγίες, προγράμματα, σκίτσα που βρέθηκαν στο Διαδίκτυο και τα σκίτσα μου, τα οποία ήταν χρήσιμα για το mastering του arduino.

Αρχή

Συνιστώ να το διαβάσετε πρώτα βιβλίο pdfστα ρωσικά: Οδηγός για mastering Arduino- 2012, που είναι στο δικό μου. Υπάρχουν πολλές χρήσιμες πληροφορίες γραμμένες εκεί και σε καθαρή γλώσσα, μόνο λίγα μαθήματα.
Στο αρχείο Modkit_Desktop_WIN32_Kickstarter_v2.zipυπάρχει πρόγραμμα για οπτικό προγραμματισμό.
Στο αρχείο Arduino - Κινέζικα.rarΥπάρχουν κινεζικές οδηγίες, κινέζικα σκίτσα, βιβλιοθήκες, αλλά υπάρχουν πολλά λάθη εκεί.
Στο αρχείο Arduino - πρόγραμμα.rarΥπάρχει ένα πρόγραμμα arduino με βιβλιοθήκες που μου ήταν χρήσιμες στο mastering arduino.
Στο αρχείο arduino-master - πολλά μαθήματα.zipυπάρχουν αρκετά μαθήματα, διαγράμματα, βιβλιοθήκες με καλή περιγραφήΣτα Αγγλικά. Επιπλέον, το μεγαλύτερο μέρος αυτού του αρχείου «τράβηξαν» οι Κινέζοι.
Στο αρχείο Τα σκίτσα μου.rarΥπάρχουν τα έργα μου, αν και είναι 34, δεν ολοκλήρωσα όλα τα μαθήματα κινεζικών, διόρθωσα μερικά και έκανα μόνος μου το τελευταίο έργο. Οι αριθμοί των σκίτσων μου δεν ταιριάζουν με τους αριθμούς των μαθημάτων που εξετάζονται, αλλά όλα τα σκίτσα μου είναι υπογεγραμμένα σε μεταγραφή και νομίζω ότι όλοι θα καταλάβουν.
Αρχίζουν!
Μάθημα #1 - LED που αναβοσβήνει
Για αυτό το σεμινάριο θα χρειαστούμε αυτά τα μέρη:


- 2 καλώδια (δεν θα αναφέρω περαιτέρω τον αριθμό των καλωδίων),
- Δίοδος εκπομπής φωτός,
- Αντίσταση 220 Ohm,
- breadboard και arduino uno board
Συνδέω-συωδεομαι:


Και παίρνουμε:
Μάθημα #2 - σύνδεση 8 LED - φώτα πορείας
Για αυτό το μάθημα θα χρειαστείτε:
- 8 LED,
- 8 αντιστάσεις στα 220 Ohm,

Το σύνδεσα λίγο λάθος, έβαλα 1 αντίσταση στη γείωση και το σύνδεσα σε όλα τα LED:




Αποτέλεσμα:
Μάθημα #3 - αλλαγή φωτεινότητας LED χρησιμοποιώντας μεταβλητή αντίσταση
Χρειαζόμαστε:
- Δίοδος εκπομπής φωτός,
- μεταβλητή αντίσταση,
- Αντίσταση 220 Ohm,
- καλώδια, breadboard και arduino


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




Αποτέλεσμα:
Μάθημα Νο. 4 - φώτα πορείας από 6 LED
Απαραίτητη:
- 6 LED,
- Αντίσταση 220 Ohm
- καλώδια, breadboard και arduino


Αποδείχθηκε έτσι:




Αποτέλεσμα:
Μάθημα Νο. 5 - σύνδεση LED RGB
Θα χρειαστείτε:
- Μονάδα RGB
- καλώδια, breadboard και arduino


Αποδείχθηκε έτσι:




Αποτέλεσμα:
Μάθημα Νο. 6 - σύνδεση του πιεζοηλεκτρικού στοιχείου
Λεπτομέριες:
- πιεζοηλεκτρικό στοιχείο
- καλώδια, breadboard και arduino


Αποδείχθηκε έτσι:


Αποτέλεσμα:

Με μουσική:

Μάθημα Νο. 8 - ενεργοποίηση του LED από το κουμπί
Λεπτομέριες:
- κουμπί
- Δίοδος εκπομπής φωτός
- αντιστάσεις 220 Ohm και 10 kOhm
- καλώδια, breadboard και arduino


Αποδείχθηκε έτσι:


Αποτέλεσμα:
Μάθημα Νο. 8.1 - on/off. LED από το κουμπί
Λεπτομέριες:
- Δίοδος εκπομπής φωτός
- 2 κουμπιά
- Αντίσταση 220 Ohm
- 2 αντιστάσεις στα 10 kOhm
- καλώδια, breadboard και arduino


Αποδείχθηκε έτσι




Αποτέλεσμα:
Μάθημα Νο. 8.2 - αλλαγή της φωτεινότητας του LED από το κουμπί
Το διάγραμμα σύνδεσης είναι πανομοιότυπο με το μάθημα 8.1, μόνο το σκίτσο είναι διαφορετικό και το αποτέλεσμα είναι:
Μάθημα #9 - μονάδα σερβομηχανισμού
Λεπτομέριες:
- σερβομηχανισμός
- καλώδια, breadboard και arduino


Αποδείχθηκε έτσι:


Αποτέλεσμα:
Μάθημα #10 - σύνδεση του καταχωρητή μετατόπισης 74HC595
Λεπτομέριες:
- 8 LED
- καταχωρητής αλλαγής ταχυτήτων 74HC595
- 8 αντιστάσεις στα 220 Ohm
- καλώδια, breadboard και arduino


Αποδείχθηκε έτσι:

Μάθημα Νο. 11 - αλλαγή της φωτεινότητας ενός LED χρησιμοποιώντας μια φωτοαντίσταση
Λεπτομέριες:
- φωτοαντίσταση
- Δίοδος εκπομπής φωτός
- Αντίσταση 220 Ohm και 10 kOhm
- καλώδια, breadboard και arduino


Αποδείχθηκε έτσι:


Αποτέλεσμα:
Μάθημα #12 - βολτόμετρο
Λεπτομέριες:
- μπαταρία
- Αντίσταση 10 kOhm
- καλώδια, breadboard και arduino
Αποδείχθηκε έτσι:




Μάθημα #13 - μέτρηση θερμοκρασίας
Λεπτομέριες:
- αισθητήρας θερμοκρασίας
- καλώδια, breadboard και arduino
Αποδείχθηκε έτσι:


Το αποτέλεσμα εμφανίζεται στο "protra monitor":


Εάν θερμάνετε τον αισθητήρα με αναπτήρα, η θερμοκρασία αλλάζει:

Μάθημα Νο 13.1 - αλλαγή θερμοκρασίας - οπτική απεικόνιση
Λεπτομέριες:
- αισθητήρας θερμοκρασίας
- 3 LED
- Αντίσταση 220 Ohm
- καλώδια, breadboard και arduino
Αποδείχθηκε έτσι:


Αποτέλεσμα:
Μάθημα #14 - σύνδεση ψηφιακής οθόνης LED
Λεπτομέριες:
- 6 αντιστάσεις 220 Ohm
- Ψηφιακή οθόνη LED
- καλώδια, breadboard και arduino
Αποδείχθηκε έτσι:


Το αποτέλεσμα του κινέζικου σκίτσου:

Το αποτέλεσμα του τροποποιημένου σκίτσου μου:

Μάθημα Νο. 14 - σύνδεση ψηφιακής οθόνης LED με 4 ψηφία
Λεπτομέριες:
- Πίνακας LEDκατά 4 ψηφία
- καλώδια, breadboard και arduino
Αποδείχθηκε έτσι:


Το αποτέλεσμα είναι ένα χρονόμετρο:
Μάθημα Νο. 15 - σύνδεση μήτρας LED 8x8
Λεπτομέριες:
- LED matrix 8x8
- καλώδια και arduino
Αποδείχθηκε έτσι:




Το αποτέλεσμα του σκίτσου μου:
Μάθημα Νο. 16 - σύνδεση αισθητήρα υγρασίας
Λεπτομέριες:
- αισθητήρας υγρασίας
- LED (Σύνδεσα τη μονάδα RGB σε 1 LED)
- καλώδια και arduino
Αποδείχθηκε έτσι:


Αποτέλεσμα:
Μάθημα #17 - μέτρηση θερμοκρασίας και υγρασίας
Λεπτομέριες:
- αισθητήρας υγρασίας και θερμοκρασίας
- καλώδια και arduino
Αποδείχθηκε έτσι:


Το αποτέλεσμα εμφανίζεται στο "protra monitor":
Μάθημα Νο. 18 - σύνδεση της μονάδας ρελέ
Λεπτομέριες:
- μονάδα ρελέ
- Δίοδος εκπομπής φωτός
- Αντίσταση 220 Ohm
- καλώδια, breadboard και arduino
Αποδείχθηκε έτσι:


Αποτέλεσμα:
Μάθημα #19 - Σύνδεση LCDοθόνη 16x2
Λεπτομέριες:
- Οθόνη LCD 1602
- καλώδια και arduino
Αποδείχθηκε έτσι:


Αποτέλεσμα:

Μάθημα #20 - σύνδεση του κινητήρα
Λεπτομέριες:
- Μονάδα οδήγησης για τον κινητήρα
- μοτέρ με κιβώτιο ταχυτήτων
- καλώδια και arduino
Αποδείχθηκε έτσι:


Αποτέλεσμα:
Μάθημα Νο. 21 - Ενεργοποίηση/απενεργοποίηση LED χρησιμοποιώντας το τηλεχειριστήριο
Λεπτομέριες:
- Τηλεχειριστήριο υπερύθρων
- Δέκτης υπερύθρων
- 6 LED
- 6 αντιστάσεις 220Ohm
- καλώδια, breadboard και arduino


Αποδείχθηκε έτσι:


Αποτέλεσμα:
Μάθημα #22 - Σύνδεση joystick
Λεπτομέριες:
- joystick
- καλώδια και arduino
Το αποτέλεσμα εμφανίζεται στο "protra monitor":
Μάθημα #23 - Σύνδεση πληκτρολογίου 4x4
Λεπτομέριες:
- πληκτρολόγιο
- καλώδια και arduino
Το αποτέλεσμα εμφανίζεται στο "protra monitor":
Μάθημα #24 - Σύνδεση RFID
Λεπτομέριες:
- Μονάδα RFID
- καλώδια και arduino
Αποδείχθηκε έτσι:


Το αποτέλεσμα εμφανίζεται στο "protra monitor" - διαβάζοντας την απόρριψη κάρτας:


Το αποτέλεσμα εμφανίζεται στο "protra monitor" - διαβάζοντας το μπρελόκ:


Το αποτέλεσμα εμφανίζεται στην "protra monitor" - Προσπάθησα να διαβάσω το UEC, μια τραπεζική κάρτα με payWave και μια κάρτα μεταφοράς:

Πήρα μόνο 24 μαθήματα. Δεν κάλυψα τα υπόλοιπα στην κριτική, αν και τα μάζεψα και τα έλεγξα μόνος μου.

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

Εργασία - ψηφιακό θερμόμετρο
Λεπτομέριες:
- αισθητήρας θερμοκρασίας
- Οθόνη LCD
- καλώδια, breadboard και arduino
Αποδείχθηκε έτσι:


Το πιο δύσκολο πράγμα που απομένει είναι να συνδυάσουμε 2 σκίτσα και για να λειτουργήσουν όλα, έχουμε αυτό το σκίτσο:

Ψηφιακό θερμόμετρο

#περιλαμβάνω #περιλαμβάνω LiquidCrystal_I2C LCD (0x27,16,2); int potPin = 0; // pin όπου είναι συνδεδεμένος ο αισθητήρας float dat = 0; // μεταβλητή για τη θερμοκρασία void setup() ( lcd.init(); lcd.backlight(); lcd.begin(16, 2); lcd.print("S"); delay(300); lcd.print(" p"); delay(300); lcd.print("e"); delay(300); lcd.print("c"); delay(300); lcd.print("i"); delay(300) lcd.print("lcd.print") ; 0,5 δευτερόλεπτα lcd.print("f"); print("t") ; lcd.print("lcd.print"); lcd.print("u"); //διαγραφή της καθυστέρησης οθόνης (1000); lcd.setCursor(0, 0); lcd.print("Ειδικά για"); lcd.setCursor(0, 1); LCD..clear(); //διαγραφή της καθυστέρησης οθόνης (300); lcd.setCursor(0, 0); lcd.print("Specially for"); lcd.setCursor(0, 1); LCD..clear(); //διαγραφή της καθυστέρησης οθόνης (300); lcd.setCursor(0, 0); lcd.print("Specially for"); lcd.setCursor(0, 1); LCD..clear(); ) void loop() ( lcd.init(); // αρχικοποίηση της lcd lcd.clear(); // εκκαθάριση της οθόνης // ανάγνωση και υπολογισμός της θερμοκρασίας dat = (5.0 * analogRead(potPin) * 100.0) / 1024.0; lcd.setCursor(0,0) print(dat) // εμφάνιση της τρέχουσας θερμοκρασίας lcd.print("C"); καθυστέρηση (5*500); // καθυστέρηση πριν από την επανάληψη των μετρήσεων)


Ελαφρώς κρυφοκοιτασμένο
Αποτέλεσμα:

Τώρα πρέπει να ελέγξουμε το σφάλμα:


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

Γιατί το ξεκίνησα όλο αυτό;
Θέλω να αυτοματοποιήσω την παρασκευή, ενώ αυτό είναι ακόμα ένα μακρινό έργο.

+

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

-

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

Συμπέρασμα:

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

Αυτό είναι όλο, ελπίζω η κριτική μου να μην φάνηκε πολύ βαρετή.

Σας ευχαριστώ για την προσοχή σας!

Σκοπεύω να αγοράσω +307 Προσθήκη στα αγαπημένα Μου άρεσε η κριτική +199 +551

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

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

Τι είναι το Arduino και σε τι χρησιμεύει;

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

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

Κιτ εκκίνησης Arduino

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

Βασικό κιτ Arduino για αρχάριους:Αγορά
Μεγάλο σετ για εκπαίδευση και πρώτα έργα:Αγορά
Σετ πρόσθετων αισθητήρων και μονάδων:Αγορά
Το Arduino Uno είναι το πιο βασικό και βολικό μοντέλο από τη σειρά:Αγορά
breadboard χωρίς συγκόλληση για εύκολη εκμάθηση και δημιουργία πρωτοτύπων:Αγορά
Σετ καλωδίων με βολικούς συνδέσμους:Αγορά
Σετ LED:Αγορά
Σετ αντιστάσεων:Αγορά
Κουμπιά:Αγορά
Ποτενσιόμετρα:Αγορά

Περιβάλλον ανάπτυξης Arduino IDE

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

Εκδοχή Windows Mac OS X Linux
1.8.2

Γλώσσα προγραμματισμού Arduino

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

Ο προγραμματισμός Arduino χρησιμοποιεί μια απλοποιημένη έκδοση της γλώσσας C++ με προκαθορισμένες λειτουργίες. Όπως και σε άλλες γλώσσες προγραμματισμού τύπου C, υπάρχει ένας αριθμός κανόνων για τη σύνταξη κώδικα. Εδώ είναι τα πιο βασικά:

  • Κάθε οδηγία πρέπει να ακολουθείται από ένα ερωτηματικό (;)
  • Πριν δηλώσετε μια συνάρτηση, πρέπει να καθορίσετε τον τύπο δεδομένων που επιστρέφεται από τη συνάρτηση ή να ακυρώσετε εάν η συνάρτηση δεν επιστρέψει μια τιμή.
  • Είναι επίσης απαραίτητο να υποδείξετε τον τύπο δεδομένων πριν δηλώσετε μια μεταβλητή.
  • Τα σχόλια ορίζονται: // Inline και /* block */

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

Όλο το υλικολογισμικό Arduino πρέπει να περιέχει τουλάχιστον 2 λειτουργίες. Αυτά είναι η setup() και η loop().

λειτουργία εγκατάστασης

Για να λειτουργήσουν όλα, πρέπει να γράψουμε ένα σκίτσο. Ας κάνουμε το LED να ανάψει αφού πατήσετε το κουμπί και να σβήσει μετά το επόμενο πάτημα. Εδώ είναι το πρώτο μας σκίτσο:

// μεταβλητές με ακίδες συνδεδεμένων συσκευών int switchPin = 8; int ledPin = 11; // μεταβλητές για την αποθήκευση της κατάστασης του κουμπιού και LED boolean lastButton = LOW; Κουμπί δυαδικού ρεύματος = LOW; boolean ledOn = ψευδής; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // συνάρτηση για debounse boolean debounse(boolean last) ( boolean current = digitalRead(switchPin); if(last != current) (καθυστέρηση ( 5 ρεύμα = digitalRead(switchPin) επιστροφή ρεύμα ) void loop() (currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) (ledOn = !ledOn; ) lastButton = currentButton ; digitalWrite); (ledPin, ledOn);

// μεταβλητές με καρφίτσες συνδεδεμένων συσκευών

int switchPin = 8 ;

int ledPin = 11 ;

// μεταβλητές για την αποθήκευση της κατάστασης του κουμπιού και του LED

boolean lastButton = LOW ;

boolean currentButton = LOW ;

boolean ledOn = ψευδής ;

void setup() (

pinMode(switchPin, INPUT);

pinMode(ledPin, OUTPUT);

// συνάρτηση για debouncing

boolean debounse (boolean last ) (

boolean ρεύμα = digitalRead(switchPin);

αν (τελευταίο != τρέχον) (

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

τρέχον = digitalRead(switchPin);

ρεύμα επιστροφής ;

void loop() (

currentButton = debounse(lastButton);

αν (lastButton == LOW && currentButton == HIGH ) (

ledOn = ! ledOn ;

lastButton = currentButton ;

digitalWrite(ledPin, ledOn);

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

PWM Arduino

Η διαμόρφωση πλάτους παλμού (PWM) είναι η διαδικασία ελέγχου της τάσης χρησιμοποιώντας τον κύκλο λειτουργίας ενός σήματος. Δηλαδή, χρησιμοποιώντας PWM μπορούμε να ελέγξουμε ομαλά το φορτίο. Για παράδειγμα, μπορείτε να αλλάξετε ομαλά τη φωτεινότητα ενός LED, αλλά αυτή η αλλαγή στη φωτεινότητα δεν επιτυγχάνεται με τη μείωση της τάσης, αλλά με την αύξηση των διαστημάτων του χαμηλού σήματος. Η αρχή λειτουργίας του PWM φαίνεται σε αυτό το διάγραμμα:

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

Το Arduino έχει ενσωματωμένο διαμορφωτή πλάτους παλμού. Μπορείτε να χρησιμοποιήσετε το PWM μόνο σε εκείνες τις ακίδες που υποστηρίζονται από τον μικροελεγκτή. Για παράδειγμα, το Arduino Uno και το Nano έχουν 6 ακίδες PWM: αυτές είναι οι ακίδες D3, D5, D6, D9, D10 και D11. Οι ακίδες ενδέχεται να διαφέρουν σε άλλες σανίδες. Μπορείτε να βρείτε μια περιγραφή του πίνακα που σας ενδιαφέρει

Για να χρησιμοποιήσετε το PWM στο Arduino υπάρχει μια συνάρτηση Παίρνει ως ορίσματα τον αριθμό pin και την τιμή PWM από το 0 έως το 255. Το 0 είναι 0% γέμισμα με υψηλό σήμα και το 255 είναι 100%. Ας γράψουμε ένα απλό σκίτσο ως παράδειγμα. Ας κάνουμε το LED να ανάβει ομαλά, να περιμένουμε ένα δευτερόλεπτο και να σβήνει το ίδιο ομαλά και ούτω καθεξής επ' άπειρον. Ακολουθεί ένα παράδειγμα χρήσης αυτής της συνάρτησης:

// Το LED είναι συνδεδεμένο στον ακροδέκτη 11 int ledPin = 11; void setup() ( pinMode(ledPin, OUTPUT); ) void loop() ( for (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0; i--) ( analogWrite(ledPin, i); καθυστέρηση(5); ) )

// LED συνδεδεμένο στον ακροδέκτη 11

int ledPin = 11 ;

void setup() (

pinMode(ledPin, OUTPUT);

void loop() (

για (int i = 0; i< 255 ; i ++ ) {

analogWrite(ledPin, i);

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

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

για (int i = 255; i > 0; i -- ) (

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

Σύντομες πληροφορίες για το Arduino

Τι είναι το Arduino;

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

Πώς συνδέονται το Arduino και τα ρομπότ;

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

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

Μάθημα 1. LED που αναβοσβήνει στο Arduino

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

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

Μάθημα 2. Σύνδεση κουμπιού στο Arduino

Σε αυτό το σεμινάριο θα μάθετε πώς να συνδέσετε ένα κουμπί και ένα LED σε ένα Arduino.

Όταν πατηθεί το κουμπί, το LED θα ανάψει, ενώ όταν πατηθεί το κουμπί, δεν θα ανάψει. Αυτό είναι και το βασικό μοντέλο.

Μάθημα 3. Σύνδεση ποτενσιόμετρου στο Arduino

Σε αυτό το σεμινάριο θα μάθετε πώς να συνδέσετε ένα ποτενσιόμετρο στο Arduino.

Ποτενσιόμετρο- Αυτό αντίσταση με ρυθμιζόμενη αντίσταση.Τα ποτενσιόμετρα χρησιμοποιούνται ως ρυθμιστές διάφορες παραμέτρους– ένταση ήχου, ισχύς, τάση κ.λπ.Αυτό είναι επίσης ένα από τα βασικά σχήματα. Στο μοντέλο μας από το γύρισμα του πόμολο του ποτενσιόμετρουΗ φωτεινότητα του LED θα εξαρτηθεί.

Μάθημα 4. Έλεγχος Servo στο Arduino

Σε αυτό το σεμινάριο θα μάθετε πώς να συνδέσετε έναν σερβομηχανισμό σε ένα Arduino.

Servoείναι ένας κινητήρας του οποίου η θέση του άξονα μπορεί να ελεγχθεί ρυθμίζοντας τη γωνία περιστροφής.

Οι σερβομηχανισμοί χρησιμοποιούνται για την προσομοίωση διαφόρων μηχανικών κινήσεων των ρομπότ.

Μάθημα 5. Τρίχρωμη λυχνία LED στο Arduino

Σε αυτό το σεμινάριο θα μάθετε πώς να συνδέσετε ένα τρίχρωμο LED σε ένα Arduino.

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

Μάθημα 6. Piezo στοιχείο στο Arduino

Σε αυτό το μάθημα θα μάθετε πώς να συνδέσετε ένα πιεζοστοιχείο σε ένα Arduino.

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

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

Μάθημα 7. Φωτοαντίσταση στο Arduino

Σε αυτό το μάθημα του μαθήματος μας θα μάθετε πώς να συνδέσετε μια φωτοαντίσταση στο Arduino.

Φωτοαντίσταση- μια αντίσταση της οποίας η αντίσταση εξαρτάται από τη φωτεινότητα του φωτός που πέφτει πάνω της.

Στο μοντέλο μας, το LED ανάβει μόνο εάν η φωτεινότητα του φωτός πάνω από τη φωτοαντίσταση είναι μικρότερη από μια συγκεκριμένη φωτεινότητα.

Μάθημα 8. Αισθητήρας κίνησης (PIR) στο Arduino. Αυτόματη αποστολή e-mail

Σε αυτό το μάθημα του μαθήματός μας, θα μάθετε πώς να συνδέσετε έναν αισθητήρα κίνησης (PIR) στο Arduino, καθώς και να οργανώσετε αυτόματη αποστολήΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ.

Αισθητήρας κίνησης (PIR)- αισθητήρας υπερύθρων για ανίχνευση κίνησης ή παρουσίας ανθρώπων ή ζώων.

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

Μάθημα 9. Σύνδεση αισθητήρα θερμοκρασίας και υγρασίας DHT11 ή DHT22

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

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

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

Μάθημα 10. Σύνδεση πληκτρολογίου matrix

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

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

Μάθημα 11. Σύνδεση της μονάδας ρολογιού πραγματικού χρόνου DS3231

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

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

Εφαρμογή. Έτοιμα κουφώματα και ρομπότ Arduino


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

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

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

Εφαρμογή. Κατάλογος για κινητά


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

Η εφαρμογή αποτελείται από 3 κύριες ενότητες:

  • Χειριστές;
  • Δεδομένα;
  • Λειτουργίες.

Πού να αγοράσετε Arduino


Κιτ Arduino

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

Αυτός ο προσομοιωτής λειτουργεί καλύτερα στο πρόγραμμα περιήγησης Chrome
Ας ρίξουμε μια πιο προσεκτική ματιά στο Arduino.

Το Arduino δεν είναι μεγάλος υπολογιστής, στο οποίο μπορούν να συνδεθούν εξωτερικά κυκλώματα. Το Arduino Uno χρησιμοποιεί Atmega 328P
Αυτό είναι το μεγαλύτερο τσιπ στο ταμπλό. Αυτό το τσιπ εκτελεί προγράμματα που είναι αποθηκευμένα στη μνήμη του. Μπορείτε να κατεβάσετε το πρόγραμμα μέσω usb από χρησιμοποιώντας Arduino IDE. θύρα USBπαρέχει επίσης ισχύ στο arduino.

Υπάρχει ξεχωριστή υποδοχή τροφοδοσίας. Η πλακέτα έχει δύο ακίδες με την ένδειξη 5v και 3,3v, οι οποίες χρειάζονται για την τροφοδοσία διάφορες συσκευές. Θα βρείτε επίσης ακίδες με την ένδειξη GND, αυτές είναι οι ακίδες γείωσης (η γείωση είναι 0V). Η πλατφόρμα Arduino διαθέτει επίσης 14 ψηφιακές ακίδες, με την ένδειξη 0 έως 13, οι οποίες συνδέονται με εξωτερικούς κόμβους και έχουν δύο καταστάσεις, υψηλή ή χαμηλή (ενεργοποίηση ή απενεργοποίηση). Αυτές οι επαφές μπορούν να λειτουργήσουν ως έξοδοι ή ως είσοδοι, π.χ. Μπορούν είτε να μεταδίδουν ορισμένα δεδομένα και να ελέγχουν εξωτερικές συσκευές είτε να λαμβάνουν δεδομένα από συσκευές. Οι επόμενες καρφίτσες στον πίνακα φέρουν την ετικέτα A0-A5. Πρόκειται για αναλογικές εισόδους που μπορούν να δέχονται δεδομένα από διάφορους αισθητήρες. Αυτό είναι ιδιαίτερα βολικό όταν χρειάζεται να μετρήσετε ένα συγκεκριμένο εύρος, όπως η θερμοκρασία. Οι αναλογικές είσοδοι έχουν πρόσθετες λειτουργίες, το οποίο μπορεί να χρησιμοποιηθεί ξεχωριστά.

Τρόπος χρήσης breadboard.

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

Το breadboard έχει σειρές οπών στις οποίες μπορείτε να εισάγετε εξαρτήματα και καλώδια. Μερικές από αυτές τις τρύπες συνδέονται ηλεκτρικά μεταξύ τους.

Οι δύο επάνω και κάτω σειρές συνδέονται σε σειρές κατά μήκος ολόκληρου του πίνακα. Αυτές οι σειρές χρησιμοποιούνται για την παροχή ρεύματος στο κύκλωμα. Θα μπορούσε να είναι 5V ή 3,3V, αλλά σε κάθε περίπτωση, το πρώτο πράγμα που πρέπει να κάνετε είναι να συνδέσετε 5V και GND στο breadboard όπως φαίνεται στην εικόνα. Μερικές φορές αυτές οι συνδέσεις σειρών μπορεί να σπάσουν στη μέση της πλακέτας, στη συνέχεια, αν χρειαστεί, μπορείτε να τις συνδέσετε όπως φαίνεται στην εικόνα.








Οι υπόλοιπες τρύπες, που βρίσκονται στη μέση της σανίδας, ομαδοποιούνται σε ομάδες των πέντε οπών. Χρησιμοποιούνται για τη σύνδεση εξαρτημάτων κυκλώματος.


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

Γιατί χρειάζεται μια αντίσταση σε ένα κύκλωμα; Σε αυτή την περίπτωση, περιορίζει το ρεύμα που διέρχεται από το LED. Κάθε LED έχει σχεδιαστεί για ένα συγκεκριμένο ρεύμα και εάν αυτό το ρεύμα είναι υψηλότερο, το LED θα αποτύχει. Μπορείτε να μάθετε ποια τιμή πρέπει να έχει η αντίσταση χρησιμοποιώντας το νόμο του Ohm. Για όσους δεν ξέρουν ή το έχουν ξεχάσει, ο νόμος του Ohm λέει ότι υπάρχει γραμμική εξάρτησηρεύμα από την τάση. Δηλαδή, όσο περισσότερη τάση εφαρμόσουμε στην αντίσταση, τόσο περισσότερο ρεύμα θα τη διαρρέει.
V=I*R
Οπου V- τάση στην αντίσταση
Εγώ- ρεύμα μέσω της αντίστασης
R- αντίσταση που πρέπει να βρεθεί.
Πρώτα, πρέπει να μάθουμε την τάση στην αντίσταση. Τα περισσότερα LED 3mm ή 5mm που θα χρησιμοποιήσετε έχουν τάση λειτουργίας 3γ. Αυτό σημαίνει ότι πρέπει να σβήσουμε 5-3 = 2V στην αντίσταση.

Στη συνέχεια θα υπολογίσουμε το ρεύμα που διέρχεται από την αντίσταση.
Τα περισσότερα LED 3mm και 5mm ανάβουν σε πλήρη φωτεινότητα στα 20mA. Ένα ρεύμα μεγαλύτερο από αυτό μπορεί να τα απενεργοποιήσει, ενώ ένα ρεύμα μικρότερης έντασης θα μειώσει τη φωτεινότητά τους χωρίς να προκαλέσει καμία βλάβη.

Θέλουμε λοιπόν να συνδέσουμε το LED στο κύκλωμα 5V ώστε να μεταφέρει ρεύμα 20mA. Δεδομένου ότι όλα τα μέρη περιλαμβάνονται σε ένα κύκλωμα, η αντίσταση θα έχει επίσης ρεύμα 20 mA.
Παίρνουμε
2V = 20 mA * R
2V = 0,02A * R
R = 100 Ohm

Τα 100 Ohm είναι η ελάχιστη αντίσταση, είναι καλύτερα να χρησιμοποιήσετε λίγο περισσότερο, επειδή τα LED έχουν κάποια διακύμανση στα χαρακτηριστικά.
Σε αυτό το παράδειγμα, χρησιμοποιείται μια αντίσταση 220 ohm. Μόνο επειδή ο συγγραφέας έχει πολλά από αυτά: wink: .

Εισαγάγετε τη λυχνία LED στις οπές στη μέση της πλακέτας έτσι ώστε το μακρύ της καλώδιο να συνδέεται σε ένα από τα καλώδια της αντίστασης. Συνδέστε το δεύτερο άκρο της αντίστασης στα 5V και συνδέστε το δεύτερο καλώδιο του LED στο GND. Το LED πρέπει να ανάψει.

Λάβετε υπόψη ότι υπάρχει διαφορά στον τρόπο σύνδεσης του LED. Το ρεύμα ρέει από το μακρύτερο τερματικό στο μικρότερο. Στο διάγραμμα, μπορείτε να φανταστείτε ότι το ρεύμα ρέει προς την κατεύθυνση όπου κατευθύνεται το τρίγωνο. Δοκίμασε να γυρίσεις το LED ανάποδα και θα δεις ότι δεν θα ανάψει.

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

Ανατομία του Arduino Sketch.

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

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



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

Αυτή η λειτουργία χρησιμοποιείται σε εγκατάσταση ()μέρος του προγράμματος και χρησιμεύει για την προετοιμασία των ακίδων που θα χρησιμοποιήσετε ως είσοδο (ΕΙΣΑΓΩΓΗ)ή έξοδος (ΠΑΡΑΓΩΓΗ). Δεν θα μπορείτε να διαβάσετε ή να γράψετε δεδομένα από την καρφίτσα μέχρι να τα ορίσετε αντίστοιχα pinMode. Αυτή η συνάρτηση έχει δύο ορίσματα: pinNumberείναι ο αριθμός pin που θα χρησιμοποιήσετε.

Τρόπος-ορίζει πώς θα λειτουργεί η καρφίτσα. Στην είσοδο (ΕΙΣΑΓΩΓΗ)ή έξοδος (ΠΑΡΑΓΩΓΗ). Για να ανάψουμε το LED πρέπει να δώσουμε σήμα ΑΠΟ Arduino. Για να γίνει αυτό, διαμορφώνουμε τον ακροδέκτη εξόδου.
- αυτή η λειτουργία χρησιμοποιείται για τη ρύθμιση της κατάστασης (κατάσταση)πίνα (Αριθμός καρφίτσας). Υπάρχουν δύο κύριες πολιτείες (στην πραγματικότητα 3 από αυτές), το ένα είναι ΥΨΗΛΟΣ, θα υπάρχουν 5 V στον πείρο, αυτό είναι κάτι άλλο Χαμηλόςκαι η ακίδα θα είναι 0v. Αυτό σημαίνει ότι για να ανάψουμε το LED, πρέπει να ρυθμίσουμε την ακίδα που είναι συνδεδεμένη στο LED υψηλό επίπεδο ΥΨΗΛΟΣ.

Καθυστέρηση. Χρησιμεύει για την καθυστέρηση της λειτουργίας του προγράμματος για μια περίοδο που καθορίζεται σε msec.
Παρακάτω είναι ο κωδικός που κάνει το LED να αναβοσβήνει.
//LED Αναβοσβήνει int ledPin = 7;//ακίδα Arduino στην οποία είναι συνδεδεμένη η λυχνία LED void setup() ( pinMode(ledPin, OUTPUT);// ρύθμιση της ακίδας ως OUTPUT) void loop() ( digitalWrite(ledPin, HIGH) ;// ενεργοποιήστε την καθυστέρηση LED (1000);// καθυστέρηση 1000 ms (1 δευτερόλεπτο) digitalWrite(ledPin, LOW);// Απενεργοποιήστε την καθυστέρηση LED (1000);//περιμένετε 1 δευτερόλεπτο)

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

ledPinείναι μια μεταβλητή. Οι μεταβλητές χρησιμοποιούνται σε προγράμματα για την αποθήκευση τιμών. Σε αυτό το παράδειγμα, η μεταβλητή ledPinη τιμή εκχωρείται στο 7, αυτός είναι ο αριθμός pin του Arduino. Όταν το πρόγραμμα Arduino συναντά μια γραμμή με μια μεταβλητή ledPin, θα χρησιμοποιήσει την τιμή που καθορίσαμε νωρίτερα.
Καταγράψτε λοιπόν pinMode (ledPin, OUTPUT)παρόμοια με την εγγραφή pinMode (7, OUTPUT).
Αλλά στην πρώτη περίπτωση, χρειάζεται απλώς να αλλάξετε τη μεταβλητή και θα αλλάζει σε κάθε γραμμή όπου χρησιμοποιείται, και στη δεύτερη περίπτωση, για να αλλάξετε τη μεταβλητή, θα πρέπει να κάνετε αλλαγές χειροκίνητα σε κάθε εντολή.

Η πρώτη γραμμή υποδεικνύει τον τύπο της μεταβλητής. Στο Προγραμματισμός ArduinoΕίναι σημαντικό να δηλώνετε πάντα τον τύπο των μεταβλητών. Προς το παρόν αρκεί να το ξέρεις INTανακοινώνει αρνητικούς και θετικούς αριθμούς.
Παρακάτω είναι μια προσομοίωση του σκίτσου. Κάντε κλικ στην έναρξη για να δείτε το κύκλωμα σε δράση.

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

Έλεγχος πολλαπλών LED.

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

Για να ανάψετε και να σβήσετε τα LED ένα προς ένα, πρέπει να γράψετε ένα πρόγραμμα παρόμοιο με αυτό:
//Πολλαπλά LED Αναβοσβήνουν int led1Pin = 4; int led2Pin = 5; int led3Pin = 6; int led4Pin = 7; void setup() ( //ορίστε τις ακίδες ως OUTPUT pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); ) void loop() ( digitalWrite(led1Pin, HIGH );//ενεργοποίηση καθυστέρησης LED(1000);//καθυστέρηση 1 δευτερολέπτου digitalWrite(led1Pin, LOW);//απενεργοποίηση καθυστέρησης LED(1000);//καθυστέρηση 1 δευτερολέπτου //κάντε το ίδιο για τα άλλα 3 LED digitalWrite(led2Pin , HIGH);//ανάβουν την καθυστέρηση LED(1000);//καθυστέρηση 1 sec digitalWrite(led2Pin, LOW);//σβήνουν την καθυστέρηση LED(1000);//καθυστέρηση 1 sec digitalWrite(led3Pin, HIGH );//ανάψτε την καθυστέρηση LED(1000);// καθυστέρηση 1 δευτερόλεπτο digitalWrite(led3Pin, LOW);//σβήσε την καθυστέρηση LED(1000);//καθυστέρηση 1 sec digitalWrite(led4Pin, HIGH);//ενεργοποίηση η καθυστέρηση LED (1000);// καθυστέρηση 1 δευτερολέπτου digitalWrite(led4Pin, LOW);//σβήσε την καθυστέρηση LED (1000);//καθυστέρηση 1 δευτερόλεπτο)

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

DigitalWrite(led4Pin, HIGH); καθυστέρηση (1000); digitalWrite(led4Pin, LOW); καθυστέρηση (1000);
πλήρης κώδικας σκίτσου στο συνημμένο (λήψεις: 1187)

Ρύθμιση φωτεινότητας LED

Μερικές φορές θα χρειαστεί να αλλάξετε τη φωτεινότητα των LED στο πρόγραμμα. Αυτό μπορεί να γίνει χρησιμοποιώντας την εντολή analogWrite() . Αυτή η εντολή ανάβει και σβήνει το LED τόσο γρήγορα που το μάτι δεν μπορεί να δει το τρεμόπαιγμα. Εάν το LED ανάβει τη μισή φορά και σβήνει τις μισές φορές, θα φαίνεται οπτικά ότι ανάβει με τη μισή φωτεινότητά του. Ονομάζεται διαμόρφωση πλάτους παλμού(PWM ή PWM στα Αγγλικά). Το παρέμβυσμα χρησιμοποιείται αρκετά συχνά, καθώς μπορεί να χρησιμοποιηθεί για τον έλεγχο ενός "αναλογικού" στοιχείου χρησιμοποιώντας ψηφιακός κώδικας. Δεν είναι όλες οι ακίδες Arduino κατάλληλες για αυτούς τους σκοπούς. Μόνο εκείνα τα συμπεράσματα κοντά στα οποία συνάγεται ένας τέτοιος προσδιορισμός " ~ ". Θα το δείτε δίπλα στις καρφίτσες 3,5,6,9,10,11.
Συνδέστε ένα από τα LED σας σε έναν από τους ακροδέκτες PWM (για τον συγγραφέα αυτό είναι ο ακροδέκτης 9). Τώρα εκτελέστε το σκίτσο LED που αναβοσβήνει, αλλά πρώτα αλλάξτε την εντολή digitalWrite()επί analogWrite(). analogWrite()έχει δύο επιχειρήματα: το πρώτο είναι ο αριθμός pin και το δεύτερο είναι η τιμή PWM (0-255), σε σχέση με τα LED αυτή θα είναι η φωτεινότητά τους και για τους ηλεκτρικούς κινητήρες η ταχύτητα περιστροφής. Ακολουθεί ένα παράδειγμα κώδικα για διαφορετικές φωτεινότητες LED.
//Αλλαγή της φωτεινότητας της λυχνίας LED int ledPin = 9;//ένα LED είναι συνδεδεμένο σε αυτό το pin Void setup() ( pinMode(ledPin, OUTPUT);// προετοιμασία της ακίδας στην έξοδο ) void loop() ( analogWrite( ledPin, 255);// πλήρης φωτεινότητα (255/255 = 1) καθυστέρηση (1000);//παύση 1 δευτερόλεπτο digitalWrite(ledPin, LOW);//απενεργοποίηση καθυστέρησης LED (1000);//παύση 1 δευτερόλεπτο αναλογικήΕγγραφή( ledPin, 191);//φωτεινότητα κατά 3/4 (191/255 ~= 0,75) καθυστέρηση (1000);//παύση 1 δευτερόλεπτο digitalWrite(ledPin, LOW);//απενεργοποίηση καθυστέρησης LED (1000);// pause 1 sec analogWrite(ledPin, 127 //μισή φωτεινότητα (127/255 ~= 0,5) delay(1000);//pause 1 sec digitalWrite(ledPin, LOW);//απενεργοποίηση LED καθυστέρησης(1000);/ /pause 1 sec analogWrite(ledPin, 63) //τέταρτο φωτεινότητα (63/255 ~= 0,25) delay(1000);//pause 1 sec digitalWrite(ledPin, LOW);//απενεργοποίηση της καθυστέρησης LED(1000) ;//παύση 1 δευτερόλεπτο)

Δοκιμάστε να αλλάξετε την τιμή PWM στην εντολή analogWrite()για να δείτε πώς αυτό επηρεάζει τη φωτεινότητα.
Στη συνέχεια, θα μάθετε πώς να προσαρμόζετε τη φωτεινότητα ομαλά από το πλήρες στο μηδέν. Μπορείτε, φυσικά, να αντιγράψετε ένα κομμάτι κώδικα 255 φορές
analogWrite(ledPin, φωτεινότητα); καθυστέρηση(5);//μικρή καθυστέρηση φωτεινότητα = φωτεινότητα + 1;
Αλλά, καταλαβαίνετε, αυτό δεν θα είναι πρακτικό. Ο καλύτερος τρόπος για να το κάνετε αυτό είναι να χρησιμοποιήσετε βρόχος ΓΙΑπου χρησιμοποιήθηκε στο παρελθόν.
Το παρακάτω παράδειγμα χρησιμοποιεί δύο βρόχους, έναν για να μειώσει τη φωτεινότητα από 255 σε 0
για (int brightness=0;brightness=0;brightness--)( analogWrite(ledPin,brightness); delay(5); )
καθυστέρηση (5)χρησιμοποιείται για να επιβραδύνει την ταχύτητα εξασθένισης της φωτεινότητας 5*256=1280ms=1,28s)
Η πρώτη γραμμή χρησιμοποιεί " λάμψη-" για να μειώνεται η τιμή φωτεινότητας κατά 1 κάθε φορά που επαναλαμβάνεται ο βρόχος. Σημειώστε ότι ο βρόχος θα τρέχει μέχρι φωτεινότητα >=0.Αντικατάσταση της πινακίδας > στην πινακίδα >= συμπεριλάβαμε το 0 στο εύρος φωτεινότητας. Αυτό το σκίτσο διαμορφώνεται παρακάτω. //αλλάξτε ομαλά τη φωτεινότητα int ledPin = 9;//μια λυχνία LED είναι συνδεδεμένη σε αυτό το pin Void setup() ( pinMode(ledPin, OUTPUT);// προετοιμασία της ακίδας εξόδου) void loop() ( //αύξηση ομαλά φωτεινότητα (0 έως 255 ) για (int brightness=0;brightness=0;brightness--)( analogWrite(ledPin,brightness); delay(5); ) delay(1000);//wait 1 sec //ομαλή μείωση φωτεινότητας (255 έως 0) για (int brightness=255;brightness>=0;brightness--)( analogWrite(ledPin,brightness); delay(5); ) delay(1000);//wait 1 sec ) )
Δεν είναι πολύ ορατό, αλλά η ιδέα είναι ξεκάθαρη.

RGB LED και Arduino

Ένα RGB LED είναι στην πραγματικότητα τρία διαφορετικά χρώματα LED σε μία συσκευασία.

Συμπεριλαμβανομένου διαφορετικά LEDΜε διαφορετική φωτεινότητα μπορείτε να συνδυάσετε και να πάρετε διαφορετικά χρώματα. Για το Arduino, όπου ο αριθμός των επιπέδων φωτεινότητας είναι 256, θα λάβετε 256^3=16581375 πιθανά χρώματα. Στην πραγματικότητα, φυσικά, θα είναι λιγότεροι από αυτούς.
Το LED που θα χρησιμοποιήσουμε είναι η κοινή κάθοδος. Εκείνοι. Και τα τρία LED συνδέονται δομικά με καθόδους σε έναν ακροδέκτη. Θα συνδέσουμε αυτόν τον ακροδέκτη με τον ακροδέκτη GND. Οι υπόλοιπες ακίδες, μέσω περιοριστικών αντιστάσεων, πρέπει να συνδεθούν στις ακίδες PWM. Ο συγγραφέας χρησιμοποίησε τις ακίδες 9-11 Με αυτόν τον τρόπο θα είναι δυνατός ο έλεγχος κάθε LED ξεχωριστά. Το πρώτο σκίτσο δείχνει πώς να ανάβετε κάθε LED ξεχωριστά.



//RGB LED - δοκιμή //pin συνδέσεις int κόκκινο = 9; int πράσινο = 10; int blue = 11; void setup())( pinMode(κόκκινο, OUTPUT); pinMode(μπλε, OUTPUT); pinMode(πράσινο, OUTPUT); ) void loop())( //ενεργοποίηση/απενεργοποίηση του κόκκινου LED digitalWrite(κόκκινο, ΥΨΗΛΟ); καθυστέρηση(500) ; HIGH); digitalWrite (μπλε, LOW);

Το παρακάτω παράδειγμα χρησιμοποιεί τις εντολές analogWrite()και για να λάβετε διαφορετικές τυχαίες τιμές φωτεινότητας για τα LED. Θα δείτε διαφορετικά χρώματα να αλλάζουν τυχαία.
//RGB LED - τυχαία χρώματα //Συνδέσεις καρφιτσών int κόκκινο = 9; int green = 10; int blue = 11; void setup())( pinMode(κόκκινο, OUTPUT); pinMode(μπλε, OUTPUT); pinMode(πράσινο, OUTPUT); ) void loop())( //επιλογή αναλογικού τυχαίου χρώματοςWrite(κόκκινο, τυχαίο(256)); analogWrite( μπλε, τυχαία(256));

Τυχαία(256)-επιστρέφει έναν τυχαίο αριθμό στην περιοχή από 0 έως 255.
Στο συνημμένο αρχείο υπάρχει ένα σκίτσο που θα δείχνει ομαλές χρωματικές μεταβάσεις από κόκκινο σε πράσινο, μετά σε μπλε, κόκκινο, πράσινο κ.λπ. (λήψεις: 326)
Το παράδειγμα σκίτσου λειτουργεί, αλλά υπάρχει πολύς διπλός κώδικας. Μπορείτε να απλοποιήσετε τον κώδικα γράφοντας τη δική σας βοηθητική συνάρτηση που θα αλλάζει ομαλά από το ένα χρώμα στο άλλο.
Δείτε πώς θα μοιάζει: (λήψεις: 365)
Ας δούμε τον ορισμό της συνάρτησης κομμάτι-κομμάτι. Η συνάρτηση καλείται faderκαι έχει δύο επιχειρήματα. Κάθε όρισμα διαχωρίζεται με κόμμα και έχει έναν τύπο που δηλώνεται στην πρώτη γραμμή του ορισμού της συνάρτησης: void fader (int color1, int color2). Βλέπετε ότι και τα δύο ορίσματα δηλώνονται ως ενθ, και τους δίνονται ονόματα χρώμα 1Και χρώμα2ως μεταβλητές συνθήκης για τον ορισμό μιας συνάρτησης. Κενόςσημαίνει ότι η συνάρτηση δεν επιστρέφει τιμές, απλώς εκτελεί εντολές. Εάν έπρεπε να γράψετε μια συνάρτηση που επέστρεφε το αποτέλεσμα του πολλαπλασιασμού, θα έμοιαζε με αυτό:
πολλαπλασιαστής int(int number1, int number2)( int product = αριθμός1*number2; επιστροφή προϊόν; )
Παρατηρήστε πώς δηλώσαμε Τύπος ενθως τύπος επιστροφής
κενός.
Μέσα στη συνάρτηση υπάρχουν εντολές που έχετε ήδη χρησιμοποιήσει στο προηγούμενο σκίτσο, μόνο οι αριθμοί pin έχουν αντικατασταθεί με χρώμα 1Και χρώμα2. Η συνάρτηση καλείται fader, τα ορίσματά του υπολογίζονται ως χρώμα1 = κόκκινοΚαι χρώμα2 = πράσινο. Το αρχείο περιέχει ένα πλήρες σκίτσο χρησιμοποιώντας λειτουργίες (λήψεις: 272)

Κουμπί

Το επόμενο σκίτσο θα χρησιμοποιεί ένα κουμπί με κανονικά ανοιχτές επαφές, χωρίς κλείδωμα.


Αυτό σημαίνει ότι ενώ το κουμπί δεν είναι πατημένο, δεν περνά ρεύμα από αυτό και αφού αφεθεί, το κουμπί επιστρέφει στην αρχική του θέση.
Εκτός από το κουμπί, το κύκλωμα χρησιμοποιεί μια αντίσταση. Σε αυτή την περίπτωση, δεν περιορίζει το ρεύμα, αλλά «τραβάει» το κουμπί στα 0V (GND). Εκείνοι. μέχρι να πατηθεί το κουμπί στην ακίδα Arduino στην οποία είναι συνδεδεμένο, θα το κάνει χαμηλό επίπεδο. Η αντίσταση που χρησιμοποιείται στο κύκλωμα είναι 10 kOhm.


//προσδιορίστε πότε πατιέται το κουμπί int buttonPin = 7; void setup())( pinMode(buttonPin, INPUT);//initialize the pin στην είσοδο Serial.begin(9600);//initialize σειριακή θύρα) void loop())( if (digitalRead(buttonPin)==HIGH)(//εάν πατηθεί το κουμπί Serial.println("πατήθηκε"); // εκτύπωση "πατήθηκε" ) else ( Serial.println("unpressed" // διαφορετικά "μη πατημένο" ) )
Υπάρχουν πολλές νέες εντολές σε αυτό το σκίτσο.
-Αυτή η εντολή παίρνει τις υψηλές και χαμηλές τιμές της εξόδου που δοκιμάζουμε. Αυτή η έξοδος πρέπει πρώτα να διαμορφωθεί ως είσοδος στο setup().
; //where buttonPin είναι ο αριθμός pin όπου είναι συνδεδεμένο το κουμπί.
Η σειριακή θύρα επιτρέπει στο Arduino να στέλνει μηνύματα στον υπολογιστή ενώ ο ίδιος ο ελεγκτής εκτελεί το πρόγραμμα. Αυτό είναι χρήσιμο για τον εντοπισμό σφαλμάτων ενός προγράμματος, την αποστολή μηνυμάτων σε άλλες συσκευές ή εφαρμογές. Για να ενεργοποιήσετε τη μεταφορά δεδομένων μέσω σειριακής θύρας (ονομάζεται επίσης UART ή USART), πρέπει να την αρχικοποιήσετε στο setup()

Serial.begin()έχει μόνο ένα όρισμα - αυτή είναι η ταχύτητα μεταφοράς δεδομένων μεταξύ του Arduino και του υπολογιστή.
Το σκίτσο χρησιμοποιεί μια εντολή για να εμφανίσει ένα μήνυμα στην οθόνη στο Arduino IDE (Εργαλεία >> Σειριακή οθόνη).
- ο σχεδιασμός σας επιτρέπει να ελέγχετε την πρόοδο της εκτέλεσης του προγράμματος συνδυάζοντας πολλούς ελέγχους σε ένα μέρος.
Εάν το digitalRead επιστρέψει HIGH, τότε η λέξη "pressed" εμφανίζεται στην οθόνη. Διαφορετικά (αλλιώς) εμφανίζεται στην οθόνη η λέξη "released". Τώρα μπορείτε να δοκιμάσετε να ανάψετε και να απενεργοποιήσετε το LED πατώντας ένα κουμπί.
//Ανίχνευση πατήματος κουμπιού με έξοδο LED int buttonPin = 7; int ledPin = 8; void setup())( pinMode(buttonPin, INPUT);//αυτή τη φορά θα ορίσουμε την καρφίτσα του κουμπιού ως INPUT pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin )= =HIGH)( digitalWrite(ledPin,HIGH); Serial.println("πατήθηκε"); ) other ( digitalWrite(ledPin,LOW); Serial.println("unpressed"); ) )

Αναλογική είσοδος.

αναλογικήΑνάγνωσησας επιτρέπει να διαβάζετε δεδομένα από μία από τις αναλογικές ακίδες Arduino και εμφανίζει μια τιμή στην περιοχή από 0 (0V) έως 1023 (5V). Εάν η τάση στην αναλογική είσοδο είναι 2,5 V, τότε θα εκτυπωθούν 2,5 / 5 * 1023 = 512
αναλογικήΑνάγνωσηέχει μόνο ένα όρισμα - Αυτός είναι ο αριθμός αναλογικής εισόδου (A0-A5). Το παρακάτω σκίτσο δείχνει τον κωδικό για την ανάγνωση της τάσης από το ποτενσιόμετρο. Για να το κάνετε αυτό, συνδέστε μια μεταβλητή αντίσταση, τους εξωτερικούς ακροδέκτες στις ακίδες 5V και GND και τον μεσαίο ακροδέκτη στην είσοδο A0.

Εκτελέστε τον παρακάτω κώδικα και δείτε στη σειριακή οθόνη πώς αλλάζουν οι τιμές ανάλογα με την περιστροφή του κουμπιού της αντίστασης.
//αναλογική είσοδος int potPin = A0;//ο κεντρικός ακροδέκτης του ποτενσιόμετρου είναι συνδεδεμένος σε αυτήν την ακίδα pink setup())( //αναλογική ακίδα περιλαμβάνεται ως είσοδος από προεπιλογή, επομένως δεν απαιτείται αρχικοποίηση Serial.begin(9600 ) void loop())( int potVal = analogRead(potPin);//potVal είναι ένας αριθμός μεταξύ 0 και 1023 Serial.println(potVal)
Το παρακάτω σκίτσο συνδυάζει το σκίτσο κλικ στο κουμπί και το σκίτσο ελέγχου φωτεινότητας LED. Το LED θα ανάψει από το κουμπί και η φωτεινότητα θα ελέγχεται από ένα ποτενσιόμετρο.
//Ανίχνευση πατήματος κουμπιού με έξοδο LED και μεταβλητή ένταση κουμπί intPin = 7; int ledPin = 9; int potPin = A0; void setup())( pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin)==HIGH)(//αν πατηθεί το κουμπί int analogVal = analogRead(potPin) int scaledVal = map(analogVal, 0, 1023, 0, 255); ( digitalWrite(ledPin, LOW);//απενεργοποίηση αν δεν πατηθεί το κουμπί Serial.println("μη πατημένο"); ) )