Коды SMD-резисторов: как читать 103, 4702, 01C и 4R7
Как читать коды SMD-резисторов: трёх- и четырёхзначные коды, EIA-96 (01C), R вместо запятой (4R7), типоразмеры 0603/0805/1206, код конденсатора 104 и маркировка SMD-транзисторов.
Коды SMD-резисторов — короткая маркировка из трёх или четырёх символов, которую наносят на резисторы для поверхностного монтажа (SMD) вместо цветных полос; она показывает сопротивление в омах. Если знать правило, читать её очень легко: 103 = 10 kΩ, 4702 = 47 kΩ, 4R7 = 4,7 Ω и 01C = 10 kΩ. В трёхзначном коде первые две цифры — значение, а последняя — сколько нулей к нему дописать; в четырёхзначном коде значение задают первые три цифры. Буква R заменяет десятичную запятую, а коды из двух цифр и буквы читаются по таблице EIA-96.
Arduino Nano, отладочные платы ESP32, модули датчиков и платы стабилизаторов почти целиком собраны из таких крошечных деталей. Чтобы отремонтировать модуль, понять, какой резистор питает светодиод на плате, узнать номинал подтягивающего резистора или развести собственную печатную плату, нужно уметь читать эти коды. Кроме резисторов, в руководстве разобраны коды SMD-конденсаторов (104 = 100 nF), коды типоразмеров вроде 0603, 0805 и 1206, короткая маркировка SMD-транзисторов и диодов, а также измерение детали совсем без маркировки с помощью Arduino.

Что такое SMD-резистор и почему на нём нет цветового кода?
SMD (Surface Mount Device) — деталь для поверхностного монтажа: её выводы не вставляются в отверстия, а припаиваются прямо к контактным площадкам на поверхности печатной платы. SMD-резистор — маленький керамический брусок с металлизированными торцами; чёрный защитный слой сверху защищает резистивную плёнку и несёт на себе код. Резистор 0805 имеет размер всего 2 × 1,25 мм, поэтому рисовать на нём четыре цветные полосы непрактично, и номинал печатают кодом из белых цифр. На резисторах типоразмера 0402 и меньше места нет даже для этого, поэтому они совсем без маркировки. Помни, что код говорит только о сопротивлении: допустимые мощность и напряжение определяются размером корпуса, а допуск обычно можно угадать по типу кода.
| Тип кода | Пример | Как читать | Номинал | Где обычно встречается |
|---|---|---|---|---|
| 3 цифры | 103 | 10 и 3 нуля | 10 kΩ | Допуск 5%, 0603 и больше |
| 4 цифры | 4702 | 470 и 2 нуля | 47 kΩ | Допуск 1%, 0805 и больше |
| С буквой R | 4R7 | R = десятичная запятая | 4,7 Ω | Номиналы меньше 10 Ω |
| EIA-96 | 01C | 100 из таблицы × 100 | 10 kΩ | Резисторы 0603 с допуском 1% |
| Ноль | 0, 00, 000 | Перемычка | 0 Ω | Соединение дорожек, выбор вариантов схемы |
Как читать трёхзначный код SMD-резистора
Самый распространённый формат — трёхзначный код. Первые две цифры — значащая часть номинала, а третья показывает, сколько нулей дописать после неё, то есть степень десяти. В коде 103 после 10 дописываются три нуля: 10 000 Ω = 10 kΩ. Точно так же 472 = 47 и два нуля = 4700 Ω = 4,7 kΩ; 221 = 220 Ω; 334 = 330 kΩ; а 105 = 1 000 000 Ω = 1 MΩ. Такие коды обычно ставят на резисторы с допуском ±5%, а номиналы берутся из ряда E24: 10, 11, 12, 13, 15, 16, 18, 20, 22, 24, 27, 30, 33, 36, 39, 43, 47, 51, 56, 62, 68, 75, 82 и 91, а также их значения, умноженные на степени десяти. Если прочитанного значения нет в этом списке, значит, код читается вверх ногами или деталь вовсе не резистор.
| Код | Номинал | Где обычно стоит на платах Arduino и модулях |
|---|---|---|
| 100 | 10 Ω | Небольшие последовательные резисторы, ограничение тока |
| 220 | 22 Ω | Последовательные резисторы на линиях данных USB |
| 221 | 220 Ω | Ограничение тока светодиода при 5 V |
| 331 | 330 Ω | Светодиоды и базовые резисторы транзисторов |
| 102 | 1 kΩ | Светодиоды питания и состояния на плате |
| 472 | 4,7 kΩ | Подтягивающие резисторы I2C и 1-Wire |
| 103 | 10 kΩ | Подтягивающие резисторы сброса и кнопок |
| 473 | 47 kΩ | Делители напряжения |
| 104 | 100 kΩ | Делители для измерения напряжения батареи |
| 105 | 1 MΩ | Высокоомные входы |
Четырёхзначные коды и буква R: 4702, 1002, 4R7
Четырёхзначный код используют на прецизионных резисторах с допуском ±1%. Логика та же, но значащая часть состоит из трёх цифр: первые три цифры — значение, четвёртая — число нулей. 1002 = 100 и два нуля = 10 000 Ω = 10 kΩ; 4702 = 47 kΩ; 1001 = 1 kΩ; 1000 = 100 Ω; 2201 = 2,2 kΩ; 1004 = 1 MΩ. Три значащие цифры позволяют записать и промежуточные номиналы ряда E96, например 49,9 kΩ (4992) или 4,99 kΩ (4991). Короче говоря, один и тот же резистор на 10 kΩ в зависимости от производителя и точности может встретиться как 103, 1002 или 01C; все три кода означают один номинал.
Номиналы меньше 10 Ω нельзя записать числом нулей, поэтому место десятичной запятой занимает буква R. 4R7 = 4,7 Ω, 2R2 = 2,2 Ω, 1R0 = 1 Ω, а R47 = 0,47 Ω. В четырёхсимвольном варианте действует то же правило: 10R0 = 10 Ω, 4R70 = 4,7 Ω. Совсем маленькие номиналы — обычно шунты для измерения тока: R100 = 0,1 Ω (встречается на модулях измерения тока вроде INA219) и R010 = 0,01 Ω, то есть 10 mΩ. На схемах и в перечнях элементов та же идея применяется с буквами k и M: 4k7 = 4,7 kΩ, 2M2 = 2,2 MΩ. Такую запись предпочитают потому, что десятичный знак, потерявшийся при печати, мог бы превратить 4,7 kΩ в 47 kΩ.
Как читать коды EIA-96 (01C, 68X, 85B)
Четыре цифры на резистор 1% типоразмера 0603 не помещаются. Для таких резисторов используют трёхсимвольную систему EIA-96: первые две цифры (01–96) — порядковый номер значения в ряду E96, а буква в конце — множитель. Значение под номером 01 — это 100, под номером 68 — 499, под номером 85 — 750. Значит, 01C = 100 × 100 = 10 kΩ, 68X = 499 × 0,1 = 49,9 Ω, а 85B = 750 × 10 = 7,5 kΩ. Здесь по цифрам ничего не вычислишь: значение нужно искать в таблице. Быстрее всего ввести код в утилиту SMD-кодов, которая понимает трёх- и четырёхзначные коды, запись с R и EIA-96.
| Буква | Множитель | Пример |
|---|---|---|
| Z | × 0,001 | 01Z = 0,1 Ω |
| Y или R | × 0,01 | 01Y = 1 Ω |
| X или S | × 0,1 | 68X = 49,9 Ω |
| A | × 1 | 01A = 100 Ω |
| B или H | × 10 | 85B = 7,5 kΩ |
| C | × 100 | 01C = 10 kΩ |
| D | × 1000 | 51D = 332 kΩ |
| E | × 10 000 | 01E = 1 MΩ |
| F | × 100 000 | 01F = 10 MΩ |
| Код | Значение | Код | Значение |
|---|---|---|---|
| 01 | 100 | 51 | 332 |
| 05 | 110 | 55 | 365 |
| 09 | 121 | 59 | 402 |
| 13 | 133 | 63 | 442 |
| 18 | 150 | 66 | 475 |
| 22 | 165 | 68 | 499 |
| 26 | 182 | 73 | 562 |
| 30 | 200 | 77 | 619 |
| 34 | 221 | 85 | 750 |
| 42 | 267 | 96 | 976 |
Подчёркивание, нулевой резистор и другие особые случаи
- Подчёркивание: некоторые производители подчёркивают трёхзначный код на резисторах с допуском 1%, но номиналом из ряда E24. Черта не меняет номинал: она отмечает прецизионный резистор и показывает, какой стороной вверх читать код.
- 0, 00 или 000: это перемычка — резистор на ноль ом. Её ставят, чтобы соединить две дорожки на печатной плате или включить либо выключить какую-то опцию; в типоразмерах 0603 и 0805 она обычно выдерживает 1–2 A.
- Резисторы без маркировки: на деталях типоразмера 0402, 0201 и меньше кода нет совсем. Номинал можно узнать только измерением или по этикетке на катушке (ленте).
- Резисторные сборки: сборки из четырёх резисторов в одном корпусе несут один общий код; в сборке с маркировкой 103 четыре резистора по 10 kΩ. Они часто встречаются на платах вроде Arduino Uno.
- Цилиндрические резисторы (MELF): эти SMD-резисторы похожи на маленький цилиндр и, как выводные резисторы, маркируются цветными полосами. Цвета можно расшифровать в утилите цветового кода резисторов.
- SMD-катушки индуктивности: у катушек похожие коды, но единица измерения — микрогенри: 101 = 100 µH, 4R7 = 4,7 µH. Прочитать их поможет утилита кодов катушек индуктивности.
Типоразмеры SMD: что означают 0603, 0805 и 1206?
Код типоразмера говорит о физических размерах детали, а не о её номинале. В распространённой дюймовой системе первые две цифры задают длину, а последние две — ширину в сотых долях дюйма: 0805 — это 0,08 × 0,05 дюйма, то есть примерно 2,0 × 1,25 мм. В метрической системе та же деталь обозначается 2012, в десятых долях миллиметра. Чем больше корпус, тем большую мощность и напряжение выдерживает резистор. Проще всего паять вручную типоразмеры 1206 и 0805; с 0603 удобно работать пинцетом и тонким жалом, а для 0402 и меньше нужны лупа и терпение. Значения ниже типичные; точные пределы у разных производителей немного отличаются.
| Дюймовый код | Метрический код | Размер (мм) | Типичная мощность | Типичное макс. напряжение | Маркировка |
|---|---|---|---|---|---|
| 0201 | 0603 | 0,6 × 0,3 | 1/20 W | 25 V | Нет |
| 0402 | 1005 | 1,0 × 0,5 | 1/16 W | 50 V | Обычно нет |
| 0603 | 1608 | 1,6 × 0,8 | 1/10 W | 75 V | 3 цифры или EIA-96 |
| 0805 | 2012 | 2,0 × 1,25 | 1/8 W | 150 V | 3 или 4 цифры |
| 1206 | 3216 | 3,2 × 1,6 | 1/4 W | 200 V | 3 или 4 цифры |
| 1210 | 3225 | 3,2 × 2,5 | 1/2 W | 200 V | 3 или 4 цифры |
| 2010 | 5025 | 5,0 × 2,5 | 3/4 W | 200 V | 3 или 4 цифры |
| 2512 | 6332 | 6,3 × 3,2 | 1 W | 200 V | 3 или 4 цифры либо с R |
Допустимая мощность обычно указывается для температуры окружающей среды 70 °C и снижается при нагреве, поэтому хорошая привычка — работать примерно на половине предела. Мощность, которую рассеивает резистор, считается по формуле P = V × I или P = I² × R. Пример: чтобы питать красный светодиод током 20 mA от 5 V, нужен резистор (5 − 2) / 0,02 = 150 Ω, а мощность на нём составит 3 V × 0,02 A = 0,06 W. Резистор 0603 (0,1 W) с этим справится, но 0805 работает с большим запасом. Если питать тот же светодиод от 12 V, понадобится 510 Ω, а мощность вырастет до 10 V × 0,02 A = 0,2 W; резистор 1206 будет на пределе, поэтому выбирай 1210 или корпус крупнее. Логика этих расчётов объясняется в статье Закон Ома простыми словами.
Коды SMD-конденсаторов: 104 = 100 nF
Коды конденсаторов устроены так же, как коды резисторов, но единица измерения — пикофарад (pF): первые две цифры — значение, третья — число нулей. 104 = 10 и четыре нуля = 100 000 pF = 100 nF = 0,1 µF. 103 = 10 nF, 102 = 1 nF, 105 = 1 µF, 106 = 10 µF. При переводе единиц помни, что 1 µF = 1000 nF = 1 000 000 pF. Если на третьем месте стоит 8 или 9, это не число нулей, а множитель: 9 = × 0,1, а 8 = × 0,01, поэтому 229 = 2,2 pF, а 479 = 4,7 pF. Буква после значения задаёт допуск: J = ±5%, K = ±10%, M = ±20%. Если буква стоит посередине, она обозначает и единицу, и десятичную запятую: 4n7 = 4,7 nF, p47 = 0,47 pF, 2u2 = 2,2 µF. Для быстрого перевода кодов воспользуйся утилитой кодов конденсаторов.
| Код | pF | nF / µF | Типичное применение |
|---|---|---|---|
| 220 | 22 pF | 0,022 nF | Конденсаторы рядом с кварцевым резонатором на 16 MHz |
| 101 | 100 pF | 0,1 nF | Фильтрация и подавление помех |
| 102 | 1000 pF | 1 nF | Фильтрация |
| 103 | 10 000 pF | 10 nF | Фильтрация помех на линиях кнопок и датчиков |
| 104 | 100 000 pF | 100 nF = 0,1 µF | Развязка у вывода питания каждой микросхемы |
| 474 | 470 000 pF | 470 nF | Стабилизаторы и фильтры |
| 105 | 1 000 000 pF | 1 µF | Выход стабилизатора |
| 106 | 10 000 000 pF | 10 µF | Вход и выход стабилизаторов вроде AMS1117 |
Важный факт: на большинстве керамических SMD-конденсаторов (MLCC) маркировки нет вообще. Номинал этих маленьких коричневых, бежевых или серых брусочков можно узнать только по этикетке на катушке или мультиметром с функцией измерения ёмкости. Цифры 106 и 104 на плате AMS1117 выше напечатаны на плате, а не на конденсаторах. На старых деталях или у некоторых производителей встречается двухсимвольный код из буквы и цифры: буква задаёт значение из ряда E24 (A = 1,0, E = 1,5, J = 2,2, N = 3,3, S = 4,7, W = 6,8), а цифра — число нулей в pF, так что S3 = 4,7 × 1000 pF = 4,7 nF. Обозначения X7R, X5R и C0G (NP0) на этикетке катушки — типы диэлектрика: ёмкость C0G почти не меняется с температурой, а X7R и X5R могут терять большую часть ёмкости при росте приложенного постоянного напряжения.

Танталовые конденсаторы обычно имеют жёлтый, оранжевый или чёрный прямоугольный корпус. На них стоит код в pF (106 = 10 µF, 476 = 47 µF, 107 = 100 µF) и часто буква напряжения: J = 6,3 V, A = 10 V, C = 16 V, D = 20 V, E = 25 V, V = 35 V. Некоторые производители вместо буквы печатают напряжение прямо. Алюминиевые SMD-электролиты — маленькие металлические бочонки; номинал на них напечатан прямо в µF, а чёрный полумесяц сверху отмечает отрицательный (−) вывод. Маркировка вроде 2A104J на плёночных и крупных керамических конденсаторах делится на три части: 2A = 100 V, 104 = 100 nF, J = ±5%. Другие распространённые коды напряжения: 1C = 16 V, 1E = 25 V, 1H = 50 V и 2J = 630 V. Подробнее о типах конденсаторов — в статье Что такое конденсатор?.
Коды SMD-транзисторов и диодов (1AM, J3Y, A7, M7)
Полное наименование детали на маленьких корпусах вроде SOT-23 не помещается, поэтому на транзисторах и диодах ставят код маркировки из 2–3 символов. Единого стандарта для этих кодов нет: один и тот же код у двух производителей может означать совершенно разные детали, а маленькая буква в конце обычно обозначает завод или дату выпуска. При определении детали используй три подсказки вместе: тип корпуса, код маркировки и роль детали в схеме. У биполярных транзисторов в SOT-23 порядок выводов обычно такой: 1 = база, 2 = эмиттер, 3 = коллектор; у MOSFET вроде 2N7002 — 1 = затвор, 2 = исток, 3 = сток. Распиновку и аналоги смотри в утилите распиновки транзисторов, а как они работают — в статье Что такое транзистор?.
| Код | Корпус | Деталь | Что это |
|---|---|---|---|
| 1AM | SOT-23 | MMBT3904 | NPN-транзистор (SMD-версия 2N3904) |
| 2A | SOT-23 | MMBT3906 | PNP-транзистор (SMD-версия 2N3906) |
| 1P | SOT-23 | MMBT2222A | NPN-транзистор |
| 1F | SOT-23 | BC847B | NPN-транзистор (аналог BC547B) |
| 3F | SOT-23 | BC857B | PNP-транзистор (аналог BC557B) |
| J3Y | SOT-23 | S8050 | NPN-транзистор, очень часто встречается на модулях |
| 2TY | SOT-23 | S8550 | PNP-транзистор |
| 702 | SOT-23 | 2N7002 | N-канальный маломощный MOSFET |
| A7 | SOT-23 | BAV99 | Сдвоенный импульсный диод, включённый последовательно |
| T4 | SOD-123 | 1N4148W | Быстрый импульсный диод |
| M7 | SMA | Аналог 1N4007 | Выпрямительный диод 1 A, 1000 V |
| SS14 | SMA | SS14 | Диод Шоттки 1 A, 40 V |
Как измерить резистор без маркировки или с нечитаемым кодом: омметр на Arduino
Если код стёрся, деталь типоразмера 0402 или в результате нет уверенности, надёжнее всего её измерить. При измерении мультиметром по возможности выпаяй резистор из схемы или хотя бы отпаяй один его конец: параллельные цепи в схеме занижают показание. Если мультиметра нет, простой омметр можно собрать на Arduino. Схема — это делитель напряжения: последовательно с измеряемым резистором (Rx) подключается опорный резистор известного номинала (Rref), а напряжение в средней точке считывается аналоговым пином. Аналоговое чтение Arduino ратиометрично относительно напряжения питания, поэтому формула очень простая: Rx = Rref × показание / (1024 − показание). Точнее всего результат получается, когда Rx близок к Rref: с опорным резистором 10 kΩ можно измерять резисторы от 1 kΩ до 100 kΩ с точностью около ±2%. Для номиналов около 100 Ω используй опорный резистор 1 kΩ, для мегаомов — 1 MΩ и не забудь обновить константу RREF; если один раз измерить реальное сопротивление опорного резистора мультиметром и вписать его в код, точность заметно вырастет.
| Соединение | Arduino Uno | ESP32 | Raspberry Pi Pico |
|---|---|---|---|
| Верхний конец Rref | 5V | 3V3 | 3V3(OUT) |
| Точка соединения Rref и Rx | A0 | GPIO 34 | GP26 (ADC0) |
| Нижний конец Rx | GND | GND | GND |
1// Basit ohmmetre: 5V - Rref - A0 - Rx - GND / Simple ohmmeter: 5V - Rref - A0 - Rx - GND
2const float RREF = 10000.0; // bilinen direnç, multimetreyle ölçtüğün değeri yaz / known resistor, enter its measured value
3const int OLCUM_PIN = A0;
4
5void setup() {
6 Serial.begin(9600);
7}
8
9void loop() {
10 long toplam = 0;
11 for (int i = 0; i < 16; i++) { // 16 okumanın ortalaması / average of 16 readings
12 toplam += analogRead(OLCUM_PIN);
13 delay(2);
14 }
15 float ham = toplam / 16.0;
16
17 if (ham > 1018) {
18 Serial.println(F("Acik devre / Open circuit"));
19 } else if (ham < 2) {
20 Serial.println(F("Kisa devre / Short circuit"));
21 } else {
22 float rx = RREF * ham / (1024.0 - ham); // Rx = Rref * ham / (1024 - ham)
23 Serial.print(F("Rx = "));
24 if (rx >= 1000) {
25 Serial.print(rx / 1000.0, 2);
26 Serial.println(F(" kOhm"));
27 } else {
28 Serial.print(rx, 1);
29 Serial.println(F(" Ohm"));
30 }
31 }
32 delay(1000);
33}Пусть считает Arduino: дешифратор SMD-кодов в мониторе порта
Программа ниже применяет все правила для резисторов из этой статьи: она понимает трёх- и четырёхзначные коды, запись с R, EIA-96 и перемычки на 0 Ω. Открой монитор порта на скорости 9600 бод с концом строки «Newline» («Новая строка»), введи код вроде 4702 или 68X и нажми Enter. Буква R может быть и десятичной запятой, и множителем EIA-96, поэтому программа сначала считает коды с R десятичной записью (47R = 47 Ω); утилита SMD-кодов следует тому же правилу. Таблица E96 хранится во флеш-памяти с помощью PROGMEM, так что не расходует 2 КБ ОЗУ платы Uno. Код без изменений компилируется и работает и на ESP32. Если монитор порта в новинку, загляни в статью Монитор порта Arduino.
1// SMD direnç kodu çözücü: Seri Monitör'e kodu yaz, değeri gör / SMD resistor code decoder: type a code in the Serial Monitor, see the value
2const uint16_t E96[96] PROGMEM = {
3 100, 102, 105, 107, 110, 113, 115, 118, 121, 124, 127, 130, 133, 137, 140, 143,
4 147, 150, 154, 158, 162, 165, 169, 174, 178, 182, 187, 191, 196, 200, 205, 210,
5 215, 221, 226, 232, 237, 243, 249, 255, 261, 267, 274, 280, 287, 294, 301, 309,
6 316, 324, 332, 340, 348, 357, 365, 374, 383, 392, 402, 412, 422, 432, 442, 453,
7 464, 475, 487, 499, 511, 523, 536, 549, 562, 576, 590, 604, 619, 634, 649, 665,
8 681, 698, 715, 732, 750, 768, 787, 806, 825, 845, 866, 887, 909, 931, 953, 976
9};
10
11// EIA-96 harf çarpanı; bilinmeyen harfte -1 / EIA-96 letter multiplier; -1 for an unknown letter
12float eiaCarpan(char c) {
13 switch (c) {
14 case 'Z': return 0.001;
15 case 'Y': case 'R': return 0.01;
16 case 'X': case 'S': return 0.1;
17 case 'A': return 1;
18 case 'B': case 'H': return 10;
19 case 'C': return 100;
20 case 'D': return 1000;
21 case 'E': return 10000;
22 case 'F': return 100000;
23 default: return -1;
24 }
25}
26
27// Kodu ohma çevirir, geçersizse -1 döner / Converts the code to ohms, returns -1 if invalid
28float smdCoz(String kod) {
29 kod.trim();
30 kod.toUpperCase();
31 int n = kod.length();
32 if (n == 0 || n > 5) return -1;
33
34 int r = kod.indexOf('R');
35 if (r >= 0) { // R ondalık virgüldür: 4R7, R47, 47R / R is the decimal point
36 if (kod.lastIndexOf('R') != r || n < 2) return -1;
37 for (int i = 0; i < n; i++) {
38 if (i != r && !isDigit(kod[i])) return -1;
39 }
40 kod.replace('R', '.');
41 return kod.toFloat(); // "4.7" -> 4.7, ".47" -> 0.47
42 }
43
44 if (n == 3 && isDigit(kod[0]) && isDigit(kod[1]) && isAlpha(kod[2])) { // EIA-96: 01C
45 int sira = kod.substring(0, 2).toInt();
46 float carpan = eiaCarpan(kod[2]);
47 if (sira < 1 || sira > 96 || carpan < 0) return -1;
48 return pgm_read_word(&E96[sira - 1]) * carpan;
49 }
50
51 for (int i = 0; i < n; i++) {
52 if (!isDigit(kod[i])) return -1;
53 }
54 if (n <= 2) return kod.toInt() == 0 ? 0 : -1; // 0 ya da 00: köprü direnci / 0 or 00: jumper
55 long taban = kod.substring(0, n - 1).toInt(); // 3 hane: 2 rakam, 4 hane: 3 rakam / significant digits
56 int sifir = kod[n - 1] - '0'; // son hane: sıfır sayısı / last digit: number of zeros
57 float deger = taban;
58 for (int i = 0; i < sifir; i++) deger *= 10;
59 return deger;
60}
61
62void ohmYaz(float r) {
63 if (r >= 1e6) { Serial.print(r / 1e6, 3); Serial.println(F(" MOhm")); }
64 else if (r >= 1e3) { Serial.print(r / 1e3, 3); Serial.println(F(" kOhm")); }
65 else { Serial.print(r, 3); Serial.println(F(" Ohm")); }
66}
67
68void setup() {
69 Serial.begin(9600);
70 Serial.println(F("SMD kodunu yaz (or. 103, 4702, 4R7, 01C) / Type an SMD code"));
71}
72
73void loop() {
74 if (Serial.available()) {
75 String kod = Serial.readStringUntil('\n');
76 kod.trim();
77 if (kod.length() == 0) return;
78 float r = smdCoz(kod);
79 Serial.print(kod);
80 Serial.print(F(" = "));
81 if (r < 0) Serial.println(F("gecersiz kod / invalid code"));
82 else ohmYaz(r);
83 }
84}Измерение с ESP32 и Raspberry Pi Pico
Чтобы использовать код омметра на ESP32, смени измерительный пин на 34 и подключи верхний конец Rref к пину 3V3. GPIO 34 относится к группе ADC1, которая продолжает работать при включённом Wi-Fi. В отличие от Uno, АЦП ESP32 не ратиометричен относительно напряжения питания и нелинеен у краёв диапазона, поэтому простая замена 1024 на 4096 в формуле может дать ошибку больше 10 процентов. Вместо этого используй analogReadMilliVolts(), которая возвращает откалиброванные милливольты, и запиши формулу как Rx = Rref × V / (3300 − V), где V в милливольтах; если вместо 3300 подставить напряжение, измеренное мультиметром на пине 3V3, результат станет ещё точнее. АЦП насыщается примерно на 3,1 V, поэтому снизь порог обрыва цепи примерно до 3000 mV и держи номинал измеряемого резистора близким к опорному. На Raspberry Pi Pico код на MicroPython ниже и расшифровывает SMD-коды, и измеряет сопротивление на GP26. Функция read_u16() у Pico возвращает значение от 0 до 65535, поэтому 1024 в формуле здесь превращается в 65535. Если Pico в новинку, начни со статьи Что такое Raspberry Pi Pico?.
1from machine import ADC
2import time
3
4E96 = [100, 102, 105, 107, 110, 113, 115, 118, 121, 124, 127, 130, 133, 137, 140, 143,
5 147, 150, 154, 158, 162, 165, 169, 174, 178, 182, 187, 191, 196, 200, 205, 210,
6 215, 221, 226, 232, 237, 243, 249, 255, 261, 267, 274, 280, 287, 294, 301, 309,
7 316, 324, 332, 340, 348, 357, 365, 374, 383, 392, 402, 412, 422, 432, 442, 453,
8 464, 475, 487, 499, 511, 523, 536, 549, 562, 576, 590, 604, 619, 634, 649, 665,
9 681, 698, 715, 732, 750, 768, 787, 806, 825, 845, 866, 887, 909, 931, 953, 976]
10EIA = {"Z": 0.001, "Y": 0.01, "R": 0.01, "X": 0.1, "S": 0.1, "A": 1,
11 "B": 10, "H": 10, "C": 100, "D": 1000, "E": 10000, "F": 100000}
12
13def smd_coz(kod):
14 kod = kod.strip().upper()
15 if "R" in kod: # R ondalık virgüldür: 4R7, R47 / R is the decimal point
16 if kod.count("R") != 1 or not kod.replace("R", "").isdigit():
17 return None
18 return float(kod.replace("R", "."))
19 if len(kod) == 3 and kod[:2].isdigit() and kod[2] in EIA: # EIA-96: 01C
20 sira = int(kod[:2])
21 return E96[sira - 1] * EIA[kod[2]] if 1 <= sira <= 96 else None
22 if kod.isdigit():
23 if len(kod) <= 2:
24 return 0.0 if int(kod) == 0 else None # 0 ya da 00: köprü / 0 or 00: jumper
25 return int(kod[:-1]) * 10 ** int(kod[-1]) # son hane sıfır sayısı / last digit = number of zeros
26 return None
27
28def ohm_yaz(r):
29 if r >= 1e6:
30 return "{:.3g} MOhm".format(r / 1e6)
31 if r >= 1e3:
32 return "{:.3g} kOhm".format(r / 1e3)
33 return "{:.3g} Ohm".format(r)
34
35adc = ADC(26) # GP26 = ADC0
36RREF = 10000 # 3V3 ile GP26 arasındaki bilinen direnç / known resistor between 3V3 and GP26
37
38def olc():
39 toplam = 0
40 for _ in range(32): # 32 okumanın ortalaması / average of 32 readings
41 toplam += adc.read_u16()
42 time.sleep_ms(2)
43 ham = toplam / 32
44 if ham > 65000:
45 return None # açık devre / open circuit
46 return RREF * ham / (65535 - ham)
47
48for kod in ("103", "4702", "4R7", "01C", "68X"):
49 print(kod, "=", ohm_yaz(smd_coz(kod)))
50
51while True:
52 rx = olc()
53 print("Rx =", ohm_yaz(rx) if rx is not None else "acik devre / open circuit")
54 time.sleep(1)Частые ошибки и как их исправить
| Ошибка | Почему так | Решение |
|---|---|---|
| Резистор с маркировкой 100 принимают за 100 Ω | Последняя цифра — число нулей | 100 = 10 Ω; 100 Ω пишется как 101 или 1000 |
| 01C принимают за 100 Ω | Код EIA-96 — это порядковый номер | 01 = 100, C = × 100; итог — 10 kΩ |
| Любую деталь с маркировкой 104 считают резистором на 100 kΩ | Коды конденсаторов задаются в pF | Определи тип детали; на конденсаторе 104 = 100 nF |
| В схеме номинал получается заниженным | Параллельно подключены другие детали | Перед измерением выпаяй резистор или отпаяй один конец |
| Заказанные детали оказались крошечными | Перепутаны дюймовый и метрический 0603 | При заказе проверяй метрический эквивалент (1608) |
| Танталовый конденсатор нагрелся | Он установлен наоборот | Сторона с полосой — плюс; замени деталь |
| Код даёт бессмысленное значение | Прочитан вверх ногами или это не резистор | Поверни на 180 градусов и прочитай снова; при необходимости измерь |
Идеи для тренировки с SMD-кодами
- Изучи свою плату: прочитай коды резисторов на плате Arduino Nano или ESP32; найди коды 102 или 103 рядом со светодиодами и выясни, какой резистор питает какой светодиод.
- Омметр с дисплеем: объедини омметр выше с LCD-дисплеем с I2C и получи портативный измеритель сопротивления.
- Измеритель ёмкости: узнай номинал керамических конденсаторов без маркировки, заряжая их через резистор и измеряя постоянную времени RC; метод описан в статье Что такое конденсатор?.
- Своя печатная плата: спроектируй первую печатную плату с резисторами и конденсаторами 0805; шаги описаны в статье Проектирование печатных плат в EasyEDA.
- Измеритель напряжения батареи: собери делитель из двух SMD-резисторов и измерь напряжение батарейки на 9 V с помощью Arduino; резисторы подбери в утилите делителя напряжения.
- Аккуратная коробка для деталей: храни выпаянные SMD-детали в коробочках, подписанных их кодами; детали без маркировки измерь и запиши номинал на этикетке.
Поначалу чтение SMD-кодов может показаться взломом шифра, но стоит выучить несколько правил, и каждый резистор и конденсатор на плате начнёт рассказывать, зачем он там стоит. Если хочется вспомнить, как устроены резисторы с цветными полосами, загляни в статью Что такое резистор?. В приложении BlueGrays есть проекты, где резисторы играют ключевую роль: от включения светодиода и измерения освещённости с LDR до измерения температуры с NTC и цифрового вольтметра, и у каждого есть пошаговые схемы подключения и код.
Частые вопросы
Что означает 103 на SMD-резисторе?
103 означает 10 и три нуля: 10 000 Ω, то есть 10 kΩ. В трёхзначных кодах первые две цифры — значение, а последняя — число нулей. Тот же резистор на 10 kΩ в версии с допуском 1% может маркироваться 1002, а в типоразмере 0603 — кодом EIA-96 01C.
Сколько ом у SMD-резистора с маркировкой 100?
Код 100 — это 10 Ω, а не 100 Ω: 10 и ни одного нуля. Резистор на 100 Ω в трёхзначном коде маркируется 101, а в четырёхзначном — 1000. Это самая частая ошибка при чтении SMD-кодов.
Какой номинал у SMD-резистора 01C?
01C — код EIA-96, он соответствует 10 kΩ. 01 означает 100, первое значение ряда E96, а буква C — множитель × 100. Такие коды используют на резисторах 1% типоразмера 0603, и номинал можно прочитать только по таблице или с помощью утилиты-дешифратора кодов.
Что означает 104 на конденсаторе?
104 означает 10 и четыре нуля в пикофарадах: 100 000 pF = 100 nF = 0,1 µF. Однако на большинстве керамических SMD-конденсаторов маркировки нет вообще; 104 обычно встречается на выводных дисковых конденсаторах, танталовых конденсаторах или напечатанным на плате.
Чем отличаются SMD-резисторы 0805 и 1206?
Размером, а вместе с ним и допустимой мощностью. Резистор 0805 имеет размер около 2,0 × 1,25 мм и обычно рассчитан на 1/8 W, а 1206 — 3,2 × 1,6 мм и 1/4 W. Номиналы у них записываются одинаковыми кодами; 1206 удобнее для схем с большей рассеиваемой мощностью и для ручной пайки.
Как измерить SMD-резистор без маркировки?
Переключи мультиметр в режим измерения сопротивления и по возможности измеряй резистор, выпаяв его из схемы, потому что параллельные цепи занижают показание. На резисторах типоразмера 0402 и меньше кода нет, поэтому измерение — единственный вариант. Без мультиметра можно собрать простой омметр на Arduino с опорным резистором известного номинала.
Что собрать после прочтения
Все проекты
Мигающий светодиод
Самое первое «привет» в электронике: включение и выключение одного светодиода. Arduino включает и выключает светодиод через короткие промежутки, поэтому свет быстро мигает. Ты самым простым способом в

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

Мигающий светодиод на ESP32
Учит базовой работе с выходами GPIO на ESP32. Эффект мигания получается включением и выключением светодиода с цифрового пина. Это ESP32-версия классического проекта мигания на Arduino UNO; базовые команды мигания в среде Arduino те же, но расположение пинов ESP32 и уровни GPIO 3,3 V отличаются от Arduino UNO.

Измерение освещённости модулем LDR на ESP32
Наблюдение в мониторе порта в реальном времени за сырым значением ADC модуля LDR и относительным процентом освещённости, вычисленным по опорным значениям темноты и света. Этот процент — не измерение в люксах. Учит логике калибровки модуля. Идеально выполнить его перед проектом 10, потому что он нужен для определения порога.

Raspberry Pi Pico: управление внешним светодиодом (макетная плата)
Следующий шаг после встроенного светодиода Pico: подключить внешний светодиод на макетной плате и управлять им через пин GP14. В этом проекте ты узнаешь, как использовать любой пин GPIO общего назначения у Pico как выход, какая полярность у светодиода (длинная ножка = анод/+, короткая = катод/–) и зачем нужен токоограничивающий резистор (220Ω). Без резистора через светодиод пойдёт слишком большой ток, и он может сгореть. Схема очень простая: Pico GP14 → резистор 220Ω → светодиод → GND.

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

Измерение температуры с NTC и LCD-дисплеем 2x16
Измерь температуру вокруг с помощью датчика, похожего на крошечную бусинку. Эта деталь, NTC, при нагреве легче пропускает электричество; Arduino читает это изменение, по формуле переводит его в градус

Работа с RGB-светодиодом
В одном светодиоде прячутся три цвета: RGB-светодиод загорается красным, затем зелёным, затем синим, каждый цвет горит полсекунды и полсекунды не горит, а потом цикл начинается снова. Нужны всего один
Другие статьи
Приложение BlueGrays
Собери эту схему шаг за шагом в телефоне
Схема подключения, код и список деталей на одном экране. 200+ проектов на Arduino, ESP32 и Pico готовы к сборке.
Наведи камеру телефона
Наведи камеру на код — откроется магазин приложений на телефоне.
или открыть магазин

