Σε αυτό το σεμινάριο παρουσιάζουμε την έννοια του ADC (Αναλογική σε ψηφιακή μετατροπή) στο ARDUINO UNO. Ο πίνακας Arduino διαθέτει έξι κανάλια ADC, όπως φαίνεται στο παρακάτω σχήμα. Μεταξύ αυτών οποιοδήποτε ή όλα αυτά μπορούν να χρησιμοποιηθούν ως είσοδοι για αναλογική τάση. Το Arduino Uno ADC έχει ανάλυση 10 bit (οπότε οι ακέραιες τιμές από (0- (2 ^ 10) 1023)). Αυτό σημαίνει ότι θα αντιστοιχίσει τις τάσεις εισόδου μεταξύ 0 και 5 βολτ σε ακέραιες τιμές μεταξύ 0 και 1023. Έτσι για κάθε (5/1024 = 4,9mV) ανά μονάδα.
Σε όλα αυτά θα συνδέσουμε ένα ποτενσιόμετρο ή ένα δοχείο στο κανάλι «A0» και θα δείξουμε το αποτέλεσμα ADC σε μια απλή οθόνη. Οι απλές οθόνες είναι μονάδες οθόνης 16x1 και 16x2. Η μονάδα οθόνης 16x1 θα έχει 16 χαρακτήρες και είναι σε μία γραμμή. Η 16x2 θα έχει 32 χαρακτήρες συνολικά 16in 1 ης γραμμής και ένα άλλο 16 σε 2 nd γραμμή. Εδώ πρέπει να καταλάβουμε ότι σε κάθε χαρακτήρα υπάρχουν 5x10 = 50 εικονοστοιχεία, οπότε για να εμφανιστεί ένας χαρακτήρας και τα 50 εικονοστοιχεία πρέπει να λειτουργούν μαζί, αλλά δεν χρειάζεται να ανησυχούμε γι 'αυτό γιατί υπάρχει ένας άλλος ελεγκτής (HD44780) στη μονάδα οθόνης που δουλειά για τον έλεγχο των pixel (μπορείτε να το δείτε σε μονάδα LCD, είναι το μαύρο μάτι στο πίσω μέρος).
Απαιτούμενα στοιχεία
Υλικό: ARDUINO UNO, τροφοδοτικό (5v), JHD_162ALCD (16x2LCD), πυκνωτής 100uF, δοχείο 100KΩ ή ποτενσιόμετρο, πυκνωτής 100nF.
Λογισμικό: arduino IDE (Arduino nightly)
Διάγραμμα κυκλώματος και επεξήγηση
Σε LCD 16x2 υπάρχουν 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
PIN3 ή VEE στη γείωση (δίνει τη μέγιστη αντίθεση καλύτερα για έναν αρχάριο)
PIN4 ή RS (Επιλογή καταχώρησης) στο PIN8 του ARDUINO UNO
Το PIN5 ή το RW (Ανάγνωση / Εγγραφή) στη γείωση (θέτει την οθόνη LCD σε λειτουργία ανάγνωσης διευκολύνει την επικοινωνία για τον χρήστη)
PIN6 ή E (Ενεργοποίηση) στο PIN9 του ARDUINO UNO
PIN11 ή D4 έως PIN10 του ARDUINO UNO
PIN12 ή D5 έως PIN11 του ARDUINO UNO
PIN13 ή D6 έως PIN12 του ARDUINO UNO
PIN14 ή D7 έως PIN13 του ARDUINO UNO
Το ARDUINO IDE επιτρέπει στο χρήστη να χρησιμοποιεί LCD σε λειτουργία 4 bit. Αυτός ο τύπος επικοινωνίας επιτρέπει στο χρήστη να μειώσει τη χρήση των καρφιτσών στο ARDUINO, σε αντίθεση με άλλους, το ARDUINO δεν χρειάζεται να προγραμματιστεί ξεχωριστά για τη χρήση του σε λειτουργία 4 it, επειδή από προεπιλογή το ARDUINO έχει ρυθμιστεί για επικοινωνία σε λειτουργία 4 bit. Στο κύκλωμα μπορείτε να δείτε ότι χρησιμοποιήσαμε επικοινωνία 4bit (D4-D7).
Έτσι από απλή παρατήρηση από τον παραπάνω πίνακα συνδέουμε 6 ακροδέκτες LCD με ελεγκτή στον οποίο 4 ακίδες είναι καρφίτσες δεδομένων και 2 ακίδες για έλεγχο.
Η παραπάνω εικόνα δείχνει το διάγραμμα ircuit του ADC του ARDUINO UNO.
Εργαζόμενος
Για τη διασύνδεση μιας οθόνης LCD με το ARDUINO UNO, πρέπει να γνωρίζουμε μερικά πράγματα.
|
Πρώτα απ 'όλα, τα κανάλια UNO ADC έχουν μια προεπιλεγμένη τιμή αναφοράς 5V. Αυτό σημαίνει ότι μπορούμε να δώσουμε μια μέγιστη τάση εισόδου 5V για μετατροπή ADC σε οποιοδήποτε κανάλι εισόδου. Δεδομένου ότι ορισμένοι αισθητήρες παρέχουν τάσεις από 0-2.5V, με αναφορά 5V έχουμε μικρότερη ακρίβεια, επομένως έχουμε μια οδηγία που μας επιτρέπει να αλλάξουμε αυτήν την τιμή αναφοράς. Έτσι, για να αλλάξουμε την τιμή αναφοράς που έχουμε ("analogReference ();")
Ως προεπιλογή, έχουμε τη μέγιστη ανάλυση ADC πλακέτας που είναι 10 bits, αυτή η ανάλυση μπορεί να αλλάξει χρησιμοποιώντας οδηγίες ("analogReadResolution (bits);"). Αυτή η αλλαγή ανάλυσης μπορεί να είναι χρήσιμη για ορισμένες περιπτώσεις.
Τώρα, εάν οι παραπάνω συνθήκες έχουν οριστεί ως προεπιλεγμένες, μπορούμε να διαβάσουμε την τιμή από το ADC του καναλιού '0' καλώντας απευθείας τη λειτουργία "analogRead (pin);", εδώ "pin" αντιπροσωπεύει pin όπου συνδέσαμε το αναλογικό σήμα, στην περίπτωση αυτή να είσαι "Α0". Η τιμή από το ADC μπορεί να ληφθεί σε ακέραιο ως "int ADCVALUE = analogRead (A0). ", Με αυτήν την οδηγία η τιμή μετά την αποθήκευση του ADC στον ακέραιο" ADCVALUE ".
ΤΩΡΑ ας μιλήσουμε λίγο για LCD 16x2. Πρώτα πρέπει να ενεργοποιήσουμε το αρχείο κεφαλίδας ('#include
Δεύτερον, πρέπει να πούμε στον πίνακα ποιος τύπος LCD χρησιμοποιούμε εδώ. Δεδομένου ότι έχουμε τόσους πολλούς διαφορετικούς τύπους LCD (όπως 20x4, 16x2, 16x1 κ.λπ.). Εδώ πρόκειται να συνδέσουμε μια οθόνη LCD 16x2 με το UNO, ώστε να λάβουμε το "lcd.begin (16, 2);". Για 16x1 παίρνουμε "lcd.begin (16, 1);".
Σε αυτήν την οδηγία πρόκειται να πούμε στον πίνακα πού συνδέσαμε τους ακροδέκτες, Οι ακίδες που συνδέονται πρέπει να αναπαριστώνται με τη σειρά «RS, En, D4, D5, D6, D7». Αυτές οι ακίδες πρέπει να αντιπροσωπεύονται σωστά. Δεδομένου ότι συνδέσαμε το RS με το PIN0 και ούτω καθεξής όπως φαίνεται στο διάγραμμα κυκλώματος, αντιπροσωπεύουμε τον αριθμό pin για να επιβιβαστούμε ως "LiquidCrystal lcd (0, 1, 8, 9, 10, 11);".
Μετά από πάνω, το μόνο που μένει είναι να στείλουμε δεδομένα, τα δεδομένα που πρέπει να εμφανίζονται σε LCD θα πρέπει να γράφονται ως "cd.print (" hello, world! ");". Με αυτήν την εντολή, η οθόνη LCD εμφανίζει «γεια, κόσμος!».
Όπως μπορείτε να δείτε, δεν χρειάζεται να ανησυχούμε για κάτι άλλο, απλώς πρέπει να αρχικοποιήσουμε και το UNO θα είναι έτοιμο να εμφανίσει δεδομένα. Δεν χρειάζεται να γράψουμε βρόχο προγράμματος για να στείλουμε τα δεδομένα BYTE από το BYTE εδώ.
Η χρήση του ADC του Arduino Uno εξηγείται βήμα προς βήμα στο πρόγραμμα C που δίνεται παρακάτω.