Κάντε αυτό το Advanced Digital Ammeter χρησιμοποιώντας το Arduino

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





Σε αυτήν την ανάρτηση πρόκειται να κατασκευάσουμε ένα ψηφιακό αμπερόμετρο χρησιμοποιώντας οθόνη LCD 16 x 2 και Arduino. Θα κατανοήσουμε τη μεθοδολογία μέτρησης ρεύματος χρησιμοποιώντας μια αντίσταση διακλάδωσης και θα εφαρμόσουμε ένα σχέδιο βασισμένο στο Arduino. Το προτεινόμενο ψηφιακό αμπερόμετρο μπορεί να μετρήσει ρεύμα που κυμαίνεται από 0 έως 2 Ampere (απόλυτο μέγιστο) με εύλογη ακρίβεια.

Πώς λειτουργούν τα μετρητές

Υπάρχουν δύο τύποι αμπερόμετρων: Αναλογικά και ψηφιακά, η λειτουργία τους διαφέρει πολύ μεταξύ τους. Όμως, και οι δύο έχουν μια κοινή έννοια: Μια αντίσταση διακλάδωσης.



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

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



πώς λειτουργεί ένα αναλογικό αμπερόμετρο

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

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

Το ρεύμα i1 θα είναι μεγαλύτερο από το i2 αφού έπεσε ένα κλάσμα ρεύματος μέσω της αντίστασης διακλάδωσης. Η τρέχουσα διαφορά μεταξύ της αντίστασης διακλάδωσης αναπτύσσει πολύ μικρή ποσότητα τάσης στα V1 και V2.
Η ποσότητα της τάσης θα μετρηθεί από τον αναλογικό μετρητή.

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

Εάν η ροή ρεύματος είναι μεγαλύτερη μέσω της διακλάδωσης, η τάση που αναπτύσσεται είναι μεγαλύτερη. Εάν η τιμή της διακλάδωσης είναι υψηλή, η τάση που αναπτύσσεται κατά μήκος της διακλάδωσης είναι μεγαλύτερη.

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

Μια αντίσταση μικρής τιμής εξασφαλίζει ότι το φορτίο λαμβάνει επαρκή ποσότητα ρεύματος και τάσης για κανονική λειτουργία.

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

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

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

Υπολογισμός τάσης σε τρέχουσα μετατροπή

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

Ο νόμος του ωμ: I = V / R

Γνωρίζουμε την τιμή της αντίστασης διακλάδωσης R και θα εισαχθεί στο πρόγραμμα.

Η τάση που παράγεται κατά μήκος της αντίστασης διακλάδωσης είναι:

V = V1 - V2

Ή

V = V2 - V1 (για την αποφυγή αρνητικού συμβόλου κατά τη μέτρηση και επίσης το αρνητικό σύμβολο εξαρτάται από την κατεύθυνση της ροής ρεύματος)

Έτσι μπορούμε να απλοποιήσουμε την εξίσωση,

I = (V1 - V2) / R
Ή
I = (V2 - V1) / R

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

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

Το Arduino έχει ενσωματώσει αναλογικό σε ψηφιακό μετατροπέα 10 bit (ADC). Μπορεί να ανιχνεύσει από 0 έως 5V σε 0 έως 1024 βήματα ή επίπεδα τάσης.

Έτσι, η ανάλυση αυτού του ADC θα είναι 5/1024 = 0,00488 volt ή 4,88 millivolt ανά βήμα.

Έτσι, 4,88 millivolt / 2 mA (ελάχιστη ανάλυση αμπερόμετρου) = 2,44 ή 2,5 ohm αντίσταση.

Μπορούμε να χρησιμοποιήσουμε τέσσερα αντίσταση 10 ohm, 2 Watt παράλληλα για να πάρουμε 2,5 ohm που δοκιμάστηκε στο πρωτότυπο.

Λοιπόν, πώς μπορούμε να πούμε το μέγιστο μετρήσιμο εύρος του προτεινόμενου αμπερόμετρου που είναι 2 Ampere.

Το ADC μπορεί να μετρήσει από 0 έως 5 V μόνο, δηλαδή. Οτιδήποτε παραπάνω θα καταστρέψει το ADC στον μικροελεγκτή.

Από το δοκιμασμένο πρωτότυπο αυτό που έχουμε παρατηρήσει ότι, στις δύο αναλογικές εισόδους από τα σημεία V1 και V2 όταν η τρέχουσα μετρούμενη τιμή X mA, η αναλογική τάση διαβάζει X / 2 (σε σειριακή οθόνη).

Ας πούμε για παράδειγμα, εάν το αμπερόμετρο διαβάζει 500 mA, οι αναλογικές τιμές στη σειριακή οθόνη διαβάζουν 250 βήματα ή επίπεδα τάσης. Το ADC μπορεί να ανεχθεί έως 1024 βήματα ή 5 V μέγιστο, οπότε όταν το αμπερόμετρο διαβάζει 2000 mA, η σειριακή οθόνη διαβάζει 1000 βήματα περίπου. που είναι κοντά στο 1024.

Οτιδήποτε πάνω από το επίπεδο τάσης 1024 θα καταστρέψει το ADC στο Arduino. Για να το αποφύγετε αυτό πριν από τα 2000 mA θα εμφανιστεί ένα προειδοποιητικό μήνυμα στην οθόνη LCD που λέει ότι αποσυνδέεται το κύκλωμα.

Μέχρι τώρα θα έχετε καταλάβει πώς λειτουργεί το προτεινόμενο αμπερόμετρο.

Τώρα ας προχωρήσουμε σε κατασκευαστικές λεπτομέρειες.

Σχηματικό διάγραμμα:

Ψηφιακό Ammeter Arduino DC

Το προτεινόμενο κύκλωμα είναι πολύ απλό και φιλικό για αρχάριους. Κατασκευή σύμφωνα με το διάγραμμα κυκλώματος. Ρυθμίστε το ποτενσιόμετρο 10K για να ρυθμίσετε την αντίθεση της οθόνης.

Μπορείτε να τροφοδοτήσετε το Arduino από USB ή μέσω βύσματος DC με μπαταρίες 9 V. Τέσσερις αντιστάσεις 2 watt θα διαλύσουν τη θερμότητα ομοιόμορφα από τη χρήση μίας αντίστασης 2,5 ohm με αντίσταση 8-10 watt.

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

ΣΗΜΕΙΩΣΗ: Μην αντιστρέψετε την πολικότητα τροφοδοσίας εισόδου.

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

//------------------Program Developed by R.GIRISH------------------//
#include
#define input_1 A0
#define input_2 A1
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int AnalogValue = 0
int PeakVoltage = 0
float AverageVoltage = 0
float input_A0 = 0
float input_A1 = 0
float output = 0
float Resolution = 0.00488
unsigned long sample = 0
int threshold = 1000
void setup()
{
lcd.begin(16,2)
Serial.begin(9600)
}
void loop()
{
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_1)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A0 = PeakVoltage * Resolution
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_2)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A1 = PeakVoltage * Resolution
output = (input_A0 - input_A1) * 100
output = output * 4
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('DIGITAL AMMETER')
lcd.setCursor(0,1)
lcd.print(output)
lcd.print(' mA')
Serial.print('Volatge Level at A0 = ')
Serial.println(analogRead(input_A0))
Serial.print('Volatge Level at A1 = ')
Serial.println(analogRead(input_A1))
Serial.println('------------------------------')
delay(1000)
}
//------------------Program Developed by R.GIRISH------------------//

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




Προηγούμενο: Χρήση ψηφιακού ποτενσιόμετρου MCP41xx With Arduino Επόμενο: Υπερβολικό ρεύμα διακοπής ρεύματος με χρήση του Arduino