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

Коды 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.

Модуль стабилизатора AMS1117 3.3 V с SMD-резистором с маркировкой 102
Модуль стабилизатора AMS1117 3.3 V: на SMD-резисторе справа написано 102, а рядом на плате напечатано 1K, то есть 1 kΩ. Видимые 106 и 104 напечатаны на плате, а не на самих конденсаторах; на большинстве керамических SMD-конденсаторов маркировки нет вообще.

Что такое SMD-резистор и почему на нём нет цветового кода?

SMD (Surface Mount Device) — деталь для поверхностного монтажа: её выводы не вставляются в отверстия, а припаиваются прямо к контактным площадкам на поверхности печатной платы. SMD-резистор — маленький керамический брусок с металлизированными торцами; чёрный защитный слой сверху защищает резистивную плёнку и несёт на себе код. Резистор 0805 имеет размер всего 2 × 1,25 мм, поэтому рисовать на нём четыре цветные полосы непрактично, и номинал печатают кодом из белых цифр. На резисторах типоразмера 0402 и меньше места нет даже для этого, поэтому они совсем без маркировки. Помни, что код говорит только о сопротивлении: допустимые мощность и напряжение определяются размером корпуса, а допуск обычно можно угадать по типу кода.

Тип кодаПримерКак читатьНоминалГде обычно встречается
3 цифры10310 и 3 нуля10 kΩДопуск 5%, 0603 и больше
4 цифры4702470 и 2 нуля47 kΩДопуск 1%, 0805 и больше
С буквой R4R7R = десятичная запятая4,7 ΩНоминалы меньше 10 Ω
EIA-9601C100 из таблицы × 10010 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 и модулях
10010 ΩНебольшие последовательные резисторы, ограничение тока
22022 ΩПоследовательные резисторы на линиях данных USB
221220 ΩОграничение тока светодиода при 5 V
331330 ΩСветодиоды и базовые резисторы транзисторов
1021 kΩСветодиоды питания и состояния на плате
4724,7 kΩПодтягивающие резисторы I2C и 1-Wire
10310 kΩПодтягивающие резисторы сброса и кнопок
47347 kΩДелители напряжения
104100 kΩДелители для измерения напряжения батареи
1051 MΩВысокоомные входы
Самая частая ошибка: резистор с маркировкой 100 — это не 100 Ω, а 10 Ω (10 и ни одного нуля). Так же 220 = 22 Ω, а 470 = 47 Ω. Резистор на 100 Ω в трёхзначном коде маркируется 101, а в четырёхзначном — 1000. Осторожнее и со 104: на резисторе это 100 kΩ, а на конденсаторе — 100 nF, потому что коды конденсаторов задаются в пикофарадах, а не в омах.

Четырёхзначные коды и буква 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,00101Z = 0,1 Ω
Y или R× 0,0101Y = 1 Ω
X или S× 0,168X = 49,9 Ω
A× 101A = 100 Ω
B или H× 1085B = 7,5 kΩ
C× 10001C = 10 kΩ
D× 100051D = 332 kΩ
E× 10 00001E = 1 MΩ
F× 100 00001F = 10 MΩ
КодЗначениеКодЗначение
0110051332
0511055365
0912159402
1313363442
1815066475
2216568499
2618273562
3020077619
3422185750
4226796976
Если код даёт бессмысленный результат, поверни деталь на 180 градусов и прочитай ещё раз. На маленьких корпусах легко спутать 6 и 9: резистор 681 вверх ногами выглядит как 189, а это было бы 18 GΩ, и таких SMD-резисторов не бывает; в правильном положении это 680 Ω. Является ли найденное значение стандартным, можно проверить в утилите стандартных номиналов.

Подчёркивание, нулевой резистор и другие особые случаи

  • Подчёркивание: некоторые производители подчёркивают трёхзначный код на резисторах с допуском 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 и меньше нужны лупа и терпение. Значения ниже типичные; точные пределы у разных производителей немного отличаются.

Дюймовый кодМетрический кодРазмер (мм)Типичная мощностьТипичное макс. напряжениеМаркировка
020106030,6 × 0,31/20 W25 VНет
040210051,0 × 0,51/16 W50 VОбычно нет
060316081,6 × 0,81/10 W75 V3 цифры или EIA-96
080520122,0 × 1,251/8 W150 V3 или 4 цифры
120632163,2 × 1,61/4 W200 V3 или 4 цифры
121032253,2 × 2,51/2 W200 V3 или 4 цифры
201050255,0 × 2,53/4 W200 V3 или 4 цифры
251263326,3 × 3,21 W200 V3 или 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 или корпус крупнее. Логика этих расчётов объясняется в статье Закон Ома простыми словами.

Два разных типоразмера носят одно и то же имя: дюймовый 0603 (1,6 × 0,8 мм) и метрический 0603 (0,6 × 0,3 мм, в дюймовой системе это 0201) сильно отличаются. При заказе проверяй, указан ли на странице товара метрический эквивалент (1608); иначе можно получить детали размером с пылинку.

Коды 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. Для быстрого перевода кодов воспользуйся утилитой кодов конденсаторов.

КодpFnF / µFТипичное применение
22022 pF0,022 nFКонденсаторы рядом с кварцевым резонатором на 16 MHz
101100 pF0,1 nFФильтрация и подавление помех
1021000 pF1 nFФильтрация
10310 000 pF10 nFФильтрация помех на линиях кнопок и датчиков
104100 000 pF100 nF = 0,1 µFРазвязка у вывода питания каждой микросхемы
474470 000 pF470 nFСтабилизаторы и фильтры
1051 000 000 pF1 µFВыход стабилизатора
10610 000 000 pF10 µ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 могут терять большую часть ёмкости при росте приложенного постоянного напряжения.

Электролитические конденсаторы с номиналом, напечатанным на корпусе
На электролитических конденсаторах вместо кода прямо печатают номинал и напряжение (например, 470 µF 16 V); обычно то же самое касается и алюминиевых SMD-электролитов.

Танталовые конденсаторы обычно имеют жёлтый, оранжевый или чёрный прямоугольный корпус. На них стоит код в 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 = сток. Распиновку и аналоги смотри в утилите распиновки транзисторов, а как они работают — в статье Что такое транзистор?.

КодКорпусДетальЧто это
1AMSOT-23MMBT3904NPN-транзистор (SMD-версия 2N3904)
2ASOT-23MMBT3906PNP-транзистор (SMD-версия 2N3906)
1PSOT-23MMBT2222ANPN-транзистор
1FSOT-23BC847BNPN-транзистор (аналог BC547B)
3FSOT-23BC857BPNP-транзистор (аналог BC557B)
J3YSOT-23S8050NPN-транзистор, очень часто встречается на модулях
2TYSOT-23S8550PNP-транзистор
702SOT-232N7002N-канальный маломощный MOSFET
A7SOT-23BAV99Сдвоенный импульсный диод, включённый последовательно
T4SOD-1231N4148WБыстрый импульсный диод
M7SMAАналог 1N4007Выпрямительный диод 1 A, 1000 V
SS14SMASS14Диод Шоттки 1 A, 40 V
На SMD-диодах черта на корпусе отмечает катод. У SMD-светодиодов маркировка зависит от производителя: у большинства со стороны катода есть зелёная черта, точка или срезанный угол, но слепо на это полагаться не стоит. Переключи мультиметр в режим проверки диодов и коснись щупами выводов; если светодиод слабо светится, то вывод под красным щупом — анод. Подробности — в статьях Что такое диод? и Как пользоваться мультиметром.

Как измерить резистор без маркировки или с нечитаемым кодом: омметр на 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 UnoESP32Raspberry Pi Pico
Верхний конец Rref5V3V33V3(OUT)
Точка соединения Rref и RxA0GPIO 34GP26 (ADC0)
Нижний конец RxGNDGNDGND
C++ (Arduino IDE)
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.

C++ (Arduino IDE)
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?.

MicroPython
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-резистора на модуле выбирай деталь того же номинала и того же типоразмера или на размер больше, если позволяют площадки, и не забывай про допустимую мощность. Для пайки понадобятся паяльник с тонким жалом, пинцет и флюс: сначала нанеси немного припоя на одну площадку, возьми деталь пинцетом и посади её на эту площадку, затем припаяй второй конец. Подробности — в статье Как паять.

Идеи для тренировки с 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 с опорным резистором известного номинала.

Все проекты
Мигающий светодиод
#1Новичок

Мигающий светодиод

Самое первое «привет» в электронике: включение и выключение одного светодиода. Arduino включает и выключает светодиод через короткие промежутки, поэтому свет быстро мигает. Ты самым простым способом в

4.6(188)
1127
Измерение освещённости с LDR
#11Новичок

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

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

4.6(81)
139
Мигающий светодиод на ESP32
#103Новичок

Мигающий светодиод на ESP32

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

4.7(37)
99
Измерение освещённости модулем LDR на ESP32
#113Новичок

Измерение освещённости модулем LDR на ESP32

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

4.6(36)
55
Raspberry Pi Pico: управление внешним светодиодом (макетная плата)
#148Новичок

Raspberry Pi Pico: управление внешним светодиодом (макетная плата)

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

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

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

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

4.5(27)
36
Измерение температуры с NTC и LCD-дисплеем 2x16
#44Новичок
Premium

Измерение температуры с NTC и LCD-дисплеем 2x16

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

4.5(33)
44
Работа с RGB-светодиодом
#39Новичок
Premium

Работа с RGB-светодиодом

В одном светодиоде прячутся три цвета: RGB-светодиод загорается красным, затем зелёным, затем синим, каждый цвет горит полсекунды и полсекунды не горит, а потом цикл начинается снова. Нужны всего один

4.9(73)
98