Απλό κύκλωμα ψηφιακού Ohmmeter Arduino

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Σε αυτήν την ανάρτηση πρόκειται να κατασκευάσουμε ένα απλό ψηφιακό κύκλωμα ωμόμετρου χρησιμοποιώντας οθόνη LCD Arduino και 16x2. Θα διερευνήσουμε επίσης τις άλλες πιθανές ιδέες κυκλώματος χρησιμοποιώντας την ίδια ιδέα.

Στόχος κυκλώματος

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



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

Ας δούμε πώς να φτιάξουμε πρώτα ένα μετρητή ωμ και μετά θα μεταβούμε σε άλλες ιδέες κυκλώματος.



Πως δουλεύει

Κύκλωμα Arduino Ohmmeter

Το κύκλωμα αποτελείται από Arduino, μπορείτε να χρησιμοποιήσετε την αγαπημένη σας πλακέτα Arduino, μια οθόνη LCD 16x2 για να δείξετε την άγνωστη τιμή αντίστασης, ένα ποτενσιόμετρο για να ρυθμίσετε το επίπεδο αντίθεσης της οθόνης LCD. Χρησιμοποιούνται δύο αντιστάσεις, μία από τις οποίες είναι γνωστή τιμή αντίστασης και άλλη είναι άγνωστη τιμή αντίστασης.

Η αντίσταση είναι μια αναλογική λειτουργία, αλλά η τιμή που εμφανίζεται στην οθόνη LCD είναι η ψηφιακή λειτουργία. Επομένως, πρέπει να κάνουμε αναλογική σε ψηφιακή μετατροπή, ευτυχώς το Arduino έχει ενσωματωμένο μετατροπέα αναλογικού σε ψηφιακό μετατροπέα 10 bit.

Το 10-bit ADC μπορεί να διαφοροποιήσει 1024 επίπεδα διακριτής τάσης, 5 volt εφαρμόζονται σε 2 αντιστάσεις και το δείγμα τάσης λαμβάνεται μεταξύ των αντιστάσεων.

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

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

Πρωτότυπο συγγραφέα:

Arduino Digital Ohmmeter Prototype

Πρόγραμμα για μετρητή Ohm:

//-------------Program developed by R.Girish--------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
int analogPin=0
int x=0
float Vout=0
float R=10000 //Known Resistor value in Ohm
float resistor=0
float buffer=0
void setup()
{
lcd.begin(16,2)
lcd.setCursor(0,0)
lcd.print('----OHM METER---')
}
void loop()
{
x=analogRead(analogPin)
buffer=x*5
Vout=(buffer)/1024.0
buffer=(5/Vout)-1
resistor=R*buffer
lcd.setCursor(0,1)
lcd.print('R = ')
lcd.print(resistor)
lcd.print(' Ohm')
delay(3000)
}
//-------------Program developed by R.Girish--------//

ΣΗΜΕΙΩΣΗ: float R = 10000 // Γνωστή τιμή αντίστασης στο Ohm

Μπορείτε να αλλάξετε τη γνωστή τιμή αντίστασης στο κύκλωμα, αλλά αν το κάνετε, αλλάξτε και την τιμή στο πρόγραμμα.

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

Ομοίως, ισχύει και για αυτό το ωμόμετρο.

Εάν θέλετε να μετρήσετε την αντίσταση από 1K έως 50K ohm, η γνωστή αντίσταση των 10K ohm θα είναι αρκετή, αλλά αν μετρήσετε το εύρος Mega ohm ή λίγη περιοχή ohm θα λάβετε κάποιες ενδείξεις σκουπιδιών. Επομένως, είναι απαραίτητο να αλλάξετε την τιμή της γνωστής αντίστασης σε ένα κατάλληλο εύρος.

Στην επόμενη ενότητα αυτού του άρθρου, πρόκειται να μελετήσουμε το κύκλωμα οθόνης LCD για το ωμόμετρο και θα δούμε πώς να διαβάσουμε την τιμή του αισθητήρα (άγνωστη αντίσταση) στη σειριακή οθόνη.

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

Διάγραμμα κυκλώματος:

Κωδικός προγράμματος:

//-------------Program developed by R.Girish--------//
float th=7800 // Set resistance threshold in Ohms
int analogPin=0
int x=0
float Vout=0
float R=10000 //Known value Resistor in Ohm
float resistor=0
float buffer=0
int op=7
void setup()
{
Serial.begin(9600)
pinMode(op,OUTPUT)
digitalWrite(op,LOW)
}
void loop()
{
x=analogRead(analogPin)
buffer=x*5
Vout=(buffer)/1024.0
buffer=(5/Vout)-1
resistor=R*buffer
Serial.print('R = ')
Serial.print(resistor)
Serial.println(' Ohm')
if(th>resistor) // if resistance cross below threshold value, output is on, if you want opposite result use '<' //
{
digitalWrite(op,HIGH)
Serial.println('Output is ON')
delay(3000)
}
else
{
digitalWrite(op,LOW)
Serial.println('Output is OFF')
delay(3000)
}
}
//-------------Program developed by R.Girish--------//

ΣΗΜΕΙΩΣΗ:

• float th = 7800 // Ορίστε το όριο αντίστασης στο Ohms
Αντικαταστήστε 7800 ohm με την τιμή σας.
• float R = 10000 // Γνωστή τιμή Αντίσταση στο Ohm
Αντικαταστήστε τα 10000 ohm με τη γνωστή τιμή αντίστασης.
• εάν (th> αντίσταση)

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

Εάν θέλετε να ενεργοποιήσετε το ρελέ όταν η ανάγνωση του αισθητήρα υπερβαίνει το όριο και το αντίστροφο, απλώς αντικαταστήστε το 'if (thresistor)'

Μετρώντας την αντίσταση του αισθητήρα απευθείας (LDR ή θερμίστορ ή οτιδήποτε άλλο) και θέτοντας ένα κατώφλι, μπορούμε να αποκτήσουμε μεγάλη ακρίβεια ελέγχου σε ρελέ, LED, κινητήρα και άλλα περιφερειακά.

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




Προηγούμενο: Κύκλωμα ελεγκτή στάθμης αποθήκευσης υλικού Επόμενο: Κύκλωμα ταχυμέτρου 10 LED