Google+

Σάββατο, 23 Μαΐου 2015

Measuring Inductance using an Arduino

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

Τι θα λέγατε όμως αν αντί για όλα τα παραπάνω, χρησιμοποιούσατε ένα... Arduino !

Το πρόβλημα:

Έστω ότι κατασκευάζουμε ένα πηνίο (με N αριθμό σπειρών/περιελίξεων, l μήκος σπειρών και α ακτίνας σπειρών):
Με τον παραπάνω τύπο υπολογίζουμε, θεωρητικά, την τιμή L, σύμφωνα με τα χαρακτηριστικά του πηνίου που έχουμε κατασκευάσει.

Η Κατασκευή:

Χρησιμοποιούμε σύρμα τύπου AWG24 (από καλώδιο utp cat5), όπως φαίνεται παρακάτω στην εικόνα:

το πηνίο με 35 περιελίξεις (n), ακτίνας (a) 3cm και μήκος (l) 3,5 cm, με βάση τον παραπάνω τύπο, η αυτεπαγωγή του υπολογίζεται ~ 69,95 μH.
Η Μέτρηση:
Χρησιμοποιώντας το παρακάτω κύκλωμα, που υλοποιεί μια τεχνική σύγκρισης της τάσεως σημάτων με το LM339 (ιδέα του @Reibot.org)*, χρησιμοποιώντας το Digital Pin 13 του Arduino ως είσοδο στο LM339(συγκριτή) και στο D11 την έξοδο του LM339:
 
 
και φορτώνοντας το σχετικό sketch:
//13 is the input to the circuit (connects to 150ohm resistor), 11 is the comparator/op-amp output.
//reibot.org for guide
double pulse, frequency, capacitance, inductance;
void setup(){
Serial.begin(115200);
pinMode(11, INPUT);
pinMode(13, OUTPUT);
Serial.println("Why hello!");
delay(200);
}
void loop(){
digitalWrite(13, HIGH);
delay(5);//give some time to charge inductor.
digitalWrite(13,LOW);
delayMicroseconds(100); //make sure resination is measured
pulse = pulseIn(11,HIGH,5000);//returns 0 if timeout
if(pulse > 0.1){ //if a timeout did not occur and it took a reading:
capacitance = 2.E-6; //insert capacitance here. Currently using 2uF
frequency = 1.E6/(2*pulse);
inductance = 1./(capacitance*frequency*frequency*4.*3.14159*3.14159);//one of my profs told me just do squares like this
inductance *= 1E6; //note that this is the same as saying inductance = inductance*1E6
Serial.print("High for uS:");
Serial.print( pulse );
Serial.print("\tfrequency Hz:");
Serial.print( frequency );
Serial.print("\tinductance uH:");
Serial.println( inductance );
delay(20);
}
}
μπορούμε να παρέχουμε τις μετρήσεις στο Serial Monitor:
Ουυυπς!!! για να είμαστε ακριβείς μόλις 63,33 μH :)

Διαβάστε περισσότερα :
Easily measuring inductance with Arduino
Hackaday entry
Αυτεπαγωγή και Πηνία
Πηνίο Τέσλα

*Special thanx to @Alopix for his help & contribution (pcb etching)

1 σχόλιο:

  1. Καλησπέρα,
    ωραίο άρθρο.
    Καινούριο πηνιάκι κατασκευή μετρημένο με άλλο οργανάκι πηνίων 227 μΗ, μετρήθηκε με το interface 233,44 μΗ.
    Φαίνετε αξιόπιστο το κύκλωμα.

    Σταύρος

    ΑπάντησηΔιαγραφή