Πώς να συνδέσετε ένα LED σε μια πλακέτα Arduino
Η πλατφόρμα Arduino είναι εξαιρετικά δημοφιλής σε όλο τον κόσμο. Είναι το ιδανικό εργαλείο για τα πρώτα βήματα εκμάθησης του προγραμματισμού και του ελέγχου του υλικού. Καθώς οι δεξιότητές σας αναπτύσσονται, μπορείτε να αυξήσετε την αρχιτεκτονική προσθέτοντας περιφερειακές πλακέτες και να δημιουργήσετε πιο σύνθετα συστήματα που εκτελούν πιο σύνθετα προγράμματα. Οι πλακέτες Arduino Uno και Arduino Nano είναι κατάλληλες για αρχική εκπαίδευση. Θα χρησιμοποιήσουμε αυτές τις πλακέτες ως παράδειγμα για να συνδέσουμε μια λυχνία LED στο Arduino.
Τι είναι το Arduino Uno και το Arduino Nano;
Η βάση της πλακέτας Arduino Uno είναι ο μικροελεγκτής ATmega328. Υπάρχουν επίσης πρόσθετα στοιχεία σε αυτό:
- ένα αντηχείο χαλαζία,
- κουμπί επαναφοράς,
- Σύνδεσμος USB,
- ενσωματωμένος ρυθμιστής τάσης,
- υποδοχή τροφοδοσίας,
- Διάφορες λυχνίες LED για ένδειξη λειτουργίας,
- Τσιπ επικοινωνίας USB,
- Σύνδεσμος προγραμματισμού στο τσιπ,
- Διάφορα άλλα ενεργά και παθητικά στοιχεία.
Όλα αυτά σας επιτρέπουν να κάνετε τα πρώτα βήματα χωρίς να χρησιμοποιήσετε κολλητήρι και να αποφύγετε το βήμα της κατασκευής μιας πλακέτας κυκλώματος. Η μονάδα τροφοδοτείται από εξωτερική τροφοδοσία 7...12V ή μέσω σύνδεσης USB. Συνδέει επίσης τη μονάδα με έναν υπολογιστή για να φορτώσει το σκίτσο. Η πλακέτα διαθέτει τροφοδοσία 3,3V για εξωτερικές συσκευές. Υπάρχουν 6, 14 ψηφιακές έξοδοι γενικού σκοπού διαθέσιμες για λειτουργία. Η χωρητικότητα φορτίου της ψηφιακής εξόδου όταν τροφοδοτείται από 5 V είναι 40 mA. Αυτό σημαίνει ότι ένα LED μπορεί να συνδεθεί απευθείας σε αυτό μέσω ενός αντίσταση περιορισμού.
Η πλακέτα Arduino Nano είναι πλήρως συμβατή με το Uno, αλλά είναι μικρότερη και έχει κάποιες διαφορές και απλοποιήσεις όπως φαίνεται στον πίνακα.
Το διοικητικό συμβούλιο | Ελεγκτής | Υποδοχή για εξωτερική τροφοδοσία | Τσιπ επικοινωνίας USB | Υποδοχή USB |
---|---|---|---|---|
Arduino Uno | ATmega328 | Ελέγξτε | ATmega8U2 | USB A-B |
Arduino Nano | ATmega328 | Όχι | FT232RL | micro USB |
Οι διαφορές δεν είναι θεμελιώδεις και δεν είναι σημαντικές για το θέμα της παρούσας ανασκόπησης.
Τι χρειάζεστε για να συνδέσετε το LED με την πλακέτα Arduino
Υπάρχουν δύο επιλογές για τη σύνδεση της λυχνίας LED. Για σκοπούς εκμάθησης μπορείτε να επιλέξετε οποιοδήποτε από τα δύο.
- Χρησιμοποιήστε το ενσωματωμένο LED. Σε αυτή την περίπτωση, δεν απαιτείται τίποτα άλλο εκτός από ένα καλώδιο για σύνδεση με υπολογιστή μέσω USB - για τροφοδοσία και προγραμματισμό. Δεν υπάρχει λόγος να χρησιμοποιήσετε εξωτερικό τροφοδοτικό για την τροφοδοσία της πλακέτας: η κατανάλωση ρεύματος είναι χαμηλή.
- Συνδέστε τις εξωτερικές λυχνίες LED. Θα χρειαστείτε επιπλέον τα εξής:
- Το ίδιο το LED,
- μια αντίσταση περιορισμού ρεύματος 0,25W (ή περισσότερο) με ονομαστική τιμή 250-1000 ωμ (ανάλογα με τη λυχνία LED),
- Καλώδια και κολλητήρι για τη σύνδεση του εξωτερικού κυκλώματος.
Οι λυχνίες LED συνδέονται με την κάθοδο σε οποιοδήποτε ψηφιακό ακροδέκτη του μικροελεγκτή, με την άνοδο στο κοινό καλώδιο μέσω της αντίστασης ballast. Εάν ο αριθμός των λυχνιών LED είναι μεγάλος, μπορεί επίσης να χρειαστεί ένα πρόσθετο τροφοδοτικό.
Είναι δυνατή η σύνδεση πολλαπλών LED σε έναν ακροδέκτη
Ενδέχεται να χρειαστεί να συνδέσετε μια εξωτερική λυχνία LED ή μια ομάδα λυχνιών LED σε οποιαδήποτε από τις ακίδες. Η χωρητικότητα φορτίου ενός ακροδέκτη του μικροελεγκτή, όπως αναφέρθηκε, είναι μικρή. Μία ή δύο λυχνίες LED με κατανάλωση ρεύματος 15mA μπορούν να συνδεθούν απευθείας παράλληλα σε αυτό. Δεν είναι καλή ιδέα να δοκιμάζετε την επιβιωσιμότητα ενός πείρου με φορτίο στο όριο ή πέραν του ορίου της ικανότητάς του. Ένας διακόπτης βασισμένος σε τρανζίστορ (πεδίου ή διπολικός) είναι μια καλύτερη επιλογή. (πεδίο ή διπολικό).
Αντίσταση R1 πρέπει να επιλέγεται έτσι ώστε το ρεύμα που το διαρρέει να μην υπερβαίνει την ικανότητα μεταφοράς ρεύματος της εξόδου. Είναι προτιμότερο να λαμβάνετε το μισό ή λιγότερο από το μέγιστο. Έτσι, για να ρυθμίσετε ένα μέτριο ρεύμα 10 mA., η αντίσταση σε τάση 5 βολτ θα πρέπει να είναι 500 Ohm..
Κάθε LED θα πρέπει να έχει τη δική του αντίσταση ballast, η αντικατάστασή της με μία κοινή αντίσταση δεν είναι επιθυμητή. Το Rbal θα πρέπει να επιλέγεται έτσι ώστε να ρυθμίζεται το ρεύμα λειτουργίας μέσω κάθε LED. Έτσι, για τάση τροφοδοσίας 5 βολτ και ρεύμα 20 mA, η αντίσταση θα πρέπει να είναι 250 Ω ή η πλησιέστερη τυπική τιμή.
Πρέπει να δοθεί προσοχή ώστε το συνολικό ρεύμα μέσω του συλλέκτη του τρανζίστορ να μην υπερβαίνει τη μέγιστη τιμή του. Για παράδειγμα, για ένα τρανζίστορ KT3102, το υψηλότερο Ik πρέπει να περιορίζεται στα 100 mA. Αυτό σημαίνει ότι δεν μπορούν να συνδεθούν περισσότερες από 6 λυχνίες LED με ρεύμα 15 mA. Εάν αυτό δεν είναι αρκετό, πρέπει να χρησιμοποιηθεί ισχυρότερος διακόπτης. Αυτός είναι ο μόνος περιορισμός για την επιλογή ενός τρανζίστορ n-p-n σε ένα τέτοιο κύκλωμα. Θεωρητικά θα πρέπει να λαμβάνεται υπόψη το κέρδος της τριόδου, αλλά για τις δεδομένες συνθήκες (ρεύμα εισόδου 10mA, έξοδος 100mA) θα πρέπει να είναι τουλάχιστον 10. Αυτό το h21e μπορεί να παραχθεί από οποιοδήποτε σύγχρονο τρανζίστορ.
Αυτό το κύκλωμα δεν είναι κατάλληλο μόνο για την ενίσχυση του ρεύματος στην έξοδο του μικροελεγκτή. Με αυτόν τον τρόπο μπορείτε να συνδέσετε επαρκώς ισχυρούς ενεργοποιητές (ρελέ, σωληνοειδή, ηλεκτροκινητήρες) που τροφοδοτούνται από υψηλότερη τάση (π.χ. 12 volt). Κατά τον υπολογισμό, λάβετε την κατάλληλη τιμή τάσης.
Είναι επίσης δυνατό να χρησιμοποιηθεί Τρανζίστορ MOSFETαλλά μπορεί να απαιτούν υψηλότερη τάση για να ανοίξουν από αυτήν που μπορεί να παρέχει η έξοδος του Arduino. Στην περίπτωση αυτή, πρέπει να προβλεφθούν πρόσθετα κυκλώματα και στοιχεία. Για να το αποφύγετε αυτό θα πρέπει να χρησιμοποιήσετε τα λεγόμενα "ψηφιακά" τρανζίστορ επίδρασης πεδίου - χρειάζονται μόνο 5 5 βολτ για να ανοίξει. Αλλά είναι λιγότερο συχνές.
Λογισμικό ελέγχου των LED
Η απλή σύνδεση μιας λυχνίας LED στην έξοδο του μικροελεγκτή δεν κάνει και πολλά. Πρέπει να μάθετε πώς να ελέγχετε προγραμματιστικά το LED από το Arduino. Μπορείτε να το κάνετε αυτό με τη γλώσσα Arduino, η οποία βασίζεται στη γλώσσα C (C). Αυτή η γλώσσα προγραμματισμού είναι μια προσαρμογή της C για αρχική εκπαίδευση. Μόλις την μάθετε, η μετάβαση στη C++ δεν θα είναι δύσκολη. Για να γράψετε sketches (έτσι ονομάζονται τα προγράμματα για το Arduino) και να τα αποσφαλματώσετε ζωντανά, θα πρέπει να κάνετε τα εξής:
- εγκαταστήστε το περιβάλλον Arduino IDE στον προσωπικό υπολογιστή,
- ίσως χρειαστεί να εγκαταστήσετε το πρόγραμμα οδήγησης για το τσιπ επικοινωνίας USB,
- συνδέστε την πλακέτα στον υπολογιστή με ένα καλώδιο USB-microUSB.
Οι προσομοιωτές υπολογιστών μπορούν να χρησιμοποιηθούν για την αποσφαλμάτωση απλών προγραμμάτων και κυκλωμάτων. Για παράδειγμα, το Proteus (από την έκδοση 8 και μετά) υποστηρίζει την προσομοίωση πλακετών Arduino Uno και Nano. Η ευκολία του προσομοιωτή είναι ότι δεν είναι δυνατόν να σπάσει το σίδερο αν το κύκλωμα συναρμολογηθεί λανθασμένα.
Τα σχήματα αποτελούνται από δύο ενότητες:
- ρύθμιση - εκτελείται μία φορά κατά την εκκίνηση του προγράμματος και αρχικοποιεί τις μεταβλητές και τις λειτουργίες του σιδήρου,
- βρόχος - εκτελείται κυκλικά μετά τη ρύθμιση μέχρι το άπειρο.
Για το LED Οποιοσδήποτε από τους 14 ελεύθερους ακροδέκτες, που συχνά κακώς ονομάζονται θύρες, μπορεί να χρησιμοποιηθεί για τη σύνδεση της λυχνίας LED. Μια θύρα είναι στην πραγματικότητα, απλουστευτικά μιλώντας, μια ομάδα ακροδεκτών. Η καρφίτσα είναι απλώς ένα στοιχείο.
Ένα παράδειγμα ελέγχου εξετάζεται για τον ακροδέκτη 13 - μια λυχνία LED είναι ήδη συνδεδεμένη σε αυτόν στην πλακέτα (μέσω ενός ενισχυτή επανάληψης στην πλακέτα Uno, μέσω μιας αντίστασης στην πλακέτα Nano). Για να εργαστείτε με τον ακροδέκτη θύρας πρέπει να τον διαμορφώσετε σε λειτουργία εισόδου ή εξόδου. Αυτό είναι βολικό να γίνει στο σώμα ρυθμίσεων, αλλά δεν είναι απαραίτητο - η ανάθεση ακροδεκτών μπορεί να αλλάξει δυναμικά. Αυτό σημαίνει ότι κατά τη διάρκεια της εκτέλεσης του προγράμματος η θύρα μπορεί να λειτουργήσει για είσοδο ή έξοδο.
Η αρχικοποίηση της ακίδας 13 του Arduino (ακίδα PB5 της θύρας Β του ATmega 328) έχει την ακόλουθη μορφή:
void setup ()
{
pinMode (13, Έξοδος),
}
Μετά την εκτέλεση αυτής της εντολής ο ακροδέκτης 13 της πλακέτας θα βρίσκεται σε κατάσταση εξόδου και από προεπιλογή θα έχει χαμηλή λογική στάθμη. Μπορείτε να γράψετε μηδέν ή ένα σε αυτό ενώ το πρόγραμμα εκτελείται. Το να γράψετε ένα γράμμα μοιάζει με αυτό:
void loop ()
{
digitalWrite (13, HIGH),
}
Ο ακροδέκτης 13 της πλακέτας θα είναι τώρα σε υψηλή στάθμη, ένα λογικό ένα, και μπορεί να χρησιμοποιηθεί για να ανάψει το LED.
Για να σβήσει η λυχνία LED, η έξοδος πρέπει να μηδενιστεί:
digitalWrite (13, LOW),
Γράφοντας εναλλάξ ένα και μηδέν στα αντίστοιχα bit του καταχωρητή θύρας μπορείτε να ελέγχετε εξωτερικές συσκευές.
Τώρα μπορούμε να περιπλέξουμε το πρόγραμμα Arduino για να ελέγξουμε το LED και να μάθουμε πώς να αναβοσβήνουμε το στοιχείο που εκπέμπει φως:
void setup ()
{
pinMode (13, Έξοδος),
}
void loop ()
{
digitalWrite (13, HIGH),
delay(1000),
digitalWrite (13, LOW),
delay(1000),
}
Εντολή καθυστέρηση(1000) δημιουργεί μια καθυστέρηση 1000 χιλιοστών του δευτερολέπτου ή ενός δευτερολέπτου. Αλλάζοντας αυτή την τιμή μπορείτε να αλλάξετε τη συχνότητα ή τη συχνότητα αναβοσβήνει της λυχνίας LED. Εάν συνδέσετε μια εξωτερική λυχνία LED σε διαφορετικό ακροδέκτη της πλακέτας, θα πρέπει επίσης να καθορίσετε τον αριθμό του επιλεγμένου ακροδέκτη αντί για 13 στο πρόγραμμα.
Συνιστούμε μια σειρά βίντεο για σαφήνεια.
Αφού μάθετε τις συνδέσεις των LED με το Arduino και μάθετε πώς να τις ελέγχετε, μπορείτε να προχωρήσετε στο επόμενο επίπεδο και να γράψετε άλλα, πιο σύνθετα προγράμματα. Για παράδειγμα, μπορείτε να μάθετε πώς να αλλάζετε δύο ή περισσότερες λυχνίες LED με ένα κουμπί, να αλλάζετε τη συχνότητα αναβόσβησης με ένα εξωτερικό ποτενσιόμετρο, να ρυθμίζετε τη φωτεινότητα της λάμψης με PWM ή να αλλάζετε το χρώμα ενός πομπού RGB. Το επίπεδο της πρόκλησης περιορίζεται μόνο από τη φαντασία.