Μετατροπή αναλογικού σε ψηφιακό (Αναλογική σειρά ανάγνωσης) - Arduino Basics

Μετατροπή αναλογικού σε ψηφιακό (Αναλογική σειρά ανάγνωσης) - Arduino Basics

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



Αναλογική ανάγνωση σειράς

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

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





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

Απαιτείται υλικό

Διοικητικό Συμβούλιο Arduino



Ποτενσιόμετρο 10 κιλών

Λειτουργία κυκλώματος

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

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

Το άλλο ελεύθερο ακραίο εξωτερικό ακροδέκτη συνδέεται με το + 5V της πλακέτας.

Αυτό που απομένει είναι το κεντρικό προβάδισμα του ποτ, το οποίο τερματίζεται στην αναλογική είσοδο του πίνακα Arduino.

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

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

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

Το Arduino περικλείει ένα εσωτερικό κύκλωμα μετατροπέα αναλογικού σε ψηφιακό που ερμηνεύει αποτελεσματικά την παραπάνω κίνηση του δοχείου και το μετατρέπει σε αριθμούς μεταξύ 0 και 1023.

Μια συγκεκριμένη θέση πάνω από τον άξονα του ποτ έχει ως αποτέλεσμα έναν αναλογικό αριθμό μεταξύ 0 και 1023 που μεταφράζεται από το Arduino, και για τις τελικές τιμές των 5V και μηδέν βολτ, οι ερμηνείες είναι προφανώς 0 και 1023.

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

Η αναμενόμενη εντολή έχει τη μορφή:

Serial.begin (9600)

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

int sensorValue = analogRead (A0)

Για να ολοκληρώσετε, εκτυπώστε αυτές τις πληροφορίες στο σειριακό σας παράθυρο ως δεκαδική τιμή (DEC). Μπορείτε να χρησιμοποιήσετε την εντολή Serial.println () για την εφαρμογή της στην τελευταία γραμμή κώδικα:

Serial.println (αισθητική τιμή, DEC)

Μετά από αυτό, κάθε φορά που ξεκινά το Serial Monitor στον τομέα ανάπτυξης Arduino (αυτό γίνεται κάνοντας κλικ στο κουμπί που βρίσκεται ακριβώς στη δεξιά πλευρά του κουμπιού «Μεταφόρτωση» στην κεφαλίδα του προγράμματος).

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

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

Ο κώδικας

/ *
AnalogReadSerial
Διαβάζει μια αναλογική είσοδο στον ακροδέκτη 0, εκτυπώνει το αποτέλεσμα στη σειριακή οθόνη.
Συνδέστε τον κεντρικό πείρο του ποτενσιόμετρου στον ακροδέκτη A0 και τους εξωτερικούς πείρους στο + 5V και γειώστε.

Αυτό το παράδειγμα κώδικα βρίσκεται στο δημόσιο τομέα.
* /

// η ρουτίνα εγκατάστασης εκτελείται μία φορά όταν πατήσετε επαναφορά:
άκυρη ρύθμιση () {
// αρχικοποίηση σειριακής επικοινωνίας στα 9600 bits ανά δευτερόλεπτο:
Serial.begin (9600)
}

// η ρουτίνα βρόχου τρέχει ξανά και ξανά για πάντα:
κενός βρόχος () {
// διαβάστε την είσοδο στον αναλογικό πείρο 0:
int sensorValue = analogRead (A0)
// εκτυπώστε την τιμή που διαβάζετε:
Serial.println (αισθητική τιμή)
καθυστέρηση (1) // καθυστέρηση μεταξύ ενδείξεων για σταθερότητα
}




Προηγούμενο: Παρακολούθηση κατάστασης ενός διακόπτη (Digital Read Serial) - Arduino Basics Επόμενο: Κύκλωμα ρυθμιζόμενης τάσης 1.25V έως 120V Mains