Πίνακας περιεχομένων:

Arduino και το TI ADS1110 16-bit ADC: 6 βήματα
Arduino και το TI ADS1110 16-bit ADC: 6 βήματα

Βίντεο: Arduino και το TI ADS1110 16-bit ADC: 6 βήματα

Βίντεο: Arduino και το TI ADS1110 16-bit ADC: 6 βήματα
Βίντεο: Getting Started with ADC Functionality of ESP32 using MicroPython 2024, Ιούλιος
Anonim
Arduino και το TI ADS1110 16-bit ADC
Arduino και το TI ADS1110 16-bit ADC

Σε αυτό το σεμινάριο εξετάζουμε τη χρήση του Arduino για εργασία με το Texas Instruments ADS1110-ένα απίστευτα μικροσκοπικό αλλά χρήσιμο IC μετατροπέα αναλογικού-ψηφιακού μετατροπέα 16-bit.

Μπορεί να λειτουργήσει μεταξύ 2,7 και 5,5 V, οπότε είναι επίσης καλό για Arduino Due και άλλους πίνακες ανάπτυξης χαμηλότερης τάσης. Πριν συνεχίσετε περαιτέρω, κάντε λήψη του φύλλου δεδομένων (pdf), καθώς θα είναι χρήσιμο και αναφέρεται σε αυτό το σεμινάριο. Το ADS1110 σας δίνει την επιλογή ενός πιο ακριβούς ADC από αυτόν που προσφέρουν οι 10-bit ADC του Arduino-και είναι σχετικά εύκολο στη χρήση. Ωστόσο, είναι διαθέσιμο μόνο ως γυμνό μέρος στο SOT23-6.

Βήμα 1:

Εικόνα
Εικόνα

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

Όπως μπορείτε να δείτε στην παραπάνω φωτογραφία, το δικό μας φέρει την ένδειξη "EDO" που ταιριάζει με τη διεύθυνση λεωφορείου 1001000 ή 0x48h. Και με τα παραδείγματα κυκλωμάτων χρησιμοποιήσαμε αντιστάσεις έλξης 10kΩ στο δίαυλο I2C.

Μπορείτε να χρησιμοποιήσετε το ADS1110 είτε ως μονόκλινο είτε ως διαφορικό ADC-Αλλά πρώτα πρέπει να εξετάσουμε τον καταχωρητή διαμόρφωσης που χρησιμοποιείται για τον έλεγχο διαφόρων χαρακτηριστικών και τον καταχωρητή δεδομένων.

Βήμα 2: Καταχώριση διαμόρφωσης

Μεταβείτε στη σελίδα έντεκα του φύλλου δεδομένων. Ο καταχωρητής διαμόρφωσης έχει μέγεθος ένα byte και καθώς το ADS1110 επανέρχεται σε έναν κύκλο ισχύος-πρέπει να επαναφέρετε τον καταχωρητή εάν οι ανάγκες σας είναι διαφορετικές από τις προεπιλεγμένες. Το φύλλο δεδομένων το γράφει πολύ προσεκτικά … τα bit 0 και 1 καθορίζουν τη ρύθμιση κέρδους για το PGA (προγραμματιζόμενος ενισχυτής κέρδους).

Εάν απλά μετράτε τάσεις ή πειραματίζεστε, αφήστε τα μηδενικά για κέρδος 1V/V. Στη συνέχεια, ο ρυθμός δεδομένων για το ADS1110 ελέγχεται με δυαδικά ψηφία 2 και 3. Εάν έχετε ενεργοποιήσει τη συνεχή δειγματοληψία, αυτό καθορίζει τον αριθμό δειγμάτων ανά δευτερόλεπτο που λαμβάνονται από το ADC.

Μετά από κάποιο πειραματισμό με ένα Arduino Uno, διαπιστώσαμε ότι οι τιμές που επιστρέφονταν από το ADC ήταν λίγο μακριά όταν χρησιμοποιούσαμε τον ταχύτερο ρυθμό, οπότε αφήστε το ως 15 SPS εκτός εάν απαιτείται διαφορετικά. Το bit 4 ορίζει είτε συνεχή δειγματοληψία (0) είτε εφάπαξ δειγματοληψία (1). Αγνοήστε τα bit 5 και 6, ωστόσο ορίζονται πάντα ως 0.

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

Βήμα 3: Καταχώριση δεδομένων

Καθώς το ADS1110 είναι ADC 16-bit, επιστρέφει τα δεδομένα σε δύο byte-και στη συνέχεια ακολουθεί με την τιμή του καταχωρητή διαμόρφωσης. Έτσι, εάν ζητήσετε τρία byte, ολόκληρη η παρτίδα επιστρέφει. Τα δεδομένα είναι σε μορφή "συμπληρώματος δύο", η οποία είναι μια μέθοδος χρήσης υπογεγραμμένων αριθμών με δυαδικό.

Η μετατροπή αυτών των δύο byte γίνεται με απλά μαθηματικά. Κατά τη δειγματοληψία σε 15 SPS, η τιμή που επιστρέφεται από το ADS1110 (όχι η τάση) πέφτει μεταξύ -32768 και 32767. Το υψηλότερο byte της τιμής πολλαπλασιάζεται με 256, στη συνέχεια προστίθεται στο χαμηλότερο byte -το οποίο στη συνέχεια πολλαπλασιάζεται με 2.048 και τέλος διαιρούμενο με 32768. Μην πανικοβάλλεστε, καθώς το κάνουμε αυτό στο επερχόμενο σκίτσο παραδείγματος.

Βήμα 4: Λειτουργία ADC μονής λήξης

Λειτουργία ADC μονής λήξης
Λειτουργία ADC μονής λήξης

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

Μην ξεχνάτε τις αντιστάσεις έλξης 10kΩ στο δίαυλο I2C. Το ακόλουθο σκίτσο χρησιμοποιεί το ADS1110 στην προεπιλεγμένη λειτουργία και επιστρέφει απλώς την μετρημένη τάση:

// Παράδειγμα 53.1 - Βολτόμετρο μονής όψης ADS1110 (0 ~ 2.048VDC) #συμπεριλάβετε το "Wire.h" #καθορίστε τις τάσεις πλωτήρα διαφημίσεων1110 0x48, δεδομένα. byte highbyte, lowbyte, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); ενώ (Wire.available ()) // βεβαιωθείτε ότι όλα τα δεδομένα έρχονται στο {highbyte = Wire.read (); // υψηλό byte * B11111111 lowbyte = Wire.read (); // low byte configRegister = Wire.read (); }

δεδομένα = highbyte * 256;

δεδομένα = δεδομένα + lowbyte; Serial.print ("Δεδομένα >>"); Serial.println (δεδομένα, DEC); Serial.print ("Τάση >>"); τάση = δεδομένα * 2.048; τάση = τάση / 32768.0; Serial.print (τάση, DEC); Serial.println ("V"); καθυστέρηση (1000)? }

Βήμα 5:

Εικόνα
Εικόνα

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

Εάν πρέπει να αλλάξετε το κέρδος του εσωτερικού προγραμματιζόμενου ενισχυτή κέρδους του ADC - θα χρειαστεί να γράψετε ένα νέο byte στο μητρώο διαμόρφωσης χρησιμοποιώντας:

Wire.beginTransmission (ads1110); Wire.write (byte διαμόρφωσης); Wire.endTransmission ();

πριν ζητήσετε τα δεδομένα ADC. Αυτό θα ήταν 0x8D, 0x8E ή 0x8F για τιμές κέρδους 2, 4 και 8 αντίστοιχα - και χρησιμοποιήστε 0x8C για να επαναφέρετε το ADS1110 στην προεπιλογή.

Βήμα 6: Διαφορική λειτουργία ADC

Διαφορική λειτουργία ADC
Διαφορική λειτουργία ADC

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

Πρέπει να σημειώσουμε εδώ (και στο φύλλο δεδομένων) ότι το ADS1110 δεν μπορεί να δεχθεί αρνητικές τάσεις σε καμία από τις εισόδους. Μπορείτε να χρησιμοποιήσετε το προηγούμενο σκίτσο για τα ίδια αποτελέσματα- και η προκύπτουσα τάση θα είναι η τιμή του Vin- αφαιρεθεί από το Vin+. Για παράδειγμα, εάν είχατε 2 V στο Vin+ και 1 V στο Vin- η προκύπτουσα τάση θα ήταν 1 V (με το κέρδος ρυθμισμένο στο 1).

Για άλλη μια φορά ελπίζουμε να σας φάνηκε αυτό που σας ενδιαφέρει και πιθανώς χρήσιμο. Αυτή η ανάρτηση σας έφερε το pmdway.com - τα πάντα για κατασκευαστές και λάτρεις των ηλεκτρονικών ειδών, με δωρεάν παράδοση σε όλο τον κόσμο.

Συνιστάται: