Основы · 14 мин чтения

Что такое конденсатор: виды, код 104 и постоянная времени RC

Что такое конденсатор и для чего он нужен? Единицы pF, nF и µF, керамические и электролитические, код 104, τ = R·C, развязка 100 nF и опыт с зарядом на Arduino.

Конденсатор — базовый компонент схемы, который накапливает электрический заряд между двумя никогда не соприкасающимися проводящими пластинами и при необходимости очень быстро его отдаёт. Представь его как маленький, но очень быстрый резервуар энергии: он подаёт заряд, когда напряжение проседает, гасит внезапные выбросы, после зарядки не пропускает постоянный ток (DC), но пропускает переменный ток (AC) и помехи. Даже на Arduino Uno полно конденсаторов: они успокаивают линию питания, не дают кнопкам дребезжать, задают время и превращают сигнал PWM в ровное напряжение.

В этом руководстве ты узнаешь, как работает конденсатор, что такое единицы pF, nF и µF, чем отличаются керамические, электролитические и танталовые конденсаторы, как определить полярность и номинальное напряжение, что означают коды вроде 104, что такое постоянная времени RC (τ = R·C) и как соединять конденсаторы последовательно и параллельно. В конце проведём опыт на Arduino, ESP32 и Raspberry Pi Pico: построим кривую заряда конденсатора и измерим его ёмкость.

Электролитические конденсаторы разных номиналов
Алюминиевые электролитические конденсаторы: ёмкость и напряжение напечатаны прямо на корпусе (например, 470 µF 16 V). Светлая полоса на оболочке отмечает отрицательный (−) вывод.

Что такое конденсатор и как он работает?

Внутри любого конденсатора две проводящие поверхности, разделённые изолирующим слоем — диэлектриком. Если подать напряжение на его выводы, на одной пластине скапливаются электроны, а с другой они уходят; между пластинами возникает электрическое поле, и энергия запасается в нём. Накопленный заряд равен Q = C · V, где C — ёмкость в фарадах, а V — напряжение в вольтах. Запасённая энергия равна E = ½ · C · V²; например, конденсатор 1000 µF, заряженный до 16 V, хранит 0,128 джоуля. Ток и напряжение связаны формулой I = C · ΔV/Δt: конденсатор сопротивляется резким изменениям своего напряжения, и именно поэтому сглаживает пульсации.

Конденсатор можно представить как бак с водой: пустой он наполняется быстро, по мере заполнения поток замедляется, и в конце концов останавливается. Поэтому в цепи постоянного тока через заряженный конденсатор ток не течёт. Но с ростом частоты конденсатор сопротивляется току всё меньше; это сопротивление называется ёмкостным сопротивлением и считается по формуле Xc = 1 / (2π · f · C). Конденсатор 100 nF на 1 kHz имеет около 1,6 kΩ, а на 10 MHz — всего 0,16 Ω. Иначе говоря, для высокочастотных помех он почти короткое замыкание, и в этом весь секрет развязывающих конденсаторов.

Единицы ёмкости: pF, nF и µF

ЕдиницаОбозначениеВ фарадахТипичное применение
ПикофарадpF10⁻¹² F22 pF рядом с кварцем, ВЧ-схемы
НанофарадnF10⁻⁹ FРазвязка 100 nF, фильтр помех 10 nF
МикрофарадµF10⁻⁶ FКонденсаторы питания и моторов 10–1000 µF
ФарадF1 FИонисторы, резервная энергия

Фарад — огромная единица, поэтому в электронике почти всегда используют её малые доли. Правило перевода простое: каждый шаг — множитель 1000. 1 µF = 1000 nF = 1 000 000 pF, так что 0,1 µF, 100 nF и 100 000 pF — одно и то же значение. Когда символа µ нет, вместо него пишут u (10uF), а на старых схемах для микрофарад можно встретить MFD. Чаще всего в проектах на Arduino встречаются номиналы 22 pF, 100 nF (0,1 µF), 10 µF, 100 µF и 1000 µF.

Виды конденсаторов: керамические, электролитические, танталовые и другие

ТипДиапазон ёмкостиПолярный?Где применяется
Керамический (MLCC, дисковый)1 pF – 100 µFНетРазвязка, кварцы, высокочастотные фильтры
Алюминиевый электролитический0,1 µF – десятки тысяч µFДаФильтрация питания, моторы, сервоприводы, светодиодные ленты
Танталовый0,1 µF – несколько сотен µFДаСтабильное питание на небольших платах
Плёночный (полиэстер, полипропилен)Примерно 1 nF – 10 µFНетАудио, задание времени, сетевые фильтры
Ионистор (суперконденсатор)0,1 F – сотни FДаРезерв для часов (RTC), кратковременная энергия
  • Керамические: маленькие, дешёвые и неполярные. Их внутреннее сопротивление (ESR) очень мало, поэтому они лучше всех фильтруют быстрые помехи. Стабильность зависит от диэлектрика: C0G (NP0) очень стабилен, X7R хорош, а Y5V может терять больше половины ёмкости от температуры и приложенного напряжения.
  • Алюминиевые электролитические: дают большую ёмкость в малом объёме, но полярны, а жидкость внутри постепенно высыхает. На корпусе указан предел 85 °C или 105 °C и срок службы при этой температуре (например, 2000 часов); грубо говоря, каждые 10 °C ниже удваивают срок службы.
  • Танталовые: меньше и стабильнее электролитических того же номинала, но чувствительны к обратному напряжению и броскам тока; при отказе могут закоротиться и сгореть. Выбирай танталовый конденсатор с номиналом минимум вдвое выше рабочего напряжения.
  • Плёночные: неполярные, стабильные и с малыми потерями; применяются в аудиосхемах, точных времязадающих цепях и сетевых фильтрах 230 V (класс X2). Недостаток — большие номиналы громоздки.
  • Ионисторы: ёмкость в диапазоне фарад, но на одну ячейку выдерживают всего около 2,7 V. Энергии они хранят меньше, чем аккумулятор; зато заряжаются и разряжаются за секунды и выдерживают сотни тысяч циклов.

Как определить полярность (+/−) и номинальное напряжение

  • Выводной электролитический: длинный вывод — плюс (+), короткий — минус (−). Светлая полоса на оболочке со знаками минуса отмечает отрицательную сторону. Если выводы обрезаны, ориентируйся по полосе.
  • SMD электролитический (в виде бочонка): чёрный или цветной полумесяц сверху отмечает отрицательную сторону.
  • Танталовый: осторожно, правило обратное: полоса или черта на танталовом конденсаторе отмечает положительный вывод.
  • Керамические и плёночные: неполярные, их можно ставить любой стороной.
  • На схемах: неполярный конденсатор рисуют двумя прямыми параллельными линиями. У полярного одна пластина изогнута или закрашена, а знак + отмечает положительную сторону.

Номинальное напряжение на корпусе (например, 16 V, 25 V, 50 V) — наибольшее постоянное напряжение, которое конденсатор выдерживает длительно, и его нельзя превышать никогда. Безопасное правило — брать конденсатор с номиналом минимум в 1,5–2 раза выше наибольшего напряжения в схеме: в схеме Arduino на 5 V — 10 V или 16 V, с адаптером на 12 V — 25 V, при 24 V — 35 V или 50 V. Брать номинал выше нужного не вредно: деталь просто крупнее и чуть дороже.

Если подключить электролитический или танталовый конденсатор не той стороной или превысить его номинальное напряжение, он нагревается, вздувается и лопается, выпуская газ через насечку сверху. Держи лицо подальше от конденсаторов, когда впервые подаёшь питание на новую схему. Крупные конденсаторы могут оставаться заряженными и после отключения питания: никогда не трогай конденсаторы в адаптерах на 230 V и в сетевых схемах и не бери в руки крупные низковольтные конденсаторы, не разрядив их через резистор (например, 1 kΩ).

Как читать коды конденсаторов: что значит 104?

Чтобы сэкономить место, на керамических и плёночных конденсаторах номинал пишут трёхзначным кодом. Единица всегда пикофарад: первые две цифры — число, а третья — сколько нулей добавить. Значит, 104 = 10 и 4 нуля = 100 000 pF = 100 nF = 0,1 µF. Двузначные коды дают номинал прямо в pF (22 = 22 pF), а последняя цифра 0 не добавляет нулей (220 = 22 pF). В буквенной записи буква — это одновременно единица и десятичная запятая: 4n7 = 4,7 nF, 2p2 = 2,2 pF. Быстро расшифровать код поможет утилита «Код конденсатора».

КодРасчётНоминал
22 / 22022 × 1 pF22 pF
10110 × 10 pF100 pF
10210 × 100 pF1 nF
10310 × 1000 pF10 nF
10410 × 10 000 pF100 nF (0,1 µF)
10510 × 100 000 pF1 µF
22322 × 1000 pF22 nF
47447 × 10 000 pF470 nF (0,47 µF)
4n7Буква играет роль десятичной запятой4,7 nF

Буква после кода указывает допуск: J = ±5%, K = ±10%, M = ±20%, Z = +80% / −20%. Перед кодом на плёночных конденсаторах может стоять ещё и код напряжения; например, 2A104J означает 100 V (2A), 100 nF (104) и ±5% (J). Распространённые коды напряжения: 1C = 16 V, 1H = 50 V, 2A = 100 V и 2J = 630 V. На электролитических конденсаторах коды не используют, номинал напечатан напрямую (470 µF 16 V). А SMD керамические конденсаторы обычно вовсе не маркированы, так что их номинал можно узнать только по упаковке или измерением.

Заряд, разряд и постоянная времени RC (τ = R·C)

Если заряжать конденсатор через резистор, его напряжение не подскакивает мгновенно, а растёт по экспоненте: Vc = Vs · (1 − e^(−t/RC)) (Vs — напряжение источника, t — прошедшее время). При разряде оно падает с той же скоростью: Vc = V0 · e^(−t/RC). Произведение R·C называется постоянной времени и обозначается τ (тау); омы, умноженные на фарады, дают секунды. Например, с резистором 10 kΩ и конденсатором 100 µF τ = 10 000 × 0,0001 = 1 секунда. С 1 kΩ и 100 nF τ равна всего 0,1 миллисекунды.

Прошедшее времяДостигнутое напряжение при зарядеОставшееся напряжение при разряде
1 τ63,2%36,8%
2 τ86,5%13,5%
3 τ95,0%5,0%
4 τ98,2%1,8%
5 τ99,3%0,7%

На практике конденсатор считается полностью заряженным или разряженным примерно через 5τ; в примере с 10 kΩ и 100 µF это 5 секунд. На этом поведении основаны таймеры, схемы подавления дребезга кнопок, плавно гаснущие лампы и микросхема 555. Освежить знания о резисторах поможет статья Что такое резистор?, а посмотреть, как меняется кривая при разных R и C, можно в утилите «Постоянная времени RC». Связь напряжения, тока и сопротивления подробно объяснена в статье Закон Ома.

Фильтрация и развязка: почему рядом с каждой микросхемой стоит 100 nF?

Микроконтроллеры и другие микросхемы на каждом фронте тактового сигнала потребляют короткие импульсы тока длительностью в наносекунды. Если источник питания далеко, индуктивность проводов не успевает за этими резкими запросами; на линии питания появляются небольшие провалы и помехи, а в итоге — случайные перезагрузки, ненадёжные аналоговые показания или зависания. Решение — поставить керамический конденсатор 100 nF между пинами VCC и GND каждой микросхемы, как можно ближе к ней. Он работает как крошечный резервуар энергии прямо рядом с чипом и замыкает высокочастотные помехи на GND. Это называется развязывающим или блокировочным конденсатором. Для медленных и больших изменений нагрузки на входе питания добавляют электролитический конденсатор 10–1000 µF (накопительный).

Модуль стабилизатора напряжения LM7805 с конденсаторами
Модуль стабилизатора LM7805: электролитические конденсаторы рядом со стабилизатором на радиаторе сглаживают пульсации на входе и резкие изменения нагрузки на выходе.
  • 100 nF на каждую микросхему: ставь между VCC и GND с короткими выводами, как можно ближе к пину питания чипа.
  • Линейные стабилизаторы вроде 7805: производитель рекомендует 0,33 µF на входе и 0,1 µF на выходе; на практике на выход часто добавляют ещё 10–100 µF. Подробности в статье Стабилизатор напряжения 7805.
  • Сервоприводы: 100–470 µF на питании сервопривода, рядом с ним, помогают Arduino не перезагружаться, когда сервопривод движется (Что такое сервопривод?).
  • Светодиодные ленты WS2812B: между клеммами + и − адаптера рекомендуется конденсатор 500–1000 µF на напряжение не ниже 6,3 V (WS2812B NeoPixel).
  • DC-моторы: керамический конденсатор 100 nF, припаянный прямо на клеммы мотора, сильно снижает электрические помехи от щёток (DC-мотор с L298N).
  • Беспроводные модули: при передаче ток резко скачет. 10 µF на пинах питания nRF24L01 и 100–470 µF между 3,3 V и GND у ESP32 уменьшают обрывы связи и перезагрузки от просадки питания (brownout).

Резистор и конденсатор, соединённые последовательно, образуют фильтр нижних частот: он пропускает частоты ниже определённой и ослабляет те, что выше. Частота среза равна fc = 1 / (2π · R · C). Выход PWM у Arduino Uno — меандр 490 Hz (980 Hz на пинах 5 и 6); фильтр из 10 kΩ и 10 µF (fc ≈ 1,6 Hz) превращает его в почти ровное постоянное напряжение, и получается простой аналоговый выход. Плата за это — время отклика: при τ = 0,1 с установка нового значения занимает около полусекунды. Подробнее — в статье Что такое PWM? Выпрямленное питание точно так же фильтруют большим сглаживающим конденсатором, а оставшиеся пульсации примерно равны ΔV ≈ I / (f · C): при нагрузке 1 A, двухполупериодном выпрямлении 100 Hz и 4700 µF это около 2,1 V.

Последовательное и параллельное соединение конденсаторов

Формулы для конденсаторов прямо противоположны формулам для резисторов. При параллельном соединении ёмкости складываются: C = C1 + C2 + …, а номинальное напряжение равно номиналу самой слабой детали. При последовательном общая ёмкость меньше даже самой маленькой: 1/C = 1/C1 + 1/C2 + … Два одинаковых конденсатора последовательно дают половину ёмкости, а их номинальные напряжения на бумаге складываются; но токи утечки у них разные, поэтому напряжение делится неравномерно, и параллельно каждому конденсатору ставят одинаковые выравнивающие резисторы (например, 100 kΩ). Если нужного номинала нет, его можно собрать из двух конденсаторов; посчитать поможет утилита «Последовательные / параллельные C», а аналог для резисторов — в статье о расчёте последовательных и параллельных резисторов.

СоединениеПримерОбщая ёмкостьНоминальное напряжение
Параллельное100 µF 16 V + 220 µF 25 V320 µF16 V (наименьшее)
Последовательное100 µF 16 V + 100 µF 16 V50 µFДо 32 V (с выравнивающими резисторами)
Последовательное10 µF + 22 µFОколо 6,9 µFНапряжение делится обратно пропорционально ёмкости
Параллельное10 µF + 100 nF10,1 µFКак у детали с наименьшим номиналом

Опыт с кривой заряда на Arduino: измеряем ёмкость

Лучший способ увидеть теорию своими глазами — измерять напряжение конденсатора, пока он заряжается. Один цифровой пин Arduino будет заряжать конденсатор через резистор 10 kΩ, а аналоговый вход — читать напряжение на конденсаторе. Время, за которое напряжение достигает 63,2% от напряжения источника, — это одна τ, и по ней мы вычислим ёмкость: C = τ / R. Понадобятся: Arduino Uno, электролитический конденсатор 100 µF, резистор 10 kΩ, макетная плата и несколько перемычек.

ПодключениеArduino UnoESP32Raspberry Pi Pico
Один конец резистора 10 kΩ (пин заряда)D8GPIO 25GP15
Узел резистора и плюсового вывода конденсатораA0GPIO 34 (ADC1)GP26 (ADC0)
Минусовой вывод конденсатораGNDGNDGND
Разрешение и опорное напряжение АЦП10 бит, 5 V12 бит, около 3,3 V12 бит, 3,3 V
Порог 63,2%647 (сырое значение)2086 mV2,086 V
Никогда не подключай большой конденсатор прямо к пину без резистора. Пустой конденсатор сначала ведёт себя как короткое замыкание, и ток легко превышает абсолютный максимум ATmega328P в 40 mA на пин. Резистор 10 kΩ ограничивает ток до 0,5 mA. Длинный (+) вывод электролитического конденсатора вставь в узел резистора и A0, а вывод с полосой (−) — в GND.
  1. Вставь конденсатор в макетную плату: вывод + в один ряд, вывод − на шину GND.
  2. Один конец резистора 10 kΩ подключи к D8, а другой — к ряду с плюсовым выводом конденсатора.
  3. Проведи провод из того же ряда к A0 и соедини GND Arduino с шиной GND макетной платы.
  4. Загрузи код ниже и открой монитор порта на скорости 115200 бод.
  5. Код сначала разряжает конденсатор, потом заряжает его; каждые 20 мс выводит прошедшее время и напряжение, а в конце показывает измеренную τ и ёмкость.
  6. Чтобы увидеть кривую на графике, поставь в коде PLOT в true, загрузи его снова и открой «Инструменты › Плоттер по последовательному соединению» (Tools › Serial Plotter).
C++ (Arduino IDE)
1// Kondansatör şarj eğrisi ve kapasite ölçümü / Capacitor charge curve and capacitance meter
2const int CHARGE_PIN = 8;       // 10 kΩ direnç bu pinden beslenir / the 10 kΩ resistor is driven from this pin
3const int SENSE_PIN = A0;       // kondansatörün + bacağı / capacitor + leg
4const float R_OHM = 10000.0;    // şarj direnci (ohm) / charge resistor (ohms)
5const float VREF = 5.0;         // Uno ADC referansı / Uno ADC reference
6const bool PLOT = false;        // true: Seri Çizici için yalnız gerilim / true: voltage only for the Serial Plotter
7
8void setup() {
9  Serial.begin(115200);
10  pinMode(CHARGE_PIN, OUTPUT);
11}
12
13void loop() {
14  // 1) Boşalt: pin LOW, kondansatör direnç üzerinden boşalır / discharge through the resistor
15  digitalWrite(CHARGE_PIN, LOW);
16  while (analogRead(SENSE_PIN) > 4) { }           // ~20 mV altı; ADC ofsetine pay bırak / below ~20 mV, leaves room for ADC offset
17  delay(1000);                                  // kalan yükü de boşalt / drain what is left
18
19  // 2) Şarj et, eğriyi yazdır, τ'yu yakala / charge, print the curve, catch τ
20  unsigned long t0 = millis();
21  unsigned long lastPrint = 0;
22  unsigned long tauMs = 0;
23  digitalWrite(CHARGE_PIN, HIGH);
24  while (true) {
25    int raw = analogRead(SENSE_PIN);
26    unsigned long t = millis() - t0;
27    if (tauMs == 0 && raw >= 647) tauMs = t;     // 1023 x 0,632 = 647 → bir τ / one τ
28    if (t - lastPrint >= 20) {                   // 20 ms'de bir yazdır / print every 20 ms
29      lastPrint = t;
30      float v = raw * VREF / 1023.0;
31      if (!PLOT) {
32        Serial.print(t);
33        Serial.print('\t');
34      }
35      Serial.println(v, 3);
36    }
37    if (raw >= 1010 || t > 60000) break;         // ~%99 dolu ya da zaman aşımı / ~99% full or timeout
38  }
39
40  // 3) Sonuç: C = τ / R / result: C = τ / R
41  if (!PLOT) {
42    float uF = (tauMs / 1000.0) / R_OHM * 1000000.0;
43    Serial.print(F("tau = "));
44    Serial.print(tauMs);
45    Serial.print(F(" ms   C = "));
46    Serial.print(uF, 1);
47    Serial.println(F(" uF"));
48  }
49  delay(3000);
50}

Как работает код: когда пин переводится в LOW, конденсатор разряжается через тот же резистор 10 kΩ. Как только пин уходит в HIGH, millis() начинает отсчёт; когда аналоговое показание достигает 647 (63,2% от 1023), прошедшее время сохраняется как τ. Когда показание доходит до 1010 (около 99%), заряд считается завершённым. Со 100 µF и 10 kΩ должно получиться примерно 1000 мс и 100 µF. У электролитических конденсаторов допуск обычно ±20%, поэтому результаты от 80 до 120 µF нормальны. Подробнее об отсчёте времени — в статье millis и delay.

Повтори опыт с другими резисторами: с 4,7 kΩ τ падает примерно до 0,47 секунды, с 22 kΩ растёт до 2,2 секунды, а вычисленная ёмкость остаётся прежней. С маленькими конденсаторами, например 1 µF, τ падает до 10 мс; для более точного результата возьми резистор побольше, например 100 kΩ, и обнови R_OHM в коде. Тем же методом можно опознать конденсаторы из ящика, у которых стёрлась маркировка.

Тот же опыт на ESP32 и Raspberry Pi Pico

У ESP32 пины работают на 3,3 V, а АЦП 12-битный (0–4095). АЦП ESP32 нелинеен у краёв диапазона, поэтому вместо сырых значений используем analogReadMilliVolts(), которая возвращает откалиброванные милливольты. Для измерительного пина выбран GPIO 34 из группы ADC1, на которую не влияет Wi-Fi. Поскольку выше примерно 3,1 V АЦП измеряет ненадёжно, конец заряда определяется по времени, а не по напряжению: когда τ найдена, измерение останавливается через 5τ. Основы — в статье Что такое ESP32?

C++ (Arduino IDE)
1// ESP32 ile kondansatör şarj eğrisi / Capacitor charge curve with ESP32
2const int CHARGE_PIN = 25;      // 10 kΩ direnç bu pinden beslenir / the 10 kΩ resistor is driven from this pin
3const int SENSE_PIN = 34;       // ADC1, yalnız giriş / ADC1, input only
4const float R_OHM = 10000.0;    // şarj direnci (ohm) / charge resistor (ohms)
5
6void setup() {
7  Serial.begin(115200);
8  pinMode(CHARGE_PIN, OUTPUT);
9}
10
11void loop() {
12  digitalWrite(CHARGE_PIN, LOW);                       // boşalt / discharge
13  unsigned long d0 = millis();
14  // ADC ~150 mV altını okuyamaz, 200 mV'a inmesini bekle / the ADC cannot read below ~150 mV, wait for 200 mV
15  while (analogReadMilliVolts(SENSE_PIN) > 200 && millis() - d0 < 60000) { }
16  delay(millis() - d0 + 1000);                         // aynı süre kadar daha bekle / wait as long again
17
18  unsigned long t0 = millis();
19  unsigned long tauMs = 0;
20  digitalWrite(CHARGE_PIN, HIGH);                      // şarj et / charge
21  while (true) {
22    unsigned long t = millis() - t0;
23    uint32_t mv = analogReadMilliVolts(SENSE_PIN);     // kalibre edilmiş mV / calibrated mV
24    if (tauMs == 0 && mv >= 2086) tauMs = t;           // 3300 mV x 0,632 → bir τ / one τ
25    Serial.println(mv);                                // Seri Çizici için / for the Serial Plotter
26    if ((tauMs > 0 && t >= 5 * tauMs) || t > 60000) break;   // 5τ ≈ %99 dolu / 5τ ≈ 99% full
27    delay(20);
28  }
29  Serial.printf("tau = %lu ms   C = %.1f uF\n", tauMs, tauMs / 1000.0 / R_OHM * 1000000.0);
30  delay(3000);
31}

На Raspberry Pi Pico тот же опыт занимает всего несколько строк на MicroPython. Аналоговые входы Pico — GP26, GP27 и GP28; read_u16() возвращает 12-битное измерение, масштабированное в диапазон 0–65535. Код в каждой строке выводит прошедшее время и напряжение, так что вывод можно скопировать в электронную таблицу и построить кривую своими руками. Если не знаешь, как установить MicroPython на Pico, начни со статьи Что такое Raspberry Pi Pico?

MicroPython
1# Pico ile kondansatör şarj eğrisi / Capacitor charge curve with Pico
2from machine import Pin, ADC
3import time
4
5charge = Pin(15, Pin.OUT)       # 10 kΩ direnç bu pinden beslenir / resistor driven from this pin
6adc = ADC(26)                   # GP26 = ADC0, kondansatörün + bacağı / capacitor + leg
7R = 10000                       # şarj direnci (ohm) / charge resistor (ohms)
8
9def volts():
10    return adc.read_u16() * 3.3 / 65535
11
12charge.value(0)                 # önce boşalt / discharge first
13d0 = time.ticks_ms()
14while volts() > 0.1 and time.ticks_diff(time.ticks_ms(), d0) < 60000:
15    pass                        # ADC sıfırda birkaç on mV gösterebilir / the ADC may read a few tens of mV at 0 V
16time.sleep_ms(time.ticks_diff(time.ticks_ms(), d0) + 1000)   # aynı süre kadar daha bekle / wait as long again
17
18t0 = time.ticks_ms()
19charge.value(1)                 # şarjı başlat / start charging
20tau = None
21while True:
22    t = time.ticks_diff(time.ticks_ms(), t0)
23    v = volts()
24    if tau is None and v >= 3.3 * 0.632:    # 2,086 V → bir τ / one τ
25        tau = t
26    print(t, round(v, 3))
27    if (tau is not None and t >= 5 * tau) or t > 60000:
28        break
29    time.sleep_ms(20)
30
31if tau is not None:
32    print("tau =", tau, "ms  C =", round(tau / 1000 / R * 1e6, 1), "uF")

Идеи проектов с конденсаторами

  • Аппаратный антидребезг: поставь 100 nF – 1 µF параллельно кнопке; вместе с подтяжкой 10 kΩ получается фильтр с τ = 1–10 мс, и дребезг затухает раньше, чем дойдёт до кода.
  • Аналоговое напряжение из PWM: с помощью RC-фильтра преврати выход PWM в ровное напряжение 0–5 V и измерь его мультиметром.
  • Мигающий светодиод на 555: в таймере 555 частоту задают два резистора и один конденсатор: f ≈ 1.44 / ((R1 + 2·R2) · C). Номиналы посчитай в утилите «Таймер 555».
  • Плавно гаснущая лампа: после выключателя поставь конденсатор 1000 µF параллельно питанию светодиода с резистором; когда выключатель разрывает питание, светодиод гаснет не сразу, а плавно, по мере разряда конденсатора. Время угасания задают резистор и ёмкость вместе.
  • Ёмкостные датчики: ёмкостный датчик влажности почвы измеряет ёмкость, которая меняется из-за воды в почве; его электроды не открыты, поэтому он не корродирует.
  • Простой измеритель ёмкости: объедини опыт выше с I2C LCD и показывай номинал своих конденсаторов на экране.

Частые ошибки и как их исправить

  • Думать, что 104 — это 104 µF: 104 — это 100 nF; трёхзначные коды всегда в пикофарадах.
  • Электролит поставлен наоборот: конденсатор греется, вздувается или лопается; вывод с полосой идёт на сторону GND (у танталовых полоса — плюс).
  • Слишком низкое номинальное напряжение: конденсатор на 10 V в линии 12 V быстро выходит из строя; оставляй запас хотя бы в 1,5–2 раза.
  • Развязывающий конденсатор далеко от чипа: конденсатор 100 nF в 10 см от микросхемы теряет эффект из-за индуктивности проводов; выводы должны быть короткими, а сам он — прямо у пинов питания.
  • Arduino перезагружается при запуске мотора: напряжение питания на мгновение проседает; питай мотор отдельно, добавь 100–470 µF на питание и соедини земли (Почему Arduino постоянно перезагружается?).
  • «Failed to connect to ESP32: Timed out waiting for packet header» на ESP32 (не удалось подключиться): на некоторых платах схема автопрограммирования ошибается с таймингом; конденсатор 1–10 µF между EN и GND часто избавляет от необходимости удерживать кнопку BOOT.
Чтобы проверить, исправен ли конденсатор, сначала разряди его, ненадолго замкнув выводы через резистор, затем выпаяй его из схемы и измерь в режиме измерения ёмкости мультиметра. Если значение укладывается в допуск с маркировки и корпус не вздут, конденсатор, скорее всего, в порядке. Учти, что мультиметр не показывает ESR, поэтому на старых платах питания конденсатор может показывать правильную ёмкость, но всё равно вызывать неисправности из-за выросшего внутреннего сопротивления. Подробности — в статье Как пользоваться мультиметром.

После резисторов и светодиодов конденсатор — самая фундаментальная деталь, которую нужно освоить; когда τ = R·C станет понятной, а 100 nF рядом с каждой микросхемой войдёт в привычку, твои схемы будут работать гораздо надёжнее. Следующий шаг — катушка индуктивности в статье Что такое катушка индуктивности? В приложении BlueGrays есть проекты со светодиодом на кнопке, измерением света фоторезистором, плавным зажиганием светодиода через PWM и WS2812B, с пошаговыми схемами и кодом, так что новые знания о конденсаторах можно сразу опробовать в настоящих схемах.

Частые вопросы

Для чего нужен конденсатор?

Конденсатор ненадолго накапливает электрический заряд и быстро отдаёт его при необходимости. В электронных схемах им сглаживают напряжение питания, фильтруют помехи, задают время, блокируют постоянный ток, пропуская переменные сигналы, и подавляют дребезг кнопок. Почти на каждой электронной плате десятки конденсаторов.

Чем конденсатор отличается от батареи?

Батарея хранит энергию химически, долго выдаёт почти постоянное напряжение и вмещает гораздо больше энергии. Конденсатор хранит энергию в электрическом поле; он заряжается и разряжается за миллисекунды, но его напряжение при разряде всё время падает. Поэтому конденсатор — не долговременный источник питания, а быстрый буфер для резких запросов.

Сколько нанофарад в конденсаторе 104?

Код 104 означает 10 и 4 нуля, то есть 100 000 pF. Это равно 100 nF или 0,1 µF. Это самый распространённый номинал развязки для Arduino и микросхем.

Как отличить плюс и минус электролитического конденсатора?

У нового электролитического конденсатора длинный вывод — плюс (+), короткий — минус (−). Светлая полоса со знаками минуса на корпусе тоже отмечает отрицательную сторону. У танталовых конденсаторов правило обратное: полоса отмечает положительный вывод.

Что будет, если подключить конденсатор наоборот?

С неполярными керамическими и плёночными конденсаторами ничего не случится. Если электролитический или танталовый конденсатор подключён наоборот, через него течёт большой ток утечки; он нагревается, вздувается и может лопнуть, а танталовые даже загораются. Если заметишь перевёрнутый конденсатор, сразу отключи питание и замени деталь.

Можно ли поставить конденсатор с более высоким номинальным напряжением?

Да, конденсатор той же ёмкости с более высоким номинальным напряжением использовать можно всегда; например, вместо 16 V можно поставить 25 V или 50 V. Разница лишь в размере корпуса и чуть более высокой цене. Обратное опасно: конденсатор с номиналом ниже напряжения схемы скоро выйдет из строя.

Все проекты
Управление светодиодом кнопкой (удержание)
#9Новичок

Управление светодиодом кнопкой (удержание)

Как дверной звонок: свет горит, пока ты нажимаешь, и гаснет, когда отпускаешь. Arduino всё время слушает кнопку; пока она нажата, светодиод горит, а как только ты убираешь палец, он гаснет. Эта просте

4.8(113)
229
Включение и выключение светодиода кнопкой (вкл/выкл)
#10Новичок

Включение и выключение светодиода кнопкой (вкл/выкл)

Нажми кнопку один раз — свет загорится, нажми ещё раз — погаснет, совсем как выключатель в твоей комнате. Arduino замечает каждое нажатие и переводит светодиод в противоположное состояние, выжидая кор

4.8(100)
167
Измерение освещённости с LDR
#11Новичок

Измерение освещённости с LDR

Хочешь увидеть яркость своей комнаты в виде числа? LDR — маленькая деталь, реагирующая на свет, — измеряет освещённость вокруг, а Arduino каждые полсекунды выводит значение на экран компьютера. Закрой

4.6(81)
139
Антидребезг кнопки на Pico: IRQ против программного опроса
#159Средний
Premium

Антидребезг кнопки на Pico: IRQ против программного опроса

Нажимаешь кнопку один раз, а код насчитывает 3–4? Это дребезг контактов — металлические контакты колеблются доли миллисекунды! Сравни в мониторе два способа подсчёта рядом: сырой опрос (ловит дребезг и считает лишнее) и IRQ + программный антидребезг (точно). Изучи физику дребезга, программный антидребезг (ticks_diff() > 50ms), регистрацию прерывания Pin.irq(), триггер IRQ_FALLING, обработчики ISR и безопасность global в ISR.

0.0(0)
12
Плавное затухание светодиода с PWM на Pico (эффект дыхания)
#160Новичок

Плавное затухание светодиода с PWM на Pico (эффект дыхания)

Светодиод больше не просто мигает — он дышит! С помощью PWM (широтно-импульсной модуляции) Raspberry Pi Pico яркость светодиода медленно растёт и медленно падает, как огонёк спящего MacBook. Изучи класс machine.PWM, duty_u16() (16-битная яркость 0–65535), частоту PWM (freq(1000) — 1000 циклов вкл/выкл в секунду, мерцания не видно), циклы range() с шагом (вверх и вниз) и почти аналоговый выход с цифрового пина.

0.0(0)
4
Плавное затухание светодиода с PWM на ESP32
#110Новичок

Плавное затухание светодиода с PWM на ESP32

Плавное изменение яркости светодиода от 0 до максимума и от максимума до 0. PWM управляется через analogWrite(), как в Arduino, — тот же синтаксис без проблем работает в ESP32 Arduino Core 3.0+. Достаточно определения пина, pinMode и analogWrite.

4.8(36)
54
Работа со светодиодной лентой WS2812B
#69Средний
Premium

Работа со светодиодной лентой WS2812B

Познакомься с умной светодиодной лентой, где каждому огоньку можно задать свой цвет. Arduino сначала зажигает первые пять светодиодов красным, через секунду остальные пять — синим, затем выключает все

4.8(54)
70
Цифровой вольтметр с LCD-дисплеем
#56Средний
Premium

Цифровой вольтметр с LCD-дисплеем

Узнай, какое напряжение даёт батарейка или блок питания, с помощью измерителя, собранного своими руками. Делитель из двух резисторов понижает высокое напряжение до уровня, который может прочитать плат

4.5(27)
36