Σε αυτό το έργο πρόκειται να φτιάξουμε ένα αμπερόμετρο χαμηλής εμβέλειας χρησιμοποιώντας μικροελεγκτή ATMEGA8. Στο ATMEGA8, θα χρησιμοποιήσουμε τη λειτουργία ADC 10bit (Αναλογική σε ψηφιακή μετατροπή) για να το κάνουμε αυτό. Αν και έχουμε λίγους άλλους τρόπους για να πάρουμε την τρέχουσα παράμετρο από ένα κύκλωμα, θα χρησιμοποιήσουμε τη μέθοδο αντίστασης πτώσης, επειδή είναι ο ευκολότερος και απλούστερος τρόπος για να λάβουμε την τρέχουσα παράμετρο.
Σε αυτήν τη μέθοδο πρόκειται να περάσουμε το ρεύμα που έπρεπε να μετρηθεί σε μια μικρή αντίσταση, με αυτό έχουμε μια πτώση σε όλη την αντίσταση που σχετίζεται με το ρεύμα που διατρέχει. Αυτή η τάση σε αντίσταση τροφοδοτείται στο ATMEGA8 για μετατροπή ADC. Με αυτό θα έχουμε το ρεύμα σε ψηφιακή τιμή που θα εμφανίζεται σε οθόνη LCD 16x2.
Για αυτό θα χρησιμοποιήσουμε ένα κύκλωμα διαχωριστή τάσης. Θα τροφοδοτήσουμε το ρεύμα μέσω του πλήρους κλάδου αντίστασης. Το μεσαίο σημείο του κλάδου μεταφέρεται στη μέτρηση. Όταν οι τρέχουσες αλλαγές θα υπάρξει αλλαγή πτώσης στην αντίσταση που είναι γραμμική σε αυτήν. Έτσι με αυτό έχουμε μια τάση που αλλάζει με τη γραμμικότητα.
Τώρα σημαντικό που πρέπει να σημειωθεί εδώ είναι ότι η είσοδος που έχει ληφθεί από τον ελεγκτή για μετατροπή ADC είναι τόσο χαμηλή όσο 50 μAmp. Αυτό το φαινόμενο φόρτωσης του διαχωριστή τάσης με βάση την αντίσταση είναι σημαντικό καθώς το ρεύμα που αντλείται από το Vout του διαχωριστή τάσης αυξάνει το ποσοστό σφάλματος αυξάνεται, προς το παρόν δεν χρειάζεται να ανησυχούμε για το φαινόμενο φόρτωσης.
Απαιτούμενα στοιχεία
Υλικό: ATMEGA8, τροφοδοτικό (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF πυκνωτής, 100nF πυκνωτής (4 τεμάχια), 100Ω αντίσταση (7 τεμάχια) ή 2.5Ω (2 τεμάχια), 100KΩ αντίσταση.
Λογισμικό: Atmel studio 6.1, progisp ή flash magic.
Διάγραμμα κυκλώματος και εξήγηση εργασίας
Η τάση στα R2 και R4 δεν είναι εντελώς γραμμική. θα είναι θορυβώδες. Για να φιλτράρετε τον θόρυβο, οι πυκνωτές τοποθετούνται σε κάθε αντίσταση στο κύκλωμα διαχωριστή όπως φαίνεται στο σχήμα.
Στο ATMEGA8, μπορούμε να δώσουμε αναλογική είσοδο σε οποιοδήποτε από τα τέσσερα κανάλια του PORTC, δεν έχει σημασία ποιο κανάλι επιλέγουμε καθώς όλα είναι ίδια. Θα επιλέξουμε το κανάλι 0 ή το PIN0 του PORTC. Στο ATMEGA8, το ADC έχει ανάλυση 10 bit, οπότε ο ελεγκτής μπορεί να ανιχνεύσει μια ελάχιστη αλλαγή του Vref / 2 ^ 10, οπότε αν η τάση αναφοράς είναι 5V λαμβάνουμε μια αύξηση ψηφιακής εξόδου για κάθε 5/2 ^ 10 = 5mV. Έτσι, για κάθε αύξηση 5mV στην είσοδο, θα έχουμε μια αύξηση στην ψηφιακή έξοδο.
Τώρα πρέπει να ορίσουμε το μητρώο ADC με βάση τους ακόλουθους όρους:
1. Πρώτα απ 'όλα πρέπει να ενεργοποιήσουμε τη δυνατότητα ADC στο ADC.
2. Εδώ θα λάβετε μια μέγιστη τάση εισόδου για μετατροπή ADC είναι + 5V. Έτσι μπορούμε να ρυθμίσουμε τη μέγιστη τιμή ή αναφορά του ADC σε 5V.
3. Ο ελεγκτής διαθέτει δυνατότητα μετατροπής σκανδάλης που σημαίνει ότι η μετατροπή ADC πραγματοποιείται μόνο μετά από εξωτερική σκανδάλη, καθώς δεν θέλουμε να χρειαστεί να ρυθμίσουμε τα μητρώα ώστε το ADC να λειτουργεί σε συνεχή λειτουργία ελεύθερης λειτουργίας.
4. Για κάθε ADC, η συχνότητα μετατροπής (αναλογική τιμή σε ψηφιακή τιμή) και η ακρίβεια της ψηφιακής εξόδου είναι αντιστρόφως ανάλογες. Έτσι, για καλύτερη ακρίβεια της ψηφιακής εξόδου πρέπει να επιλέξουμε μικρότερη συχνότητα. Για κανονικό ρολόι ADC ρυθμίζουμε την προπώληση του ADC στη μέγιστη τιμή (2). Δεδομένου ότι χρησιμοποιούμε το εσωτερικό ρολόι 1MHZ, το ρολόι ADC θα είναι (1000000/2).
Αυτά είναι τα μόνα τέσσερα πράγματα που πρέπει να γνωρίζουμε για να ξεκινήσουμε με το ADC.
Όλα τα παραπάνω τέσσερα χαρακτηριστικά ορίζονται από δύο καταχωρητές,
ΚΟΚΚΙΝΟ (ADEN): Αυτό το bit πρέπει να ρυθμιστεί για την ενεργοποίηση της δυνατότητας ADC του ATMEGA.
ΜΠΛΕ (REFS1, REFS0): Αυτά τα δύο bit χρησιμοποιούνται για τον καθορισμό της τάσης αναφοράς (ή της μέγιστης τάσης εισόδου που πρόκειται να δώσουμε). Επειδή θέλουμε να έχουμε τάση αναφοράς 5V, πρέπει να ρυθμιστεί το REFS0 από τον πίνακα.
ΚΙΤΡΙΝΟ (ADFR): Αυτό το bit πρέπει να ρυθμιστεί ώστε το ADC να λειτουργεί συνεχώς (λειτουργία ελεύθερης λειτουργίας).
PINK (MUX0-MUX3): Αυτά τα τέσσερα bits προορίζονται για το κανάλι εισόδου. Δεδομένου ότι πρόκειται να χρησιμοποιήσουμε ADC0 ή PIN0, δεν χρειάζεται να ορίσουμε bits όπως στον πίνακα.
BROWN (ADPS0-ADPS2): αυτά τα τρία bits είναι για τη ρύθμιση της προεπιλογής για ADC. Δεδομένου ότι χρησιμοποιούμε ένα πρόβατο 2, πρέπει να ορίσουμε ένα bit.
DARK GREEN (ADSC): αυτό το bit έχει ρυθμιστεί για να ξεκινήσει η μετατροπή το ADC. Αυτό το bit μπορεί να απενεργοποιηθεί στο πρόγραμμα όταν πρέπει να σταματήσουμε τη μετατροπή.