- Απαιτούμενα στοιχεία:
- Διάγραμμα κυκλώματος:
- Arduino Uno:
- LCD 16x2:
- Έννοια του χρωματικού κώδικα αντίστασης:
- Υπολογισμός αντίστασης χρησιμοποιώντας μετρητή Arduino Ohm:
- Επεξήγηση κώδικα:
Είναι δύσκολο να διαβάσουμε χρωματικούς κωδικούς στις αντιστάσεις για να βρούμε την αντίστασή του. Για να ξεπεράσουμε τη δυσκολία εύρεσης της τιμής αντίστασης, πρόκειται να φτιάξουμε έναν απλό μετρητή Ohm χρησιμοποιώντας το Arduino. Η βασική αρχή αυτού του έργου είναι ένα Voltage Divider Network. Η τιμή της άγνωστης αντίστασης εμφανίζεται στην οθόνη LCD 16 * 2. Αυτό το έργο χρησιμεύει επίσης ως οθόνη LCD 16 * 2 με διασύνδεση με το Arduino.
Απαιτούμενα στοιχεία:
- Arduino Uno
- Οθόνη LCD 16 * 2
- Ποτενσιόμετρο (1 κιλό Ohm)
- Αντιστάσεις
- Ψωμί
- Καλώδια αλτών
Διάγραμμα κυκλώματος:
Arduino Uno:
Το Arduino Uno είναι ένας πίνακας μικροελεγκτή ανοιχτού κώδικα που βασίζεται στον μικροελεγκτή ATmega328p. Διαθέτει 14 ψηφιακούς ακροδέκτες (εκ των οποίων 6 ακίδες μπορούν να χρησιμοποιηθούν ως έξοδοι PWM), 6 αναλογικές εισόδους, ρυθμιστές τάσης επί του σκάφους κ.λπ. Το Arduino Uno διαθέτει 32KB μνήμης flash, 2KB SRAM και 1KB EEPROM. Λειτουργεί με συχνότητα ρολογιού 16MHz. Το Arduino Uno υποστηρίζει επικοινωνία Serial, I2C, SPI για επικοινωνία με άλλες συσκευές. Ο παρακάτω πίνακας δείχνει την τεχνική προδιαγραφή του Arduino Uno.
Μικροελεγκτής | ATmega328p |
Τάση λειτουργίας | 5V |
Τάση εισόδου | 7-12V (συνιστάται) |
Ψηφιακές καρφίτσες εισόδου / εξόδου | 14 |
Αναλογικές καρφίτσες | 6 |
Μνήμη Flash | 32KB |
SRAM | 2KB |
EEPROM | 1KB |
Ταχύτητα ρολογιού |
16MHz |
LCD 16x2:
Η οθόνη LCD 16 * 2 είναι μια ευρέως χρησιμοποιούμενη οθόνη για ενσωματωμένες εφαρμογές. Ακολουθεί η σύντομη εξήγηση σχετικά με τις καρφίτσες και τη λειτουργία της οθόνης LCD 16 * 2. Υπάρχουν δύο πολύ σημαντικοί καταχωρητές μέσα στην οθόνη LCD. Είναι καταχωρητής δεδομένων και καταχωρητής εντολών. Ο καταχωρητής εντολών χρησιμοποιείται για την αποστολή εντολών όπως καθαρή οθόνη, δρομέας στο σπίτι κ.λπ., ο καταχωρητής δεδομένων χρησιμοποιείται για την αποστολή δεδομένων που θα εμφανίζονται σε οθόνη LCD 16 * 2. Στον παρακάτω πίνακα εμφανίζεται η περιγραφή των 16 * 2 lcd.
Καρφίτσα |
Σύμβολο |
Ι / Ο |
Περιγραφή |
1 |
Vss |
- |
Εδαφος |
2 |
Vdd |
- |
+5V τροφοδοτικό |
3 |
Θεω |
- |
Τροφοδοσία για έλεγχο της αντίθεσης |
4 |
RS |
Εγώ |
RS = 0 για το μητρώο εντολών, RS = 1 για μητρώο δεδομένων |
5 |
RW |
Εγώ |
R / W = 0 για εγγραφή, R / W = 1 για ανάγνωση |
6 |
μι |
Ι / Ο |
επιτρέπω |
7 |
Δ0 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit (LSB) |
8 |
Δ1 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
9 |
Δ2 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
10 |
Δ3 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
11 |
Δ4 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
12 |
Δ5 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
13 |
Δ6 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit |
14 |
Δ7 |
Ι / Ο |
Δίαυλος δεδομένων 8-bit (MSB) |
15 |
ΕΝΑ |
- |
+ 5V για οπίσθιο φωτισμό |
16 |
κ |
- |
Εδαφος |
Έννοια του χρωματικού κώδικα αντίστασης:
Για να προσδιορίσουμε την τιμή της αντίστασης μπορούμε να χρησιμοποιήσουμε τον παρακάτω τύπο.
R = {(AB * 10 c) Ω ± Τ%}
Οπου
A = Τιμή του χρώματος στην πρώτη ζώνη.
B = Τιμή του χρώματος στη δεύτερη ζώνη.
C = Τιμή του χρώματος στην τρίτη ζώνη.
T = Τιμή του χρώματος στην τέταρτη ζώνη.
Ο παρακάτω πίνακας δείχνει τον κωδικό χρώματος των αντιστάσεων.
Χρώμα |
Αριθμητική τιμή του χρώματος |
Συντελεστής πολλαπλασιασμού (10 γ) |
Τιμή ανοχής (T) |
Μαύρος |
0 |
10 0 |
- |
καφέ |
1 |
10 1 |
± 1% |
το κόκκινο |
2 |
10 2 |
± 2% |
Πορτοκάλι |
3 |
10 3 |
- |
Κίτρινος |
4 |
10 4 |
- |
Πράσινος |
5 |
10 5 |
- |
Μπλε |
6 |
10 6 |
- |
Βιολέτα |
7 |
10 7 |
- |
Γκρί |
8 |
10 8 |
- |
λευκό |
9 |
10 9 |
- |
Χρυσός |
- |
10 -1 |
± 5% |
Ασήμι |
- |
10 -2 |
± 10% |
Χωρίς συγκρότημα |
- |
- |
± 20% |
Για παράδειγμα, εάν οι κωδικοί χρώματος είναι Καφέ - Πράσινο - Κόκκινο - Ασημί, η τιμή της αντίστασης υπολογίζεται ως, Καφέ = 1 Πράσινο = 5 Κόκκινο = 2 Ασημί = ± 10%
Από τις τρεις πρώτες μπάντες, R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
Η τέταρτη ζώνη δείχνει ανοχή ± 10%
10% των 1500 = 150 Για + 10 τοις εκατό, η τιμή είναι 1500 + 150 = 1650Ω Για - 10 τοις εκατό, η τιμή είναι 1500 -150 = 1350Ω
Επομένως, η πραγματική τιμή αντίστασης μπορεί να κυμαίνεται μεταξύ 1350Ω έως 1650Ω.
Για να το καταστήσετε πιο βολικό εδώ είναι ο Υπολογιστής κωδικού χρώματος αντίστασης όπου χρειάζεται μόνο να εισαγάγετε το χρώμα των δακτυλίων στην αντίσταση και θα λάβετε την τιμή αντίστασης.
Υπολογισμός αντίστασης χρησιμοποιώντας μετρητή Arduino Ohm:
Η λειτουργία αυτού του μετρητή αντίστασης είναι πολύ απλή και μπορεί να εξηγηθεί χρησιμοποιώντας ένα απλό δίκτυο διαχωριστή τάσης που φαίνεται παρακάτω.
Από το δίκτυο διαχωριστή τάσης των αντιστάσεων R1 και R2, Vout = Vin * R2 / (R1 + R2)
Από την παραπάνω εξίσωση, μπορούμε να συμπεράνουμε την τιμή του R2 ως
R2 = Vout * R1 / (Vin - Vout)
Όπου R1 = γνωστή αντίσταση
R2 = Άγνωστη αντίσταση
Vin = τάση που παράγεται στον πείρο 5V του Arduino
Vout = τάση στο R2 σε σχέση με τη γείωση.
Σημείωση: η τιμή της γνωστής αντίστασης (R1) που επιλέχθηκε είναι 3,3KΩ, αλλά οι χρήστες θα πρέπει να την αντικαταστήσουν με την τιμή αντίστασης της αντίστασης που έχουν επιλέξει.
Αν λοιπόν πάρουμε την τιμή της τάσης σε άγνωστη αντίσταση (Vout), μπορούμε εύκολα να υπολογίσουμε την άγνωστη αντίσταση R2. Εδώ έχουμε διαβάσει την τιμή τάσης Vout χρησιμοποιώντας τον αναλογικό πείρο A0 (δείτε το διάγραμμα κυκλώματος) και μετατρέψαμε αυτές τις ψηφιακές τιμές (0 -1023) σε τάση όπως εξηγείται στον παρακάτω κώδικα.
Εάν η τιμή της γνωστής αντίστασης είναι πολύ μεγαλύτερη ή μικρότερη από την άγνωστη αντίσταση, το σφάλμα θα είναι μεγαλύτερο. Συνιστάται λοιπόν να διατηρείτε τη γνωστή τιμή αντίστασης πιο κοντά στην άγνωστη αντίσταση.
Επεξήγηση κώδικα:
Το πλήρες πρόγραμμα Arduino και το Demo Video για αυτό το έργο δίνονται στο τέλος αυτού του έργου. Ο κωδικός χωρίζεται σε μικρά μικρά κομμάτια και εξηγείται παρακάτω.
Σε αυτό το μέρος του κώδικα, θα καθορίσουμε τους ακροδέκτες στους οποίους η οθόνη LCD 16 * 2 είναι συνδεδεμένη στο Arduino. Ο ακροδέκτης RS 16 * 2 lcd συνδέεται με τον ψηφιακό ακροδέκτη 2 του arduino. Η ενεργοποίηση ακροδέκτη 16 * 2 lcd είναι συνδεδεμένη με τον ψηφιακό ακροδέκτη 3 του Arduino. Οι καρφίτσες δεδομένων (D4-D7) 16 * 2 lcd συνδέονται με ψηφιακές ακίδες 4,5,6,7 του Arduino.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
Σε αυτό το μέρος του κώδικα, ορίζουμε ορισμένες μεταβλητές που χρησιμοποιούνται στο πρόγραμμα. Το Vin είναι η τάση που παρέχεται από τον πείρο arduino 5V. Vout είναι η τάση στην αντίσταση R2 σε σχέση με τη γείωση.
Το R1 είναι η τιμή της γνωστής αντίστασης. Το R2 είναι η τιμή της άγνωστης αντίστασης.
int Vin = 5; // τάση στον ακροδέκτη 5V του flo arduino // τάση στον πείρο A0 του arduino float R1 = 3300; // τιμή του γνωστού πλωτήρα αντίστασης R2 = 0; // τιμή άγνωστης αντίστασης
Σε αυτό το μέρος του κώδικα, θα αρχικοποιήσουμε την οθόνη 16 * 2 lcd. Οι εντολές δίνονται σε οθόνη 16 * 2 lcd για διαφορετικές ρυθμίσεις, όπως καθαρή οθόνη, οθόνη στο δρομέα που αναβοσβήνει κλπ
lcd.begin (16,2);
Σε αυτό το μέρος του κώδικα, η αναλογική τάση στην αντίσταση R2 (A0 pin) μετατρέπεται σε ψηφιακή τιμή (0 έως 1023) και αποθηκεύεται σε μια μεταβλητή.
a2d_data = analogRead (A0);
Σε αυτό το μέρος του κώδικα, η ψηφιακή τιμή (0 έως 1023) μετατρέπεται σε τάση για περαιτέρω υπολογισμούς.
buffer = a2d_data * Vin; Vout = (buffer) / 1024.0;
Το Arduino Uno ADC έχει ανάλυση 10-bit (έτσι οι ακέραιες τιμές από 0 - 2 ^ 10 = 1024 τιμές). Αυτό σημαίνει ότι θα αντιστοιχίσει τις τάσεις εισόδου μεταξύ 0 και 5 βολτ σε ακέραιες τιμές μεταξύ 0 και 1023. Επομένως, αν πολλαπλασιάσουμε την είσοδο anlogValue σε (5/1024), τότε λαμβάνουμε την ψηφιακή τιμή της τάσης εισόδου. Μάθετε εδώ πώς να χρησιμοποιείτε την είσοδο ADC στο Arduino.
Σε αυτό το μέρος του κώδικα, η πραγματική τιμή της άγνωστης αντίστασης υπολογίζεται χρησιμοποιώντας τη διαδικασία όπως εξηγείται παραπάνω.
buffer = Vout / (Vin-Vout); R2 = R1 * buffer;
Σε αυτό το μέρος του κώδικα, η τιμή της άγνωστης αντίστασης εκτυπώνεται σε οθόνη 16 * 2 lcd.
lcd.setCursor (4,0); lcd.print ("ohm meter"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.print (R2);
Αυτό μπορούμε εύκολα να υπολογίσουμε την αντίσταση ενός άγνωστου αντιστάτη χρησιμοποιώντας το Arduino. Ελέγξτε επίσης:
- Μετρητής συχνότητας Arduino
- Μετρητής χωρητικότητας Arduino