Σε αυτό το έργο πρόκειται να διασυνδέσουμε το LDR με τον μικροελεγκτή ATMEGA8 και με αυτό μπορούμε να μετρήσουμε την ΕΛΑΦΡΙΚΗ ΕΝΤΑΣΙΑ στην περιοχή. Στο ATMEGA8, πρόκειται να χρησιμοποιήσουμε τη λειτουργία ADC 10bit (Αναλογική σε ψηφιακή μετατροπή) για να μετρήσουμε την ένταση του φωτός.
Το Am LDR είναι ένας μορφοτροπέας που αλλάζει την αντίστασή του όταν το LIGHT πέφτει στην επιφάνειά του αλλάζει. Ο αισθητήρας LDR διατίθεται σε διάφορα μεγέθη και σχήματα.
Τα LDR είναι κατασκευασμένα από υλικά ημιαγωγών για να έχουν τη δυνατότητα να έχουν τις ευαίσθητες στο φως ιδιότητές τους. Υπάρχουν πολλοί τύποι υλικών που χρησιμοποιούνται, αλλά ένα που είναι δημοφιλές είναι το CADMIUM SULPHIDE (CdS). Αυτά τα LDR ή PHOTO REISTORS λειτουργούν με την αρχή της «αγωγιμότητας φωτογραφιών». Τώρα αυτό που λέει αυτή η αρχή είναι κάθε φορά που το φως πέφτει στην επιφάνεια του LDR (σε αυτήν την περίπτωση) η αγωγιμότητα του στοιχείου αυξάνεται ή με άλλα λόγια η αντίσταση του LDR μειώνεται όταν το φως πέφτει στην επιφάνεια του LDR. Αυτή η ιδιότητα της μείωσης της αντίστασης για το LDR επιτυγχάνεται επειδή είναι μια ιδιότητα του ημιαγωγού υλικού που χρησιμοποιείται στην επιφάνεια. Το LDR χρησιμοποιείται τις περισσότερες φορές για την ανίχνευση της παρουσίας φωτός ή για τη μέτρηση της έντασης του φωτός.
Υπάρχουν διαφορετικοί τύποι LDR όπως φαίνεται στο παραπάνω σχήμα και ο καθένας έχει διαφορετικές προδιαγραφές. Συνήθως ένα LDR θα έχει 1MΩ-2MΩ σε απόλυτο σκοτάδι, 10-20KΩ στα 10 LUX, 2-5KΩ στα 100 LUX. Η τυπική αντίσταση στο γράφημα LUX ενός LDR φαίνεται στο σχήμα.
Όπως φαίνεται στο παραπάνω σχήμα, η αντίσταση μεταξύ των δύο επαφών του αισθητήρα μειώνεται με την ένταση του φωτός ή η αγωγιμότητα μεταξύ των δύο επαφών του αισθητήρα αυξάνεται.
Τώρα για τη μετατροπή αυτής της αλλαγής αντίστασης σε αλλαγή τάσης, πρόκειται να χρησιμοποιήσουμε κύκλωμα διαχωριστή τάσης. Σε αυτό το δίκτυο αντίστασης έχουμε μία σταθερή αντίσταση και άλλη μεταβλητή αντίσταση. Όπως φαίνεται στο σχήμα, το R1 εδώ είναι μια σταθερή αντίσταση και το R2 είναι αισθητήρας FORCE που λειτουργεί ως αντίσταση.
Το μεσαίο σημείο του κλάδου μεταφέρεται στη μέτρηση. Όταν αλλάζει η αντίσταση R2, ο Vout αλλάζει γραμμικά. Έτσι με αυτό έχουμε μια τάση που αλλάζει με το βάρος.
Τώρα σημαντικό που πρέπει να σημειωθεί εδώ είναι ότι η είσοδος που έχει ληφθεί από τον ελεγκτή για μετατροπή ADC είναι τόσο χαμηλή όσο 50 μAmp. Αυτό το φαινόμενο φόρτωσης του διαχωριστή τάσης με βάση την αντίσταση είναι σημαντικό καθώς το ρεύμα που αντλείται από το Vout του διαχωριστή τάσης αυξάνει το ποσοστό σφάλματος αυξάνεται, προς το παρόν δεν χρειάζεται να ανησυχούμε για το φαινόμενο φόρτωσης.
Αυτό που πρόκειται να κάνουμε εδώ είναι να πάρουμε δύο αντιστάσεις και να διαμορφώσουμε ένα κύκλωμα διαχωριστή έτσι ώστε για ένα VV 25Volts, να έχουμε 5Volt Vout. Επομένως, το μόνο που πρέπει να κάνουμε είναι να πολλαπλασιάσουμε την τιμή Vout με "5" στο πρόγραμμα για να λάβουμε την πραγματική τάση εισόδου.
Συστατικά
Υλικό: ATMEGA8, τροφοδοτικό (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF πυκνωτής, 100nF πυκνωτής (5 τεμάχια), 10KΩ αντίσταση, LDR (Light Dependent Resistor).
Λογισμικό: Atmel studio 6.1, progisp ή flash magic.
Διάγραμμα κυκλώματος και επεξήγηση εργασίας
Στο κύκλωμα το PORTD του ATMEGA8 συνδέεται με LCD θύρα δεδομένων. Σε LCD 16 * 2 υπάρχουν 16 ακίδες πάνω από όλα αν υπάρχει οπίσθιο φως, εάν δεν υπάρχει οπίσθιο φως θα υπάρχουν 14 ακίδες. Κάποιος μπορεί να τροφοδοτήσει ή να αφήσει τις πίσω ακίδες. Τώρα στις 14 ακίδες υπάρχουν 8 καρφίτσες δεδομένων (7-14 ή D0-D7), 2 καρφίτσες τροφοδοσίας (1 & 2 ή VSS & VDD ή gnd & + 5v), 3ος ακροδέκτης για έλεγχο αντίθεσης (VEE-ελέγχει πόσο παχιά πρέπει να είναι οι χαρακτήρες φαίνεται) και 3 ακίδες ελέγχου (RS & RW & E)
Στο κύκλωμα, μπορείτε να παρατηρήσετε ότι έχω πάρει μόνο δύο ακίδες ελέγχου. Το bit αντίθεσης και το READ / WRITE δεν χρησιμοποιούνται συχνά, ώστε να μπορούν να βραχυκυκλωθούν στη γείωση. Αυτό θέτει την οθόνη LCD σε υψηλότερη αντίθεση και λειτουργία ανάγνωσης. Πρέπει απλώς να ελέγξουμε ENABLE και RS καρφίτσες για να στείλουμε ανάλογα χαρακτήρες και δεδομένα.
Οι συνδέσεις για LCD δίνονται παρακάτω:
Γείωση PIN1 ή VSS ------------------
PIN2 ή VDD ή VCC ------------ + 5v power
PIN3 ή VEE --------------- γείωση (δίνει τη μέγιστη αντίθεση καλύτερα για έναν αρχάριο)
PIN4 ή RS (Επιλογή καταχώρησης) --------------- PB0 του uC
PIN5 ή RW (Ανάγνωση / Εγγραφή) ----------------- γείωση (θέτει την οθόνη LCD σε λειτουργία ανάγνωσης διευκολύνει την επικοινωνία για τον χρήστη)
PIN6 ή E (Ενεργοποίηση) ------------------- PB1 του uC
PIN7 ή D0 ----------------------------- PD0 του uC
PIN8 ή D1 ----------------------------- PD1 του uC
PIN9 ή D2 ----------------------------- PD2 του uC
PIN10 ή D3 ----------------------------- PD3 του uC
PIN11 ή D4 ----------------------------- PD4 του uC
PIN12 ή D5 ----------------------------- PD5 του uC
PIN13 ή D6 ----------------------------- PD6 του uC
PIN14 ή D7 ----------------------------- PD7 του uC
Στο κύκλωμα μπορείτε να δείτε ότι έχουμε χρησιμοποιήσει επικοινωνία 8bit (D0-D7), αλλά αυτό δεν είναι υποχρεωτικό, μπορούμε να χρησιμοποιήσουμε την επικοινωνία 4bit (D4-D7), αλλά με το πρόγραμμα επικοινωνίας 4 bit γίνεται λίγο περίπλοκο. Έτσι από απλή παρατήρηση από τον παραπάνω πίνακα συνδέουμε 10 ακίδες LCD με ελεγκτή, όπου 8 ακίδες είναι καρφίτσες δεδομένων και 2 ακίδες για έλεγχο.
Η τάση στο R2 δεν είναι εντελώς γραμμική. θα είναι θορυβώδες. Για να φιλτράρετε τους πυκνωτές θορύβου τοποθετούνται σε κάθε αντίσταση στο κύκλωμα διαχωριστή όπως φαίνεται στο σχήμα.
Στο 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 μπορεί να απενεργοποιηθεί στο πρόγραμμα όταν πρέπει να σταματήσουμε τη μετατροπή.
Έτσι, με αντίσταση LDR στην οθόνη LCD 16x2, μπορούμε να το αντιστοιχίσουμε με το γράφημα LUX για να λάβουμε την ένταση του φωτός.