Medir Condensadores/Capacitores con Arduino
Documento original: http://www.circuitbasics.com/how-to-make-an-arduino-capacitance-meter/
Este interesante proyecto nos permite determinar los valores
de un capacitor utilizando Arduino y algunos componentes electronicos (muy util
cuando no contamos con un Multimetro), facilitando de esta manera, la identificacion y/o clasificacion de los
capacitores.
El proyecto nos trae tres alternativas, la diferencia, radica en su precision de lectura como tambien en el rango efecto de medicion
En el grafico podemos
observar la diferencia de la exactitud de lectura de los tres medidores.
Medidor No.1 (capacitancia
1uF – 3900uF)
Documento original: http://www.arduino.cc/en/Tutorial/CapacitanceMeter
Componentes: R1 = 10K
Ohms
R2
= 220 Ohms
Codigo: Para mostrar la lectura en pantalla.
#define analogPin 0
#define chargePin 13
#define dischargePin 11
#define resistorValue 10000.0F
unsigned long startTime;
unsigned long elapsedTime;
float microFarads;
float nanoFarads;
void setup(){
pinMode(chargePin, OUTPUT);
digitalWrite(chargePin, LOW);
Serial.begin(9600);
}
void loop(){
digitalWrite(chargePin, HIGH);
startTime = millis();
while(analogRead(analogPin) < 648){
}
elapsedTime= millis() - startTime;
microFarads = ((float)elapsedTime / resistorValue) * 1000;
Serial.print(elapsedTime);
Serial.print(" mS ");
if (microFarads > 1){
Serial.print((long)microFarads);
Serial.println(" microFarads");
}
else{
nanoFarads = microFarads * 1000.0;
Serial.print((long)nanoFarads);
Serial.println(" nanoFarads");
delay(500);
}
digitalWrite(chargePin, LOW);
pinMode(dischargePin, OUTPUT);
digitalWrite(dischargePin, LOW);
while(analogRead(analogPin) > 0){
}
pinMode(dischargePin, INPUT);
}
#define analogPin 0
#define chargePin 13
#define dischargePin 11
#define resistorValue 10000.0F
unsigned long startTime;
unsigned long elapsedTime;
float microFarads;
float nanoFarads;
void setup(){
pinMode(chargePin, OUTPUT);
digitalWrite(chargePin, LOW);
Serial.begin(9600);
}
void loop(){
digitalWrite(chargePin, HIGH);
startTime = millis();
while(analogRead(analogPin) < 648){
}
elapsedTime= millis() - startTime;
microFarads = ((float)elapsedTime / resistorValue) * 1000;
Serial.print(elapsedTime);
Serial.print(" mS ");
if (microFarads > 1){
Serial.print((long)microFarads);
Serial.println(" microFarads");
}
else{
nanoFarads = microFarads * 1000.0;
Serial.print((long)nanoFarads);
Serial.println(" nanoFarads");
delay(500);
}
digitalWrite(chargePin, LOW);
pinMode(dischargePin, OUTPUT);
digitalWrite(dischargePin, LOW);
while(analogRead(analogPin) > 0){
}
pinMode(dischargePin, INPUT);
}
En el enlace, en la parte superior, se puede encontrar los otros prototipos de medidores y su respectivo codigo.
No comments:
Post a Comment