Измеритель емкости (Arduino)

Измеритель емкости конденсаторов может измерять емкость от 10 пФ до 10000 мкФ. Измерение происходит в автоматическом режиме, достаточно подключить конденсатор к измерительным контактам. Уст-во имеет два диапазона: «нФ» и «мкФ». При измерении конденсатора сначала включается диапазон «нФ», если емкость слишком большая, то происходит переход на диапазон «мкф».

При каждом измерении конденсатор заряжается до уровня 63% от подаваемого через резисторы напряжения (5 В), далее измеряется время заряда, рассчитывается емкость и выводится на индикатор.

В измерителе емкости при каждом включении производится калибровка нуля, поэтому в момент включения к измерительным контактам не должен быть подключен конденсатор. Так же все конденсаторы должны быть предварительно разряжены.

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);// RS,E,D4,D5,D6,D7
void setup(){
  lcd.begin(16, 2);// LCD 16X2
  pinMode(A0,INPUT);
}
unsigned long time0,time1,time2; 
float c,null0;
byte kn,mk,i;

void loop(){ 
  lcd.setCursor(15,0); 
  lcd.print("*");
  if(mk==0){
    pinMode(13,OUTPUT);
    pinMode(3,INPUT);
    digitalWrite(13,HIGH);
  }

  if(mk==1){
    pinMode(3,OUTPUT);
    pinMode(13,INPUT);
    digitalWrite(3,HIGH);
  }

  time0=micros();
  while(analogRead(A0)<644){
    time2=micros()-time0;
    if(time2>=1000000 && mk==0){
      mk=1;
      time0=100000000;
      break;
    }
  }

  time1=micros()-time0; 

  while(analogRead(A0)>0){ 
    pinMode(3,OUTPUT); 
    pinMode(13,OUTPUT); 
    digitalWrite(3,LOW); 
    digitalWrite(13,LOW);
  }

  if(mk==1&&time1<1000){
    mk=0;
  }

  lcd.setCursor(1,0);
  c=time1;
  c=c/1000-null0;
  c=abs(c);

  if(time1>=10000000){
    lcd.setCursor(1,0);
    lcd.print(" TEST uF   "); 
  }
  else{
    lcd.print(c); 

    if(mk==0){
      lcd.print(" nF       ");
    }
    if(mk==1){
      lcd.print(" uF       ");
    }
  }
  if(i==0){// калибровка нуля
    i++;
    null0=c+0.02;
  }
  delay(100);
}

Comments

  1. Спасибо большое, liman28! Удивительная схема — три резистора, ардуинка и 16х2 дисплей, который всегда где-то есть в загашнике. Всё отлично работает, без всяких ESR и «универсальных» измерений транзисторов, резисторов. Удивила точность измерений и предел 10000 мкФ. Спасибо ещё раз.

Добавить комментарий

Войти с помощью: