Подбор номиналов резисторов и конденсаторов

Часто бывает так, что нужно какой-нить резюк номиналом 28.7 к и прочее… Ну нигде в рознице не сыскать. Зато есть полный набор E24 у себя под рукой. Первое, что приходит на ум, параллельно спаять два резюка, есть даже формула расчета:

соответственно обратная формула такая:

И вот, защелкал калькулятор, задымились пальцы в поиске тех самых заветных R1 и R2. Есть предложение попроще: автоматизация. Искал калькуляторы разные, но единственное что нашел, это расчет делителя с подбором номиналов. А вот параллельное соединение резюков (читай — последовательное для конденсаторов) не нашел. Что ж, напишем свой велосипед:

Ну и исходники в приложении.

Update:
Добавил исходники Vga и sasha_tvo, за что им отдельное спасибо
  • +11
  • 23 октября 2015, 15:58
  • Mihail
  • 3

Комментарии (99)

RSS свернуть / развернуть
после того, как программа заработала, обнаружил, что лучший эквивалент для 49.9 Ом является 81 и 130. Раньше ставил два по 100
+1
А разве номинал 81 вообще есть в ряду? В Е24 82 же.
0
а, пардон, действительно, ошибка в программе. Ща исправим)
0
тогда ближайший аналог — 51 и 2.4кОм ))
0
исправил. Вроде теперь правильно:
const double E24[25] = {1.0, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.7, 3.0, 3.3, 3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, 9.1, 10.0};
0
10.0 лишний, это уже следующая декада.
0
10.0 добавлен, чтобы был найден ближайший больший номинал в случае, если исходный больше 9.1 и меньше 10.0
0
Да, я в итоге пришел к тому же решению. И к, гм, добавлению «заведомо большего элемента» (по заветам методички, ага) к кастомному ряду)
0
На самом деле, под 49.9 обычно подразумевается «50 Ом <=1%». Так что 2х100 действительно оптимум… Если они имеют точность 1%.
0
Добавил вычисление наихудшего наименьшего и наибольшего значений в зависимости от допуска исходных резисторов.
Поправил глюк: прога пыталась собрать 11 из двух 11 и 10^17.

hdd.tomsk.ru/desk/dnabuxdp#
p.s. к экзешнику три длл в комплекте, других не просит.
+1
Мой вариант любит собирать номинал из двух одинаковых с ошибкой 50%, если задать в качестве исходных данных номинал из ряда :) По видимому, эффект деления на ноль в формуле расчета R2.
0
Не хватает:
— варианта подбора по последовательному подключению из типорядов
— предложения ближайшего одиночного резистора из типоряда — например пользователь просит 500, а справочник автоматом предлагает 499 из ряда
— проверки по току/мощности.
— Типоряд Пользователя: выбора из базы данных пользователя — доступных у пользователя резисторов — пользователь заполняет (ставит Галочки) в типоряде, а программа грузит пользовательский типоряд из файла
0
Унес в софт.

Вроде мелочь, а полезная штука. Утащил себе :)
0
перезалей себе)
0
Если кому надо будет рабочий комплект со всеми библиотеками — сделаю на яндексе со всеми библиотеками
0
Такие вещи кмк лучше на github или bitbucket выкладывать…
0
C резисторами все просто. Надо считать не сопротивление, а проводимость.
Тогда хватит и экселя. Для перевода ряда в антиряд.
Ну и с кондерами тоже. Складывать антиемкость :) (1/С)
Но фулл автоматик с выбором ряда — кул.
+
+1
Проводимости — ровным счетом ничего не дадут, потому что проводимости тоже имеют ступеньку. Так что сам вопрос легкости подбора остается открытым. Да и еще: 45,(45)uG поди додумайся, что речь о резисторе 22кОм. Мозг вскипит такие штуки складывать.
0
Пардон, 45,(45)uS (микросименс)
0
А хорошо бы для вычисления еще и погрешность исходного ряда учесть:
33+-5% и 220+-5% =28.7+-??%
0
нужно какой-нить резюк номиналом 28.7 к и прочее… Ну нигде в рознице не сыскать
28,7К есть в рознице
ну и сама версия данной программы для многих бесполезна из-за нерабочести в данной поставке… хотя, что мешает самим нуждающимся написать арифметическую задачку начальной школы в ВаськеНэт или Дельфи?
0
28,7+-5%. Можешь проверить) худший вариант либо 31,35 и 209 =27,26 (-5%); либо 34.65 и 231 = 30,13 (+5%)
p.s. Вообще легко доказывается в общем случае)
0
При желании можно и 0,1% достать из коробочки

и относительно размера самодостаточной программы — за что люблю Дельфи… никогда ни у кого не появляется сообщении об отсутствующем компоненте…
0
28,7+-5%. Можешь проверить)
где ты 5% увидел?
Пересмотри фотку — на ней
Резистор металлоплёночный MF-25 (С2-23) 0.25 Вт, 28,7 кОм, 1%
Можешь проверить по документации
Точность: ±5% (J), ±1% (F), ±0.5% (D), ±0.1% (B)
есть и 0,01… но размеры и цены… зелёный ниже из приёмки «5», а от девятки, впаянной в цепь светодиода у некоторых будет помрачнение их бытовой логики.
0
Для андроида есть прога ElectroDroid, на вкладке «РАСЧЕТ» есть пункт «Послед. и паралл. резисторы» она выдает 2 варианта для последовательного и параллельного включения резисторов. Задается сопротивление и ряд от E6 до E192. Выдает два варианта, последовательное и параллельное включение. Пишет погрешность. Короче почти тоже самое, что у автора ;) А телефон всегда под рукой, в отличии от компа. Плюс там много подобных справочников и калькуляторов.
Например, недавно нужен был 5K1 (ну не было у меня тогда E24) так и делал из двух параллельных 5K6 & 56K. Ошибка -0.18%, сопротивление 5К09.
0

Что это ему надо?
0
Положить в папку с программой файл Qt5Core.dll
0
И все остальные файлы, которые программа попросит.
0
Кьют (Qt) ему нужен. И по хорошему — именно тот, с которым собирали. А вообще, подобная программка на кьюте — издевательство.
0
Вместе с Qt поставляется утилита «windeployqt.exe». Она собирает все необходимые зависимости в папку с программой, после чего таких проблем не возникает.
0
Если не считать проблемой того, что с 50-килобайтной программой тянется 20 метров библиотек. Оно, конечно, работает, но немного некрасиво.
+1
Да уж...(Который раз ловлю себя на том, что я уже перестал удивляться.)

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

А если уж так хочется графики, то можно использовать (например) TkInter, который входит в состав пакетов Питона по умолчанию.
-1
Это если не считать сам питон. Который хоть и полегче кьюта, на зато его ставить отдельно надо. Если, конечно, речь не о линуксе — но там и кьют обычно из коробки есть, так что от проги остается только основной исполнимый файл, вполне компактный.
К тому же, оно будет «менее килобайта» практически на любом скриптовом языке, не только на питоне.
+2
Дак в то-то и дело, что Питон входит в состав многих дистрибутивов Линукс. К стати, TkInter тоже входит в состав Питона (который под Линукс) по умолчанию.
Поэтому вообще нет никаких напряг.

И есть еще одно неоспоримое преимущество Питона — не надо компилировать. При создании проги — если допустил ошибку, исправляешь исходник и тут же запускаешь его снова.

Я не испытываю большой любви к Питону. Ну, такой же как к С/С++. Мне много чего в нём не нравится. Но в мире есть много задач, где применение Питона (а не С/С++) будет наиболее удачным. Мне кажется, что вот эта задача, как как раз и находится в поле Питона, я не С/С++. И уж тем более не Qt.

У меня, зоопарк Линуксов на компах. Более того, иногда на некоторых компах сносится один дистрибутив, и устанавливается совершенно другой. (Например, снес Ubuntu-10.04 LTS, установил Debian-8.2). И вот как-то так получается, что я абсолютно не испытываю несовместимости своих самопальных Питоновских программ на этом зоопарке. Везде всё работает, не надо ничего дополнительно подкачивать и прикручивать.

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

(К стати, а кто-нибудь может объяснить за что он минусы ставит? Мне в общем-то пофигу на эти минусы. Просто интересно, чем товарищ руководствуется при вынесении своей оценки?)
-1
Поэтому вообще нет никаких напряг.
Речь о винде. В линуксе и с кьютом никаких напряг.
А так лично я для всяких мелких скрипто-утилиток использую Lua. Но для гуя на ней тоже придется много чего тащить.
0
Тогда я вообще извращуга… Не так давно делал мелкую расчетную прожку на питоне с Qt через прослойку в виде PyQt. Директория с полностью портабельной версией была 50 метров с небольшим =)
0
Портаблеьная — всмысле запустится на компе без питона и qt.
0
на счет Потрабельной.
Ниже выложил со статической линковкой, три файла, которые не прилинковались в одной папке с прогой должны лежать. Проверял на чистой win7 — запускается. Может автор себе в архив закинет. То, что она 15 метров весит, в наше время не проблема — Фотки вконтакте больше трафика жрут.
0
То, что она 15 метров весит, в наше время не проблема — Фотки вконтакте больше трафика жрут.
Да я в общем-то ничего против и не имею, 15, 50 или 100 уже не особо важно, когда обьемы дисковых пространств исчисляются терабайтами. Важнее скорость и удобство разработки.
0
8 лет назад программа весила 1 мбайт
постепенно набирала функционально-базоданное наполнение
при переходе на Уникод размер вырос на 1 мбайт
сейчас почти 3 мбайта.
Главное программа самодостаточна и не требует дополнительных библиотек — программа 2007 года без проблем запустилась на Windows 10.
0
А что за программа то? На делфях в билдере?
Такой маленький размер, наверное, потому что все нужные для запуска вещи уже размазанны по ОС? Там же ведь компиляция только под винду?
0
Если это дельфи, то размер такой потому, что VCL — один из самый компактных GUI-фреймворков (ценой кроссплатформенности, правда).
0
Старый добрый логичный Паскаль.
Используют по всему миру — не жалуются, так как все нужные для запуска вещи уже размазанны по ОС :)
А вот у Касперского есть утилита для составления статистики по «заражённому!!!» компьютеру — не запускается из-за неразмазанного по ОС :(

то есть Я должен иметь возможность что то большое скачать и установить… и это на «заражённом» компе!!!
0
Старый добрый логичный Паскаль.
Не надо путать Delphi и Pascal. Особенно «старый добрый Паскаль». Вирт обидится.
не запускается из-за неразмазанного по ОС :(
Это ОС старая. В новых — очень даже размазан. Ну и в отличие от GUI-фреймворков, которые обычно надо тащить с каждой программой отдельно, дотнет ставится один раз и для всех.
0
Это ОС старая.
Windows7x64 старая?
Посмотри внимательно на картинку выше — GetSystemInfo.exe от Касперского 19 МегаБайт!!! и без ГУЯ?
Старый добрый логичный Паскаль.
Не надо путать Delphi и Pascal. Особенно «старый добрый Паскаль».
Вирт обидится.
Я обижен на Вирт за недоведённую Модулу.
Delphi название оболочки компилятора языка Pascal…
С программированием столкнулся на перфокарточном языке PL/1…
Когда в «Перестройку» начали проводить курсы для предприятий, то записался на лекции по языкам программирования. Первым были лекции по Бэйсику… показался очень логичным — нумерованные строки, к которым удобно делать ГоТо… но эти же ГоТы так же запутывали программу и делали её непонимаемой…
Потом лекция по Паскалю… Вирт молодец — заложил основу для обхода си-шных грабель: ХВызовешь необъявленное в Заголовке и не обратишься к грабле

К сожалению реализации компиляторов Паскаля так и не были приспособлены для написания системных драйверов — тут ассемблер и С.
0
Windows7x64 старая?
В вин7 дотнет 2.0 есть из коробки. И на скрине, судя по стилю Royale Blue — Windows XP.
Delphi название оболочки компилятора языка Pascal…
Delphi — название языка и среды для него, с версии 7.0. До этого язык среды Delphi действительно именовали Object Pascal (что, в общем, тоже далеко не Pascal). Но ты явно используешь более новую версию.
Я ИСПОЛЬЗУЮ ПАСКАЛЬ **ЦАТЬ 5 ЛЕТ
А изучить его историю за все это время так и не удосужился.
К сожалению реализации компиляторов Паскаля так и не были приспособлены для написания системных драйверов — тут ассемблер и С.
Не предназначены, лучше сказать. При желании писать виндовые дрова на дельфи вполне реально, а на FPC можно и разный эмбед программить.
0
не консоль в этом случае не вариант.
гуи здесь удобнее.

а вот то что ради одной маленькой программки тебе надо тянуть сдк на 500мБ это суровый такой минус. особенно если эти самые библиотеки надо искать где-то отдельно.

Почему нельзя было написать без каких либо СДК? ведь в приложении только стандартные компоненты и не специфическая математика.
0
Чтобы не качать 500мБ СДК, проги обычно укомплектовывают по возможности всеми зависимостями. Да, прога будет 1-2 Мб, а 20+, но для современных систем это копейки ведь.
Ну а СДК, перефразируя, нам «строить и жить» помогают, разве нет?
0
Потому что кроссплатформенный гуй без сдк — малореально. Даже если писать только под винду — винапи довольно неудобный гуи-тулкит, и программа будет на 90% состоять из плясок вокруг него.
Вообще, для подобных прог, если ограничиться виндой, удобны такие тулзы, как .net (и Java, вероятно — но не знаю, никогда не работал с гуем в ней), Delphi и различные языки помельче со встроенной поддержкой гуя (PureBasic, например).

Ну а консоль не такой уж не вариант. Вбить данные в командную строку ничуть не дольше, чем в гуй.
0
Вообще, для подобных прог, если ограничиться виндой, удобны такие тулзы, как .net (и Java, вероятно — но не знаю, никогда не работал с гуем в ней)
Теория универсального применения кроссплатформенных языков для разных типов разнородных ОС практически так и не получила массового распространения.
У Сименса есть один массовый кроссплатформеный продукт на Жаве — LOGO! Soft
Supported operating systems Microsoft Windows:
Microsoft Windows XP 32 Bit, Windows 7 (32 / 64 Bit, all versions), Windows 8 (32 / 64 Bit, all versions)
· Supported operating systems Mac OS X:
Mac OS X 10.6 Snow Leopard; Mac OS x Lion; Mac OS x Mountain LION, Mac OS X Mavericks
· Supported operating systems LINUX:
SUSE Linux 11.3 SP2, Kernel 3.0.76; runs on all Linux distributions on which Java 2 runs
Ну а консоль не такой уж не вариант. Вбить данные в командную строку ничуть не дольше, чем в гуй.
особенно не дольше поменять что то не так и не там введённое… угу… можно сначала набить и выверить текст в Гуевом редакторе текста и вставить из буфера командную строку…
0
особенно не дольше поменять что то не так и не там введённое… угу…
То, что ты не умеешь работать с командной строкой не значит, что она неудобна. И в данном конкретном случае вводные данные правятся столь же легко как и в гуе даже в довольно убогой виндовой консоли. Пожалуй, даже легче — не требуется переключаться между клавой и мышкой.
Теория универсального применения кроссплатформенных языков для разных типов разнородных ОС практически так и не получила массового распространения.
Я наблюдаю противоположную ситуацию. И не надо приводить в пример сименс, софт такого рода всегда был из рязряда «если он вам нужен — купите указанную ось, и не ебите нам мозги». А вот более массовый как раз все поголовнее кроссплатформенный.
0
с 50-килобайтной программой тянется 20 метров библиотек
Это конечно минус, но это не повод отказываться от удобного инструмента. Компьютеры ведь у всех современные, что такое сегодня 20 мегабайт?
Есть еще вариант: сохранить нужные библиотеки в системную папку, тогда все приложения на Qt будут их сразу находить в той папке. В итоге имеем все приложения по 100-200 килобайт и 100 мегабайт библиотек в одной папке.
0
Это конечно минус, но это не повод отказываться от удобного инструмента. Компьютеры ведь у всех современные, что такое сегодня 20 мегабайт?
Вот потому я и говорю, что это «немного некрасиво».
Есть еще вариант: сохранить нужные библиотеки в системную папку, тогда все приложения на Qt будут их сразу находить в той папке.
Под виндой с этим есть некоторые проблемы, из-за чего весь такой софт и тащит все свои либы с собой.
0
На android есть программа ElectroDroid. Есть этот функционал и ещё много другого полезного.
0
  • avatar
  • Timma
  • 23 октября 2015, 18:15
а вот это уже точно извращение поскольку приложения под андройд очень сложно и неудобно заставлять работать на компе. при этом эмуляторы андройда дают не полный функционал.
0
Запускать приложения под андроид на компе — вот извращение) Сдается мне, что они сделаны для того, чтобы запускаться на андроиде.
0
Кто ж заставляет такой есесью заниматься. Телефон/планшет почти всегда есть под рукой, даже когда работаешь с паяльником и нужно быстро подсчитать замену необходимому резистору.
0
А в таблике экселя такое сложно запилить? Без макросов.
0
А мне вот интересно, а кто нибудь может подтвердить, что прога реально имеет практическую ценность?

Допустим, нужно сопротивление 49.9 кОм. Вычисляем значения двух резисторов. Берем из коробочки, паяем… и что реально получаем? На сколько далеко будет результат от того, что хотели?

Реальный мир не идеален. Мне кажется, что лучше тестера и калькулятора вряд ли что-то можно предложить. Не для теории — для практики!
0
Только сейчас узрил, что прога еще и конденсаторы считает.

Ну это вообще улёт! Ребята, вы после того как посчитаете и соберете, вы померяйте, что у вас реально получилось. Думаю, что очень сильно удивитесь.

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

Теория проверяется практикой!
-1
Эта программа как раз и зменяет вам калькулятор. И больше она ничего не делает.
+1
Я это понял. Я другого не понимаю.

Вот, глядя на скриншот проги, я не могу взять в толк — как это может быть применено на практике?

Допустим, нужен резистор номиналом 28.7 Ома. Согласно первой строке берем из коробочки два резистора номиналом 33 Ома и 220 Ом, соединяем их параллельно и получаем номинал 28.7 Ома с точностью 0.015%.

— Э-э… Простите, что?! (с)

А это ничего, что реальные резисторы имеют точность изготовления +/-5%? (Ряд Е24, или мы о чём тут говорим?)

Если вы знакомы с теорией, то погрешность суммарного сопротивления, состоящего из двух резисторов будет еще больше — примерно 7%. В абсолютном значении мы получим общее сопротивление в диапазоне от 27.265 до 30.135. Это вам ни о чем не говорит?

При таком раскладе не будет ли лучше взять горстку резисторов на 27 Ом, и попытаться найти с помощью тестера наиболее близкое значение к нужному 28.7 Ома. Если не получиться, то взять другую горстку резисторов на 30 Ом и найти наиболее близкое значение. Если найденный резистор всё еще далек от значения 28.7 Ома, то нужно взять калькулятор и вычислить второй резистор, который пойдет к нему в параллель. Вычислить на основе ИЗМЕРЕННОГО значения.

Ну я бы как-то так делал.
+1
Возможно ваш путь оптимальнее, если вам нужно подобрать один нуоченьточный_резистор для одной вашей платы. Но когда вы делаете серийное изделие, врядли вы будете сидеть и подбирать 100500 резисторов. Если нужна большая точность, то выхода у вас все равно нет, либо вы покупаете резисторы поматёрей, как сказали ниже, либо считаете замену из двух, вот этой формулой/программой.

Теперь по существу, погрешность двух резисторов никогда не больше одного с таким же Tolerance.
А на практике будет даже меньше, потому как обчыно значения сопротивлений нормально распределены и при перемножении этих двух кривых получится более, хм… узкое распределение. Другими словами, вероятность что вам попадётся два резистора с минимально возможными значениями ниже, чем вероятность наткнуться на один резистор с минимальным значением.
+1
Поддерживаю, то же самое ниже написал…
0
дык оно понятно. но ведь никто же не запрещает добавить два столбца: вот так будет в самом херовом случае «в минус», а вот так — «в плюс». не раз сталкивался с подобным подходом («расчет по номиналу») — люди рассчитывают номиналы по формулам, а в итоге всё получается несколько иначе, чем задумывалось (и особенно, если поделку могут сходу с мега-мороза притащить в мега-жарУ). к примеру, в частотозадающих цепях ШИМ-преобразователей такая херотень встречается чуть более, чем часто. понятно, что там все эти эффекты можно компенсировать обратной связью, запасом транса, выбором NPO конденсаторов и суровых резисторов — но это другой вопрос.

хоть и недолюбливаю я жевакА, но тут приходится признать — человек дело говорит. реальный мир действительно не идеален — у любого резистора есть погрешность номинала. хер с ней с температурной зависимостью сопротивления — но ведь можно же хотя бы «неизлечимую» погрешность номиналов в прогу ввести:)

ну а в реалиях — не далее как сегодня заказывал дружбану резисторы в его мегапроект. заказывал в чип-дипе. ну и сильно порадовался — резисторы одного номинала, но разной точности (5% vs 1%) до примерно 1000шт. стОят одинаково (речь за 1206). сразу вспомнился примерно 2001-й год, когда за однопроцентные резисторы (выводнЫе, сцуко, Карл!) между разработчиками могла идти нешуточная война:)
0
заказывал в чип-дипе. ну и сильно порадовался — резисторы одного номинала, но разной точности (5% vs 1%) до примерно 1000шт. стОят одинаково
ага, купи в чипдипе резистор 5% по цене 1%, получишь наценку 2% (x2, в смысле :)

Залез, глянул. Ну, прогресс уже, что не по 10р за резюк :)
Растут.
0
Ещё, нужно понимать, что не все 1% одинаково полезны. И как лазерные насечки сказываются на стойкости к перегрузкам, в т.ч. импульсным
0
да, было время, кода в ЧИПЕ было не протолкнуться, Потом пришли новые менеджеры — в чипе стало, как в картинной галерее. Сейчас вроде переоценка ценностей какая-то у них. Бывает, что и там что-то покупаю, по конкурентной цене. Во как)
0
и да — саму по себе необходимость подобной программы я ни разу не отрицаю. ведь с одной стороны — все формулы известны, знай подставляй значения. но вот с другой — конечно, ломает постоянно пересчитывать через те же формулы номиналы, тем более если надо их выбирать не из «сферического» ряда е24, а из того, что есть под рукой.
0
Ребят, вы чего?! Параллельное включение резисторов не увеличивает погрешность!:

В последнем выражении «примерно», потому что, вообще говоря складывать нужно абсолютные погрешности, а не относительные, но для близких значений можно и так.
Т.е. если в программе написано погрешность -2%, а у вас ряд 1%, то искомое сопротивление будет в диапазоне от -1% до +3%.
Например для пресловутых 28,7 для 7 линии из скриншота получаем: 28,7 составляется из 43(5%) и 82(5%) с точностью (примерно) -5-1,7%=-6,7% +5-1,7%=+3,3%, т.е. будет лежать в диапазоне (примерно) от 26,78 до 29,65. Не вижу особого смысла добавлять новые столбцы в проге, прибавить 5% или 1% в зависимости от ряда и так можно. Главное помнить, что паралельное включение не увеличивает погрешность!
+2
паралельное включение не увеличивает погрешность!

ну так я с этим и не спорю:) ты, наверное, не тому ответил.
0
ну да, прости :-)
0
Спасибо автору! Удобная и полезная прога) Пересобрал QT со статической линковкой, по идеи должна просить только три файла, что рядом с ней.
p.s. Кто-нить знает как и их прилинковать? -static, -static-libgcc и -static-libstdc++ не помогают.
hdd.tomsk.ru/desk/agxdzest# (Автор, может добавишь к своему архиву — не у всех qt под рукой?)
0
у bsvi вроде наподобие такого было: bsvi.ru/bscalc-kalkulyator-embeddera/#more-885

правда, смотрел ужЕ давно и за актуальность и работоспособность не скажу
0
Дело было вечером, делать было нечего. Консольное.
0
  • avatar
  • Vga
  • 24 октября 2015, 14:45
Продолжаю маяться дурью. Теперь и гуевое. Как и следовало ожидать, калякать гуй на винапи дольше, чем решать собственно задачу.
+1
А что сложного в простой реализации визуализации современными программными средствами ЧМО?
while(R1 / 2 < arg1) 
    {  R1 = findNearBiggerNominal(R1, sequence); Собственно без комментариев это код
        if(R1 > arg1)
        {   R2 = (R1 * arg1)/(R1 - arg1);
            R2Min = findNearLowerNominal(R2, sequence);
            R2Max = findNearBiggerNominal(R2,sequence);
            double Rr1 = (R1 * R2Min)/(R1 + R2Min);
            double Rr2 = (R1 * R2Max)/(R1 + R2Max);
            double Per1 = (Rr1 - arg1) / arg1;
            double Per2 = (Rr2 - arg1) / arg1;
            if(fabs(Per1) < fabs(Per2))
                addColumn(R1, R2Min, Rr1, Per1); Визуализировать средствами ЧМО
            else
                addColumn(R1, R2Max, Rr2, Per2); Визуализировать средствами ЧМО
        }
        else
            addColumn(R1,0,R1,0); Визуализировать средствами ЧМО
        R1 += R1/100;
    }

конечно можно addColumn и на «ассемблере» написать, а потом жаловаться на своё понимание плохости ГУЯ
Vga
         item.mask = LVIF_TEXT;
          item.pszText = textBuf;
          for(int i = 0; i < resCount; i++)
          {
            item.iItem = i;
            item.iSubItem = 0;
            itoa(i, item.pszText, 10);
            ListView_InsertItem(hResults, &item);
            SetSubItem(1, "%-6g", results[i].R1);
            SetSubItem(2, "%-6g", results[i].R2);
            SetSubItem(3, "%-6g", results[i].R);
            SetSubItem(4, "%.2f%%", results[i].Err);
          }
          SetWindowRedraw(hResults, TRUE);
          InvalidateRect(hResults, NULL, TRUE);
0
Ты что, собственно, сказать-то хотел? И где это я говорил, что GUI — плохо?
0
Алсо, ты скопировал код, выполняющий разные задачи. Аналогом того, что ты скопировал из моего варианта является содержимое функции addColumn (на самом деле Row). Но да, она сильно компактнее благодаря тому, что кьют куда удобней винапи.

Хотя в целом, от WinAPI я ожидал худшего.
0
Реализовал хотелки из этого комментария, обновил архив. Заодно удалил архив консольной версии, она есть в архиве с гуевой (она тоже поддерживает хотелки, кроме расчета мощности).
0
Вот допустим нам нужен резистор 49,9 кОм. Такое сопротивление как бы намекает на точность номинала не хуже 1%. И тут мы берём из коробки два 5% резистора… И от первоначальной хотелки ничего не осталось. Хотели резистор 49,9 кОм, а получили хрень с дикой погрешностью.
0
Что мешает из кучки указанных программой номиналов подобрать наиболее точные?
А ситуации бывают такие, что нужна не столько 1% стабильность, сколько само значение сопротивления близкое к ряду Е48 или Е96.
0
Ряд Е24 позволяет подобрать любое значение с отклонением от требуемого не более 5%. Собственно, именно потому по более плотным рядам пятипроцентные резисторы и не делают.
Кроме того, есть сведения, что больше шансов найти 49.9 Ом среди 51-омных резюков, чем точные 51 и 2400.
0
Ну вот надо мне в делитель на MC34063 номинал 14к. И среди какого номинала из 5%-ых мне его искать и какова вероятность, что я его там вообще найду?
0
Искать — среди 15к и 13к. Собранный из двух с тем же успехом может оказаться не на 14к, а на 15к.
0
Для 15к в «идеальном»случае найдём 14.25.
Для 13к в «идеальном»случае найдём 13.65.
«Идеальный» случай это предельный по отклонению. Я думаю знакомы с распределением Гаусса и можете прикинуть вероятность удачного поиска, не говоря уже о 14к.

Я как-то на измеритель 9.90к искал в куче 10к. Много их перебрал и новых и с плат, так там большинство попадалось в переделе 9.95-10.1, хотя они ни разу не 1%.

А на счёт " Собранный из двух с тем же успехом может оказаться не на 14к, а на 15к." — ну так я ранее написал — что мешает выбрать из кучки с минимальным отклонением, особенно учитывая мой вышеописанный опыт с 9.90к это не должно быть проблемой.
0
Распределение может быть и негауссово. Так, некоторые натыкались на то, что в распределении резисторов была дырка ровно на требуемом номинале +-1%. Но если в твоей кучке резисторов можно найти точные сопротивления — то можно и параллелить…
0
Я уверен, что в кучке любого радиолюбителя проще найти сопротивления 20к и 47к для получение близкого к 14к (например 47.2 и 20.1 = 14.1), чем в другой кучке 13к и 15к то же сопротивление 14.1к. Далее дискутировать не вижу смысла.
0
Не, индивидуально подобрать резистор/пару — это можно. Но калькулятор тут не сильно помогает — все равно нужно мерять, считать и подбирать.
Но если схема допускает применение 5% резистора — то она допускает установку 15к +-5% вместо расчетного 14к. В конце концов, если резисторы действительно уползут на свои 5%, то вместо 14к у тебя будет 14.7к или 13.3к (и это еще зазор 13-15 один из самых больших в ряду, большинство других соседних номиналов перекрываются допусками).
Автоматизированный расчет имеет смысл, если резисторы просто запаиваются не глядя. Но тогда имеем тот самый 5% разброс от номинала и отсутствие смысла в номинале из ряда Е96. Собственно, поэтому китайцы предпочитают в делители запаивать прецизионные резисторы — параллелить пятипроцентные без подбора бессмысленное занятие.
0
Но калькулятор тут не сильно помогает — все равно нужно мерять, считать и подбирать.

Золотые слова!

А учитывая размер программы и танцы с закачиванием и прикручиванием библиотек, становится как-то странно — а оно того действительно стоит?
0
Вот именно!

В распределении значений 5%-ных резисторов, статистически присутствует «дырка» для 1%-ых. Об этом даже где-то писали. (К сожалению, ни ссылку, ни саму статью у себя на компе я не нашел.)
0
Такое надо на matlab/octave делать.
0
Ребята, спасибо, что подключились. Понятное, дело прогу можно совершенствовать и добавлять функционалом. Мне только требовалось найти заветные R1 и R2. Но вижу, процесс уже не остановить)))
+1
отвечу по поводу целесообразности подключения библиотек. Конечно это нецелесообразно РАДИ этой проги что-то там качать на 200 метров. Здесь выложена сама идея, ну и код, который справедливо кто-то критиковал и находил изъяны. Так что, вместе мы придем к консенсусу))
0
Онлайн калькуляторы:
www.qsl.net/in3otd/parallr.html#
jansson.us/resistors.html
0
Update:
Добавил исходники Vga и sasha_tvo, за что им отдельное спасибо
Ты бы лучше не аттачил, а ссылку дал. Я периодически подправляю генератор, текущая версия уже новее приаттаченной (для резервирования можно и аттач оставить, впрочем — но неплохо бы обновить).
0
  • avatar
  • Vga
  • 16 июня 2016, 21:10
Vga
Можете дать ссылку на последнюю версию?
0
0
а вроде я добавил в приложение к тому же
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.