Κατηγορίες: Κύκλωμα μικροελεγκτή
Αριθμός προβολών: 18998
Σχόλια σχετικά με το άρθρο: 0

Σύνδεση αναλογικών αισθητήρων με Arduino, ανάγνωση αισθητήρων

 

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


Σχετικά με τους αισθητήρες

Κατά συνέπεια, οι αισθητήρες χωρίζονται σε δύο ομάδες:

1. Ψηφιακή.

2. Ανάλογος.

Για να διαβάσετε ψηφιακές τιμές, μπορούμε να χρησιμοποιήσουμε ψηφιακές και αναλογικές εισόδους του μικροελεγκτή, στην περίπτωση μας Avr στο διοικητικό συμβούλιο Arduino. Οι αναλογικοί αισθητήρες πρέπει να συνδέονται μέσω μετατροπέα αναλογικού προς ψηφιακό (ADC). ATMEGA328, είναι αυτό που είναι εγκατεστημένο στις περισσότερες κάρτες ARDUINO (περισσότερα για αυτό υπάρχει ένα άρθρο σχετικά με την τοποθεσία), περιέχει στο κύκλωμα του ενσωματωμένο ADC. Έχουν διατεθεί έως και 6 αναλογικές εισόδους για να επιλέξετε.

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

Σύνδεση αναλογικών αισθητήρων με Arduino, ανάγνωση μετρήσεων αισθητήρα

Γενικό σχήμα αναλογικών αισθητήρων και σύνδεση τους

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

Γενικό σχήμα αναλογικών αισθητήρων και σύνδεση τους

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

Σχέδιο συνδεσμολογίας για αναλογικούς αισθητήρες

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

Κλασικός Διαχωριστικός Διαχωριστής

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

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

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

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

Το απλούστερο διάγραμμα σύνδεσης για ένα θερμίστορ

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

Φωτοαντιστάσεων

Το σχήμα δείχνει τη σύνδεση του φωτοανθεκτικού με το arduino.

Σχέδιο σύνδεσης του φωτοανθεκτικού σε arduino

Λογισμικό

Πριν μιλήσω για τη σύνδεση συγκεκριμένων αισθητήρων, αποφάσισα να εξετάσω το λογισμικό για την επεξεργασία τους. Όλα τα αναλογικά σήματα διαβάζονται από τις ίδιες θύρες χρησιμοποιώντας την εντολή analogRead ().Αξίζει να σημειωθεί ότι το Arduino UNO και άλλα μοντέλα με 168 και 328 atmega έχουν 10-bit ADC. Αυτό σημαίνει ότι ο μικροελεγκτής βλέπει το σήμα εισόδου ως έναν αριθμό από 0 έως 1023 - συνολικά 1024 τιμές. Εάν θεωρείτε ότι η τάση τροφοδοσίας είναι 5 volt, τότε η ευαισθησία εισόδου:

5/1024 = 0,0048 V ή 4,8 mV

Δηλαδή, με τιμή 0 στην είσοδο, η τάση είναι 0, και με τιμή 10 στην είσοδο - 48 mV.

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

  • χαμηλός - μικρότερος αριθμός πριν από τη μετατροπή κατά λειτουργία.

  • vch - άνω.

  • VCh - ο μικρότερος αριθμός μετά την επεξεργασία από τη λειτουργία (στην έξοδο)?

  • VHV - πάνω.

Μια πρακτική εφαρμογή για τη μετατροπή μιας συνάρτησης σε μια τιμή εισόδου για μετάδοση σε ένα PWM (η μέγιστη τιμή είναι 255, για τη μετατροπή δεδομένων από το ADC στην έξοδο PWM, 1024 διαιρείται με 4):

Επιλογή 1 - διαίρεση.

int x;

x = αναλογικόΔιαβάστε (pot) / 4;

// θα ληφθεί ένας αριθμός από 0 έως 1023

// διαιρέστε το με 4, παίρνουμε έναν ακέραιο από 0 έως 255 analogWrite (led, x);

Η επιλογή 2 - η λειτουργία MAP - ανοίγει περισσότερες ευκαιρίες, αλλά περισσότερο σε αυτό αργότερα.

κενός βρόχος ()

{int val = analogRead (0);

val = χάρτης (val, 0, 1023, 0, 255).

analogWrite (led, val); }}

Ή ακόμα μικρότερη:

analogWrite (οδήγησε, χάρτης (val, 0, 1023, 0, 255))

Όλοι οι αισθητήρες δεν έχουν 5 βολτ στην έξοδο, δηλ. ο αριθμός 1024 δεν είναι πάντα βολικός για να διαιρέσετε για να πάρετε το ίδιο 256 για το PWM (ή οποιοδήποτε άλλο). Αυτό μπορεί να είναι 2 και 2,5 βολτ και άλλες τιμές, όταν το μέγιστο σήμα θα είναι, για παράδειγμα, 500.


Δημοφιλείς αναλογικοί αισθητήρες

Μια γενική άποψη του αισθητήρα για το arduino και τη σύνδεσή του φαίνεται παρακάτω:

Πώς να συνδέσετε έναν αναλογικό αισθητήρα

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

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

  • G - μείον ισχύς, κοινό λεωφορείο, έδαφος. Μπορεί να οριστεί ως GND, "-";

  • V - συν την ισχύ. Μπορεί να συμβολίζεται ως Vcc, Vtg, "+";

  • S - σήμα εξόδου, πιθανή σημείωση - Out, SGN, Vout, σήμα.

Οι αρχάριοι για να μάθουν πώς να διαβάζουν τις τιμές των αισθητήρων επιλέγουν έργα όλων των ειδών θερμόμετρα. Τέτοιες αισθητήρες είναι σε ψηφιακό σχεδιασμό, για παράδειγμα DS18B20, και αναλογικά - όλα αυτά είναι μικροκυκλώματα όπως LM35, TMP35, TMP36 και άλλα. Εδώ είναι ένα παράδειγμα του αρθρωτού σχεδιασμού ενός τέτοιου αισθητήρα στον πίνακα.

Αναλογικό αισθητήρα στο TMP36

Η ακρίβεια του αισθητήρα είναι από 0,5 έως 2 μοίρες. Χτισμένο σε τσιπ TMP36, όπως πολλά από τα ανάλογα του, οι τιμές εξόδου του είναι 10 mV / ° C. Σε 0 °, το σήμα εξόδου είναι 0 V, και στη συνέχεια προστίθενται 10 mV ανά 1 βαθμό. Δηλαδή, στους 25.5 μοίρες η τάση είναι 0.255 V, είναι δυνατή η απόκλιση εντός του σφάλματος και της αυτοθέρμανσης του κρυστάλλου IC (έως και 0.1 ° C).


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

Εύρος θερμοκρασίας και τάσεις εξόδου αισθητήρα

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

Οι κωδικοί για την εργασία με τους περισσότερους αισθητήρες είναι αρκετά ογκώδεις, οπότε δεν θα τους δώσω όλους, μπορούν εύκολα να βρεθούν στο δίκτυο από το αίτημα "αισθητήρας + όνομα Arduino".

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

Αισθητήρας γραμμής

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

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

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

Οπίσθιος αισθητήρας απόστασης

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


Συμπέρασμα

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

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

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

Δείτε επίσης στην ιστοσελίδα μας:Σύνδεση εξωτερικών συσκευών με το Arduino

Δείτε επίσης στο i.electricianexp.com:

  • Ποια είναι η διαφορά μεταξύ αναλογικών και ψηφιακών αισθητήρων
  • Μετρήστε τη θερμοκρασία και την υγρασία στο Arduino - μια επιλογή μεθόδων
  • Πώς γίνεται η μετατροπή του αναλογικού σήματος σε ψηφιακή
  • Οι πιο δημοφιλείς αισθητήρες για το Arduino
  • Πώς είναι ρυθμισμένος ο αισθητήρας γραμμής και λειτουργεί

  •