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

Το Arduino AREF Pin: 6 βήματα
Το Arduino AREF Pin: 6 βήματα

Βίντεο: Το Arduino AREF Pin: 6 βήματα

Βίντεο: Το Arduino AREF Pin: 6 βήματα
Βίντεο: 6 ARDUINO ANALOG analogReference 2024, Ιούλιος
Anonim
Η καρφίτσα Arduino AREF
Η καρφίτσα Arduino AREF

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

Βήμα 1: Αναθεώρηση

Αναθεώρηση!
Αναθεώρηση!

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

Και όταν λέμε την τάση λειτουργίας - αυτή είναι η τάση που είναι διαθέσιμη στο Arduino μετά το κύκλωμα τροφοδοσίας. Για παράδειγμα, εάν έχετε έναν τυπικό πίνακα Arduino Uno και τον τρέχετε από την πρίζα USB - σίγουρα, υπάρχουν 5V διαθέσιμα στην πλακέτα από την πρίζα USB στον υπολογιστή ή στο διανομέα σας - αλλά η τάση μειώνεται ελαφρώς καθώς το ρεύμα περιστρέφεται γύρω από κύκλωμα προς τον μικροελεγκτή - ή η πηγή USB απλά δεν είναι στην αρχή.

Αυτό μπορεί εύκολα να αποδειχθεί συνδέοντας ένα Arduino Uno σε USB και βάζοντας ένα πολύμετρο για τη μέτρηση της τάσης στους ακροδέκτες 5V και GND. Ορισμένες πλακέτες θα επιστρέψουν τόσο χαμηλά όσο 4,8 V, μερικές υψηλότερες αλλά ακόμα κάτω από 5V. Έτσι, εάν πυροβολείτε για ακρίβεια, τροφοδοτήστε την πλακέτα σας από εξωτερική τροφοδοσία μέσω της πρίζας DC ή του πείρου Vin - όπως 9V DC. Στη συνέχεια, αφού περάσει από το κύκλωμα του ρυθμιστή ισχύος, θα έχετε ένα ωραίο 5V, για παράδειγμα την εικόνα.

Αυτό είναι σημαντικό καθώς η ακρίβεια των τιμών analogRead () επηρεάζεται από το να μην υπάρχει πραγματικό 5 V. Εάν δεν έχετε καμία επιλογή, μπορείτε να χρησιμοποιήσετε κάποια μαθηματικά στο σκίτσο σας για να αντισταθμίσετε την πτώση της τάσης. Για παράδειγμα, εάν η τάση σας είναι 4,8V - το εύρος analogRead () 0 ~ 1023 θα σχετίζεται με 0 ~ 4,8V και όχι 0 ~ 5V. Αυτό μπορεί να ακούγεται ασήμαντο, ωστόσο εάν χρησιμοποιείτε έναν αισθητήρα που επιστρέφει μια τιμή ως τάση (π.χ. ο αισθητήρας θερμοκρασίας TMP36) - η υπολογισμένη τιμή θα είναι λανθασμένη. Για λόγους ακρίβειας, χρησιμοποιήστε εξωτερικό τροφοδοτικό.

Βήμα 2: Γιατί το AnalogRead () επιστρέφει μια τιμή μεταξύ 0 και 1023;

Γιατί το AnalogRead () επιστρέφει μια τιμή μεταξύ 0 και 1023
Γιατί το AnalogRead () επιστρέφει μια τιμή μεταξύ 0 και 1023

Αυτό οφείλεται στην ανάλυση της ADC. Η ανάλυση (για αυτό το άρθρο) είναι ο βαθμός στον οποίο κάτι μπορεί να αναπαρασταθεί αριθμητικά. Όσο υψηλότερη είναι η ανάλυση, τόσο μεγαλύτερη είναι η ακρίβεια με την οποία μπορεί να αναπαρασταθεί κάτι. Μετράμε την ανάλυση με βάση τον αριθμό των δυαδικών ψηφίων ανάλυσης.

Για παράδειγμα, μια ανάλυση 1-bit θα επέτρεπε μόνο δύο (δύο στην ισχύ του ενός) τιμές-μηδέν και μία. Μια ανάλυση 2-bit θα επέτρεπε τέσσερις (δύο σε ισχύ δύο) τιμές-μηδέν, ένα, δύο και τρεις. Εάν προσπαθήσαμε να μετρήσουμε μια περιοχή πέντε βολτ με ανάλυση δύο δυαδικών ψηφίων και η μετρημένη τάση ήταν τέσσερα βολτ, το ADC μας θα επέστρεφε μια αριθμητική τιμή 3-καθώς τα τέσσερα βολτ πέφτουν μεταξύ 3,75 και 5V. Είναι πιο εύκολο να το φανταστεί κανείς με την εικόνα.

Έτσι, με το παράδειγμα μας ADC με ανάλυση 2-bit, μπορεί να αντιπροσωπεύει μόνο την τάση με τέσσερις πιθανές τιμές που προκύπτουν. Εάν η τάση εισόδου πέσει μεταξύ 0 και 1,25, το ADC επιστρέφει το αριθμητικό 0. εάν η τάση πέσει μεταξύ 1,25 και 2,5, το ADC επιστρέφει μια αριθμητική τιμή 1. Και ούτω καθεξής. Με το εύρος ADC του Arduino 0 ~ 1023-έχουμε 1024 πιθανές τιμές-ή 2 στη δύναμη των 10. Έτσι, τα Arduinos μας διαθέτουν ADC με ανάλυση 10 bit.

Βήμα 3: Τι είναι λοιπόν το AREF;

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

Για τους πιο δημοφιλείς πίνακες Arduino όπως οι πίνακες Uno, Mega, Duemilanove και Leonardo/Yún, η τάση λειτουργίας είναι 5V. Εάν έχετε πλακέτα Arduino Due, η τάση λειτουργίας είναι 3,3V. Εάν έχετε κάτι άλλο - ελέγξτε τη σελίδα προϊόντων Arduino ή ρωτήστε τον προμηθευτή του σκάφους σας.

Έτσι, εάν έχετε τάση αναφοράς 5V, κάθε μονάδα που επιστρέφεται με analogRead () αποτιμάται σε 0,00488 V. (Αυτό υπολογίζεται διαιρώντας το 1024 σε 5V). Τι γίνεται αν θέλουμε να μετρήσουμε τάσεις μεταξύ 0 και 2 ή 0 και 4.6; Πώς θα γνώριζε το ADC ποιο είναι το 100% της περιοχής τάσης μας;

Και εκεί βρίσκεται ο λόγος για τον πείρο AREF. AREF σημαίνει Αναλογική ΑΝΑΦΟΡΑ. Μας επιτρέπει να τροφοδοτούμε το Arduino με τάση αναφοράς από εξωτερικό τροφοδοτικό. Για παράδειγμα, εάν θέλουμε να μετρήσουμε τάσεις με μέγιστο εύρος 3,3V, θα τροφοδοτήσουμε ένα ωραίο ομαλό 3,3V στον πείρο AREF - ίσως από ένα IC ρυθμιστή τάσης.

Στη συνέχεια, κάθε βήμα του ADC θα αντιπροσωπεύει περίπου 3,22 millivolt (διαιρέστε το 1024 σε 3,3). Σημειώστε ότι η χαμηλότερη τάση αναφοράς που μπορείτε να έχετε είναι 1,1V. Υπάρχουν δύο μορφές AREF - εσωτερικές και εξωτερικές, οπότε ας τις ελέγξουμε.

Βήμα 4: Εξωτερικό AREF

Ένα εξωτερικό AREF είναι το σημείο όπου παρέχετε εξωτερική τάση αναφοράς στην πλακέτα Arduino. Αυτό μπορεί να προέρχεται από μια ρυθμιζόμενη παροχή ρεύματος ή εάν χρειάζεστε 3.3V μπορείτε να το πάρετε από την καρφίτσα των 3.3V του Arduino. Εάν χρησιμοποιείτε εξωτερικό τροφοδοτικό, βεβαιωθείτε ότι έχετε συνδέσει το GND με τον ακροδέκτη GND του Arduino. Or αν χρησιμοποιείτε την πηγή 3.3V του Arduno - απλώς εκτελέστε έναν βραχυκυκλωτήρα από τον πείρο 3.3V στον πείρο AREF.

Για να ενεργοποιήσετε το εξωτερικό AREF, χρησιμοποιήστε τα ακόλουθα σε κενή ρύθμιση ():

analogReference (EXTERNAL); // χρησιμοποιήστε το AREF για τάση αναφοράς

Αυτό θέτει την τάση αναφοράς σε ό, τι έχετε συνδέσει στον πείρο AREF - το οποίο φυσικά θα έχει τάση μεταξύ 1,1V και της τάσης λειτουργίας του πίνακα. Πολύ σημαντική σημείωση - όταν χρησιμοποιείτε εξωτερική αναφορά τάσης, πρέπει να ορίσετε την αναλογική αναφορά σε ΕΞΩΤΕΡΙΚΗ πριν χρησιμοποιήσετε το analogRead (). Αυτό θα σας εμποδίσει να βραχυκυκλώσετε την ενεργή εσωτερική τάση αναφοράς και τον πείρο AREF, ο οποίος μπορεί να βλάψει τον μικροελεγκτή στην πλακέτα. Εάν είναι απαραίτητο για την εφαρμογή σας, μπορείτε να επιστρέψετε στην τάση λειτουργίας του πίνακα για το AREF (δηλαδή - πίσω στην κανονική) με τα ακόλουθα

analogReference (DEFAULT);

Τώρα για να επιδείξετε εξωτερικό AREF στην εργασία. Χρησιμοποιώντας AREF 3,3V, το ακόλουθο σκίτσο μετρά την τάση από το A0 και εμφανίζει το ποσοστό του συνολικού AREF και την υπολογισμένη τάση:

#include "LiquidCrystal.h"

LiquidCrystal LCD (8, 9, 4, 5, 6, 7);

int analoginput = 0; // η αναλογική μας καρφίτσα

int analogamount = 0; // αποθηκεύει το ποσοστό float εισερχόμενης αξίας = 0; // χρησιμοποιείται για την αποθήκευση της ποσοστιαίας τιμής μας float voltage = 0; // χρησιμοποιείται για την αποθήκευση της τάσης

void setup ()

{lcd.begin (16, 2); analogReference (EXTERNAL); // χρησιμοποιήστε το AREF για τάση αναφοράς}

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

{lcd.clear (); analogamount = analogRead (analoginput); ποσοστό = (analogamount/1024,00)*100; τάση = αναλογική ποσότητα*3.222; // σε millivolts lcd.setCursor (0, 0); lcd.print ("% του AREF:"); lcd.print (ποσοστό, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (τάση, 2); καθυστέρηση (250)? }

Τα αποτελέσματα του παραπάνω σκίτσου φαίνονται στο βίντεο.

Βήμα 5: Εσωτερικό AREF

Οι μικροελεγκτές στους πίνακες Arduino μας μπορούν επίσης να δημιουργήσουν εσωτερική τάση αναφοράς 1,1V και μπορούμε να το χρησιμοποιήσουμε για εργασίες AREF. Απλώς χρησιμοποιήστε τη γραμμή:

analogReference (ΕΣΩΤΕΡΙΚΟ);

Για τους πίνακες Arduino Mega, χρησιμοποιήστε:

analogReference (INTERNAL1V1);

in void setup () και είστε εκτός λειτουργίας. Εάν διαθέτετε Arduino Mega, υπάρχει επίσης διαθέσιμη τάση αναφοράς 2,56V, η οποία ενεργοποιείται με:

analogReference (INTERNAL2V56);

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

συμπέρασμα

Η λειτουργία AREF σας δίνει μεγαλύτερη ευελιξία με τη μέτρηση αναλογικών σημάτων.

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

Συνιστάται: