• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Измерение емкости конденсаторов на Ардуино

1 февраля, 2017

Arduino uno: http://ali.ski/gC_mOa
Диоды и резисторы: http://fas.st/KK7DwjyF
Контактные провода: http://ali.ski/Exjr3
Макетная плата: http://ali.ski/rq8wz8

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

Данный пример я нашел на официальном сайте Arduino.cc. Собственно там же и взял схему. Мне кажется очень полезная вещь, если у Вас много конденсаторов, если вы работаете с электроникой и непонятно вздулся ли конденсатор или нет, то проверить это легко с помощью данного прибора.

Принципиальная схема приведена в начале статьи. А визуально понятная для новичка схема показана  в видео в конце статьи.

Необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.

 

/*  RCTiming_capacitance_meter
 *   Paul Badger 2008
 *  Demonstrates use of RC time constants to measure the value of a capacitor 
 *
 * Theory   A capcitor will charge, through a resistor, in one time constant, defined as T seconds where
 *    TC = R * C
 * 
 *    TC = time constant period in seconds
 *    R = resistance in ohms
 *    C = capacitance in farads (1 microfarad (ufd) = .0000001 farad = 10^-6 farads ) 
 *
 *    The capacitor's voltage at one time constant is defined as 63.2% of the charging voltage.
 *
 *  Hardware setup:
 *  Test Capacitor between common point and ground (positive side of an electrolytic capacitor  to common)
 *  Test Resistor between chargePin and common point
 *  220 ohm resistor between dischargePin and common point
 *  Wire between common point and analogPin (A/D input)
 */

#define analogPin      0          // analog pin for measuring capacitor voltage
#define chargePin      13         // pin to charge the capacitor - connected to one end of the charging resistor
#define dischargePin   11         // pin to discharge the capacitor
#define resistorValue  10000.0F   // change this to whatever resistor value you are using
                                  // F formatter tells compliler it's a floating point value

unsignedlong startTime;
unsignedlong elapsedTime;
float microFarads;                // floating point variable to preserve precision, make calculations
float nanoFarads;

voidsetup(){
  pinMode(chargePin,OUTPUT);     // set chargePin to output
  digitalWrite(chargePin,LOW);  

  Serial.begin(9600);             // initialize serial transmission for debugging
}

voidloop(){
  digitalWrite(chargePin,HIGH);  // set chargePin HIGH and capacitor charging
  startTime =millis();

  while(analogRead(analogPin)<648){       // 647 is 63.2% of 1023, which corresponds to full-scale voltage 
  }

  elapsedTime=millis()- startTime;
// convert milliseconds to seconds ( 10^-3 ) and Farads to microFarads ( 10^6 ),  net 10^3 (1000)  
  microFarads =((float)elapsedTime / resistorValue)*1000;   
  Serial.print(elapsedTime);       // print the value to serial port
  Serial.print(" mS    ");         // print units and carriage return


  if(microFarads >1){
    Serial.print((long)microFarads);       // print the value to serial port
    Serial.println(" microFarads");         // print units and carriage return
  }
  else
  {
    // if value is smaller than one microFarad, convert to nanoFarads (10^-9 Farad). 
    // This is  a workaround because Serial.print will not print floats

    nanoFarads = microFarads *1000.0;      // multiply by 1000 to convert to nanoFarads (10^-9 Farads)
    Serial.print((long)nanoFarads);         // print the value to serial port
    Serial.println(" nanoFarads");          // print units and carriage return
  }

  /* dicharge the capacitor  */
  digitalWrite(chargePin,LOW);             // set charge pin to  LOW 
  pinMode(dischargePin,OUTPUT);            // set discharge pin to output 
  digitalWrite(dischargePin,LOW);          // set discharge pin LOW 
  while(analogRead(analogPin)>0){         // wait until capacitor is completely discharged
  }

  pinMode(dischargePin,INPUT);            // set discharge pin back to input
}

Ссылочка на скетч ардуино: https://www.arduino.cc/en/Tutorial/CapacitanceMeter#
Ссылчока на проэкт на русском: http://cxem.net/arduino/arduino165.php

 

Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.

Видео:

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·