- Ο αναλογικός κόσμος με την ψηφιακή ηλεκτρονική
- Τι είναι το ADC και πώς να το χρησιμοποιήσετε;
- Ανάλυση (bits) και κανάλια στο ADC
- Τάση αναφοράς για ένα ADC
- Παράδειγμα
- Τύποι ADC και λειτουργία
- Μερικές συνήθεις ερωτήσεις σχετικά με το ADC
Ο αναλογικός κόσμος με την ψηφιακή ηλεκτρονική
Λίγα χρόνια πίσω, ολόκληρες οι ηλεκτρονικές συσκευές που χρησιμοποιούμε σήμερα όπως τηλέφωνα, υπολογιστές, τηλεοράσεις κ.λπ. ήταν αναλογικής φύσης. Στη συνέχεια, αργά, τα σταθερά τηλέφωνα αντικαταστάθηκαν από μοντέρνα κινητά τηλέφωνα, οι CRT Televisions και οι οθόνες αντικαταστάθηκαν από οθόνες LED, οι υπολογιστές με σωλήνες κενού εξελίχθηκαν ώστε να είναι πιο ισχυροί με μικροεπεξεργαστές και μικροελεγκτές μέσα τους και ούτω καθεξής..
Στη σημερινή ψηφιακή εποχή όλοι μας περιβάλλεται από τις προηγμένες ψηφιακές ηλεκτρονικές συσκευές, αυτό μπορεί να μας εξαπατήσει να πιστεύουμε ότι όλα γύρω μας είναι ψηφιακού χαρακτήρα, κάτι που δεν είναι αλήθεια. Ο κόσμος ήταν πάντα αναλογικός στη φύση, για παράδειγμα ό, τι εμείς οι άνθρωποι αισθανόμαστε και βιώνουμε όπως η ταχύτητα, η θερμοκρασία, η ταχύτητα του αέρα, το φως του ήλιου, ο ήχος κ.λπ. είναι αναλογικά στη φύση. Όμως οι ηλεκτρονικές μας συσκευές που λειτουργούν σε μικροελεγκτές και μικροεπεξεργαστές δεν μπορούν να διαβάσουν / ερμηνεύσουν αυτές τις αναλογικές τιμές απευθείας, καθώς λειτουργούν μόνο σε 0 και 1. Χρειαζόμαστε λοιπόν κάτι που θα μετατρέψει όλες αυτές τις αναλογικές τιμές σε 0 και 1 έτσι ώστε οι μικροελεγκτές και οι μικροεπεξεργαστές μας να μπορούν να τις κατανοήσουν. Αυτό είναι κάτι που ονομάζεται Analog to Digital Converters ή ADC για συντομία. Σε αυτό το άρθρο θα μάθουμετα πάντα για το ADC και τον τρόπο χρήσης τους.
Τι είναι το ADC και πώς να το χρησιμοποιήσετε;
Όπως αναφέρθηκε προηγουμένως, το ADC σημαίνει αναλογική σε ψηφιακή μετατροπή και χρησιμοποιείται για τη μετατροπή αναλογικών τιμών από πραγματικό κόσμο σε ψηφιακές τιμές όπως 1 και 0. Λοιπόν, ποιες είναι αυτές οι αναλογικές τιμές; Αυτά είναι αυτά που βλέπουμε στην καθημερινή μας ζωή, όπως θερμοκρασία, ταχύτητα, φωτεινότητα κλπ. Αλλά περιμένετε !! Μπορεί ένας ADC να μετατρέψει τη θερμοκρασία και την ταχύτητα απευθείας σε ψηφιακές τιμές όπως 0 και 1;
Όχι προκλητικά όχι. Ένας ADC μπορεί να μετατρέψει μόνο τιμές αναλογικής τάσης σε ψηφιακές τιμές. Έτσι ποια παράμετρος θέλουμε να μετρήσουμε, πρέπει πρώτα να μετατραπεί σε τάση, αυτή η μετατροπή μπορεί να γίνει με τη βοήθεια αισθητήρων. Για παράδειγμα, για να μετατρέψουμε τις τιμές θερμοκρασίας σε τάση, μπορούμε να χρησιμοποιήσουμε ένα θερμίστορ παρόμοια για να μετατρέψουμε τη φωτεινότητα σε τάση, μπορούμε να χρησιμοποιήσουμε ένα LDR Μόλις μετατραπεί σε τάση μπορούμε να το διαβάσουμε με τη βοήθεια των ADC.
Για να μάθουμε πώς να χρησιμοποιούμε ένα ADC πρέπει πρώτα να εξοικειωθούμε με μερικούς βασικούς όρους όπως, ανάλυση καναλιών, εύρος, τάση αναφοράς κ.λπ.
Ανάλυση (bits) και κανάλια στο ADC
Όταν διαβάσετε την προδιαγραφή οποιουδήποτε Μικροελεγκτή ή ADC IC, οι λεπτομέρειες του ADC θα δοθούν χρησιμοποιώντας τους όρους κανάλια και Ανάλυση (bits). Για παράδειγμα, ένα ATmega328 του Arduino UNO διαθέτει ADC 8-καναλιών 10-bit. Όχι κάθε ακίδα σε έναν μικροελεγκτή μπορεί να διαβάσει την αναλογική τάση, ο όρος 8-κανάλι σημαίνει ότι υπάρχουν 8 ακίδες σε αυτόν τον μικροελεγκτή ATmega328 που μπορούν να διαβάσουν την αναλογική τάση και κάθε ακίδα μπορεί να διαβάσει την τάση με ανάλυση 10-bit. Αυτό θα διαφέρει για διαφορετικούς τύπους μικροελεγκτών.
Ας υποθέσουμε ότι το εύρος ADC μας είναι από 0V έως 5V και έχουμε ADC 10-bit, αυτό σημαίνει ότι η τάση εισόδου μας 0-5 Volts θα χωριστεί σε 1024 επίπεδα διακριτών αναλογικών τιμών (2 10 = 1024). Σημασία 1024 είναι η ανάλυση για ADC 10-bit, παρόμοια για ανάλυση ADC 8-bit θα είναι 512 (2 8) και για ανάλυση ADC 16-bit θα είναι 65.536 (2 16).
Με αυτό εάν η πραγματική τάση εισόδου είναι 0V τότε το ADC του MCU θα το διαβάσει ως 0 και αν είναι 5V, το MCU θα διαβάσει 1024 και αν κάπου ενδιάμεσα όπως 2,5V τότε το MCU θα διαβάσει 512. Μπορούμε να χρησιμοποιήσουμε τους παρακάτω τύπους για τον υπολογισμό της ψηφιακής τιμής που θα διαβαστεί από το MCU με βάση την ανάλυση της τάσης ADC και λειτουργίας.
(Ανάλυση ADC / Τάση λειτουργίας) = (Ψηφιακή τιμή ADC / Πραγματική τιμή τάσης)
Τάση αναφοράς για ένα ADC
Ένας άλλος σημαντικός όρος που πρέπει να γνωρίζετε είναι η τάση αναφοράς. Κατά τη διάρκεια μιας μετατροπής ADC η τιμή της άγνωστης τάσης βρίσκεται συγκρίνοντάς την με μια γνωστή τάση, αυτή είναι γνωστή τάση ονομάζεται τάση αναφοράς. Κανονικά, όλα τα MCU έχουν την επιλογή να ορίσουν εσωτερική τάση αναφοράς, πράγμα που σημαίνει ότι μπορείτε να ρυθμίσετε αυτήν την τάση εσωτερικά σε κάποια διαθέσιμη τιμή χρησιμοποιώντας λογισμικό (πρόγραμμα). Σε έναν πίνακα Arduino UNO η τάση αναφοράς ρυθμίζεται στα 5V από προεπιλογή εσωτερικά, εάν απαιτείται ο χρήστης μπορεί να ρυθμίσει αυτήν την τάση αναφοράς εξωτερικά μέσω του πείρου Vref επίσης αφού πραγματοποιήσει τις απαιτούμενες αλλαγές στο λογισμικό.
Να θυμάστε πάντα ότι η μετρούμενη τιμή αναλογικής τάσης πρέπει πάντα να είναι μικρότερη από την τιμή τάσης αναφοράς και η τιμή τάσης αναφοράς θα πρέπει πάντα να είναι μικρότερη από την τιμή τάσης λειτουργίας του μικροελεγκτή.
Παράδειγμα
Εδώ παίρνουμε παράδειγμα ADC που έχει ανάλυση 3 bit και τάση αναφοράς 2V. Έτσι μπορεί να χαρτογραφήσει την αναλογική τάση 0-2v με 8 (2 3) διαφορετικά επίπεδα, όπως φαίνεται στην παρακάτω εικόνα:
Έτσι, εάν η αναλογική τάση είναι 0,25 τότε η ψηφιακή τιμή θα είναι 1 σε δεκαδικό και 001 σε δυαδικό. Ομοίως, εάν η αναλογική τάση είναι 0,5 τότε η ψηφιακή τιμή θα είναι 2 σε δεκαδική και 010 σε δυαδική.
Ορισμένοι μικροελεγκτές έχουν ενσωματωμένο ADC όπως Arduino, MSP430, PIC16F877A, αλλά μερικοί μικροελεγκτές δεν το έχουν όπως 8051, Raspberry Pi κ.λπ. και πρέπει να χρησιμοποιήσουμε κάποια εξωτερικά IC αναλογικού σε ψηφιακό μετατροπέα όπως ADC0804, ADC0808.
Παρακάτω μπορείτε να βρείτε διάφορα παραδείγματα ADC με διαφορετικούς μικροελεγκτές:
- Πώς να χρησιμοποιήσετε το ADC στο Arduino Uno;
- Εκμάθηση Raspberry Pi ADC
- Διασύνδεση ADC0808 με 8051 μικροελεγκτή
- Ψηφιακό βολτόμετρο 0-25V με χρήση μικροελεγκτή AVR
- Πώς να χρησιμοποιήσετε το ADC στο STM32F103C8
- Πώς να χρησιμοποιήσετε το ADC στο MSP430G2
Τύποι ADC και λειτουργία
Υπάρχουν πολλοί τύποι ADC, οι πιο συχνά χρησιμοποιούμενοι είναι Flash ADC, Dual Slope ADC, Διαδοχική προσέγγιση και Dual Slope ADC. Για να εξηγήσουμε πώς καθεμία από αυτές τις εργασίες ADC και η διαφορά μεταξύ τους θα ήταν εκτός πεδίου για αυτό το άρθρο, καθώς είναι αρκετά περίπλοκες. Αλλά για να δώσω μια γενική ιδέα, το ADC έχει έναν εσωτερικό πυκνωτή που θα φορτιστεί από την αναλογική τάση που πρόκειται να μετρηθεί. Στη συνέχεια μετράμε την τιμή τάσης εκφορτίζοντας τον πυκνωτή για μια χρονική περίοδο.
Μερικές συνήθεις ερωτήσεις σχετικά με το ADC
Πώς να μετρήσω περισσότερα από 5V χρησιμοποιώντας το ADC μου;
Όπως συζητήθηκε προηγουμένως, μια μονάδα ADC δεν μπορεί να μετρήσει την τιμή τάσης περισσότερο από την τάση λειτουργίας του μικροελεγκτή. Αυτό είναι ένας μικροελεγκτής 5V που μπορεί να μετρήσει μόνο το μέγιστο των 5V με τον πείρο ADC του. Εάν θέλετε να μετρήσετε κάτι περισσότερο από αυτό που λέτε, θέλετε να μετρήσετε 0-12V, τότε μπορείτε να αντιστοιχίσετε το 0-12V σε 0-5V χρησιμοποιώντας ένα πιθανό διαχωριστικό ή κύκλωμα διαχωριστή τάσης. Αυτό το κύκλωμα θα χρησιμοποιήσει ένα ζεύγος αντιστάσεων για να χαρτογραφήσει τις τιμές για ένα MCU, μπορείτε να μάθετε περισσότερα για το κύκλωμα διαχωριστή τάσης χρησιμοποιώντας το σύνδεσμο. Για το παραπάνω παράδειγμα, θα πρέπει να χρησιμοποιήσουμε μια αντίσταση 1K και μια αντίσταση 720 ohm σε σειρά στην πηγή τάσης και να μετρήσουμε την τάση μεταξύ των αντιστάσεων όπως συζητείται στον παραπάνω σύνδεσμο.
Πώς να μετατρέψετε τις ψηφιακές τιμές από ADC σε πραγματικές τιμές τάσης;
Όταν χρησιμοποιείτε έναν μετατροπέα ADC για τη μέτρηση της αναλογικής τάσης, το αποτέλεσμα που λαμβάνεται από το MCU θα είναι σε ψηφιακό. Για παράδειγμα, σε έναν μικροελεγκτή 10-bit 5V όταν η πραγματική τάση που πρόκειται να μετρηθεί είναι 4V, το MCU θα το διαβάσει ως 820, μπορούμε και πάλι να χρησιμοποιήσουμε τους παραπάνω τύπους για να μετατρέψουμε το 820 σε 4V έτσι ώστε να μπορούμε να το χρησιμοποιήσουμε στο υπολογισμοί. Ας διασταυρώσουμε το ίδιο.
(Ανάλυση ADC / Τάση λειτουργίας) = (Ψηφιακή τιμή ADC / Πραγματική τιμή τάσης) Πραγματική τιμή τάσης = Ψηφιακή τιμή ADC * (Ανάλυση τάσης λειτουργίας / ADC) = 820 * (5/1023) = 4.007 = ~ 4V
Ελπίζω να έχετε μια δίκαιη ιδέα του ADC και πώς να τα χρησιμοποιήσετε για τις εφαρμογές σας. Εάν έχετε κάποιο πρόβλημα στην κατανόηση των εννοιών, μπορείτε να δημοσιεύσετε τα σχόλιά σας παρακάτω ή να τα γράψετε στα φόρουμ μας.