PDA

Просмотр полной версии : Определение аналоговыми входами сопротивления



CAHEK
14.08.2019, 14:10
Доброе время суток.Появилась идея определения устройства по средством аналогового входа в ПР200.А именно,один контролер стоит в шкафу,к которому на разьеме подключаются разные устройства.Чтобы человеку не выбирать какое устройство подключено именно сейчас,в разьем добавляется резистор.считывается аналоговым входом значечние резистора и программа выбирает соответствующую программу обработки основываясь на сопротивление резистора.
К примеру 100Ом 1 устройство,200Ом 2 устройство и тд.
Но сопротивление резистора не постоянное, может меняться от качества контакта в разьеме,температуры.
Нужно иметь хоть небольшую "вилку" в виде +-5-10ОМ.Именно как реализовать эту "Вилку"не могу додумать.
В Овен годжик нет сравнения на меньше. только на равенство и на больше.Нужно чтобы сопротивление 99ом 100ом 101ом 102ом определялось как одно и тоже.
Можно поставить блок расширения и делать это комбинацией сигналов,хотелось бы использовать пустующие аналоговые входы.
Есть идеи?

CAHEK
14.08.2019, 14:22
задачка то примитивная, сперва делите на 10.0 потом прибавляете 0.1 преобразуете в целочисленное

Делить на 10 и округлять была идея,так полюбому попадает в диапазон.а зачем 0.1 прибавлять?

Сергей0308
14.08.2019, 14:46
Доброе время суток.Появилась идея определения устройства по средством аналогового входа в ПР200.А именно,один контролер стоит в шкафу,к которому на разьеме подключаются разные устройства.Чтобы человеку не выбирать какое устройство подключено именно сейчас,в разьем добавляется резистор.считывается аналоговым входом значечние резистора и программа выбирает соответствующую программу обработки основываясь на сопротивление резистора.
К примеру 100Ом 1 устройство,200Ом 2 устройство и тд.
Но сопротивление резистора не постоянное, может меняться от качества контакта в разьеме,температуры.
Нужно иметь хоть небольшую "вилку" в виде +-5-10ОМ.Именно как реализовать эту "Вилку"не могу додумать.
В Овен годжик нет сравнения на меньше. только на равенство и на больше.Нужно чтобы сопротивление 99ом 100ом 101ом 102ом определялось как одно и тоже.
Можно поставить блок расширения и делать это комбинацией сигналов,хотелось бы использовать пустующие аналоговые входы.
Есть идеи?

Да, уж!
Не то?!

44094

Сергей0308
14.08.2019, 14:57
Я не настаиваю на этом варианте, но мне кажется очень даже подходит этому товарищу, просто идеально: ставишь три таких макроса(сколько вариантов сопротивлений резисторов) три уставки и три гистерезиса с которыми работает каждая из уставок, выход какого макроса включился, такой и резистор на аналоговом входе, всё!

Сергей0308
14.08.2019, 15:12
Я, честно, не понимаю ваш вариант!
Ему как раз нужны "кишки" того макроса, что я предложил, что бы определять находится параметр в заданном диапазоне или нет!
Ваше преобразование в целочисленное значение только добавит элементов в программу! Далее также придётся сравнивать на соответствие какому-нибудь диапазону(именно диапазону, а не значению, так как могут быть расхождения плюс/минус километр)!

CAHEK
14.08.2019, 15:54
Да, уж!
Не то?!

44094

Я до последнего был уверен что мы разными базами пользуемся.не попадался мне этот макрос,даже зная о его существовании пришлось поискать.

CAHEK
14.08.2019, 16:01
4409544096

Сергей0308 и capzap Спасибо,попробовал сделать и так и так.С макросом все компактнее и диапазон шире.В варианте с делением на 10 и добавлением +0.3 получился диапазон 9.

Сергей0308
14.08.2019, 16:45
я приведу аналоговый вход к целочисленному один раз, те кишки макроса уже будут больше по количеству элементов, а на копипастив под каждую уставку так и на порядок превысят мое количество и качество кстати тоже, потому что в том макросе идут сравнения вещественных чисел.
По поводу сравнения с диапазоном, каким? Я для этого и привожу к целочисленному чтоб избавиться от дисперсии, поэтому не придумывайте то о чем я не писал. А границы диапазонов в макросе при неумелом использовании могут накладываться друг на друга, если макросы будут стоять в ряд под каждую уставку

Допуск(класс точности) резистора может достигать 20%, даже при указанных товарищем 200 Ом(там и более предполагается), это составляет 40 Ом, даже с учётом деления на 10 ни о каком сравнении со значением не может быть и речи, только сравнение на нахождение в диапазоне(с допуском от номинала не менее 25%), для чёткого срабатывания, для номинала 100 Ом диапазон 75-125 Ом, для номинала 200 Ом диапазон 150-250 Ом, для номинала 400 диапазон 300-500 и т. д.
Надеюсь, понятно объяснил!

CAHEK
14.08.2019, 17:03
этож надо было так извращенно интерпретировать о чем я говорил, действительно пользуйтесь лучше макросами

Если Вам не сложно,то хотелось бы увидеть как Вы это понимаете.

Сергей0308
14.08.2019, 21:54
если речь идет о 20% точности, то номиналы 100,150,220 и т.д.

Да, уж, упростили! Так у Вас элементов раза в два больше, в том макросе всего 4 элемента для каждого номинала и это Вы указали простоту как достоинство вашего варианта, тут даже комментировать ничего не надо!

Сергей0308
14.08.2019, 22:47
под условия ТС в 5-10 Ом я смотрю Вы не спорите, а Ваши требования, почему то к самым худшей таблице номиналов, появились позже, но я и под них сделал. А вам стоит все же изучить вопрос прежде чем давать такие числа как 200, 400

Я указал идею, чтобы номиналы резисторов отличались друг от друга не менее чем в 2 раза! В отличии от Вас, никаких проблем не вижу, если Вы видите там проблемы, то укажите, какие именно нужно выбрать! Надеюсь понятно объяснил, зачем выдумывать проблемы, там, где их нет!

Сергей0308
14.08.2019, 23:08
от балды придумывают только чтоб остаться правым, там где это не так, я же говорил про это https://ru.wikipedia.org/wiki/%D0%A0%D1%8F%D0%B4%D1%8B_%D0%BD%D0%BE%D0%BC%D0%B8% D0%BD%D0%B0%D0%BB%D0%BE%D0%B2_%D1%80%D0%B0%D0%B4%D 0%B8%D0%BE%D0%B4%D0%B5%D1%82%D0%B0%D0%BB%D0%B5%D0% B9 -> E6

И да, я подсчитал количество элементов, про характеристику которую упоминал, в своей схеме и в схеме из макросов, на три значения мои 31 элемент против 24 на макросах, а уже на пять положений 35 против 40, действительно комментировать не чего

Я посмотрел Ваш последний проект, Вы поймите я за чтобы было как можно больше разных вариантов решения одной задачи, но однозначно будет предпочтительным более простой в понимании(даже если количество элементов немного больше), так вот о чём хотел сказать, ваш в плане понимания даже мне трудно(или невозможно) понять, ну зачем новичкам такое предлагать, надеюсь понятно объяснил!

Сергей0308
15.08.2019, 00:22
Вы и здесь не понимали, когда я даже не думал на нейросети ни чего делать. ТС обрисовал задачу как определялось как одно и тоже
ну нравиться вам обоим один входной сигнал обрабатывать несколько раз, дело ваше
не понимаете как нейросеть работает, тоже ни чего страшного, я не заставлял так писать, но если есть специфиакация и других вариантов номиналов не бывает, почему бы и не использовать готовый вариант для Е6, можно и для более точных таблиц сделать так же

Это мелочи и дело товарища из какого ряда ему резисторы взять, скорей всего возьмёт из тех, что у него уже есть, главное объяснить сам принцип(чтобы диапазоны не накладывались), чтобы ему понятно было, мне так кажется!
И мне кажется в вашем проекте обработки сигнала как минимум на порядок больше, в макросе там в принципе нет обработки, если не считать сравнение обработкой! Если Вы так хотите можно преобразовать омы в целочисленный тип и сравнивать в целочисленном виде, если сравнения в целочисленном виде меньше ресурсов отнимает, это не меняет сам принцип!

44101

44102

Сергей0308
15.08.2019, 07:35
объяснить, т.е. вот так легко Вы навесили на человека ярлык, что он и в программировании не разбирается и в радиотехнике, только ради того чтоб со мной поспорить, ну ок

Вы думаете он знает, поэтому и спрашивает? Логично! Наверно, чтобы проверить знает кто ещё или нет?
Всё равно у Вас нет последовательности, то Вы конкретные ряды резисторов предлагаете(я полагал что он сам справится), то теперь вдруг(может и не вдруг, может у Вас это на уме было ещё когда первый пост увидели) поняли(наконец то), что какие резисторы ставить он сам справится, лучше поздно, чем никогда!

CAHEK
15.08.2019, 09:18
Доброе время суток.не пойму куда делись сообщения capzap .Он вылаживал пример своего понимания.Хотелось бы увидеть.
А насчет рядов резисторов,то никто не запрещает мне ити с шагом 100 ом.спаивая последовательно их,например.Или брать резисторы которые попадутся под руку.
За "баночкой" чая появилось еще одно решение задачи.44107
ЗЫ. Не ошибается только тот кто ничего не делает.

Алексей Геннадьевич
15.08.2019, 09:29
А насчет рядов резисторов,то никто не запрещает мне ити с шагом 100 ом.спаивая последовательно их,например.Или брать резисторы которые попадутся под руку.
Это проще.
Логичнее будет расположить по ряду Е3 или Е6 (https://ru.wikipedia.org/wiki/%D0%A0%D1%8F%D0%B4%D1%8B_%D0%BD%D0%BE%D0%BC%D0%B8% D0%BD%D0%B0%D0%BB%D0%BE%D0%B2_%D1%80%D0%B0%D0%B4%D 0%B8%D0%BE%D0%B4%D0%B5%D1%82%D0%B0%D0%BB%D0%B5%D0% B9).

Ревака Юрий
15.08.2019, 10:05
Вы эти все решения обязательно проверяйте на железе, у меня как-то была идея сделать несколько кнопок на аналоговом входе, все красиво в симуляции, на деле оказалось не очень, времени было мало, не стал сильно изучать вопрос.

petera
15.08.2019, 11:03
https://owen.ru/forum/attachment.php?attachmentid=16915&d=1425224217
Интересно...
А почему бы не использовать логарифмы..

petera
15.08.2019, 11:58
Относительно использования стандартных рядов сопротивлений ...
Если не заниматься ерундой, т.е. индивидуальным подбором номиналов сопротивлений, а просто брать номинал указанный на корпусе резистора, то будет засада!
Дело в том, что фактическое значение сопротивления любого номинала при предельном положительном допуске совпадает с фактическим значением сопротивления ближайшего большего номинала в данном ряде при предельно отрицательном допуске (или эти значения очень близки друг к другу).
Например для ряда Е6 номинальные значения 1,5 - 2,2 - 3,3 - 4,7 - 6,8
Резистор с маркировкой 2,2 кОм ±20% при наибольшем возможном положительном отклонении от номинала, очевидно, будет иметь сопротивление 2,2+0,2х2,2=2,64 кОм. А резистор со следующим номинальным сопротивлением 3,3 кОм в том же ряду Е6, при наибольшем возможном отклонении от номинала в сторону уменьшения, то же будет иметь сопротивление 3,3-0,2X3,3=2,64 кОм

По этому следует для номиналов ряда, например Е6(+-20%), реально брать стандартные резисторы из ряда Е12(+-10%) через один номинал.
Т.е. те же 1,5 - 2,2 - 3,3 - 4,7 - 6,8, но с допуском +- 10% для ряда Е12.

Тогда всю задачу можно решить для ВСЕГО размерного ряда от Ом до МОм, а это десятки значений, с помощью очень простой схемы!

petera
15.08.2019, 13:55
Не спроста я говорил по логарифмы, т.к. для ряда EN в логарифмическом масштабе элементы этого ряда делят отрезок от 1 до 10 на N равных частей
Расчетные значения членов ряда
V(n) = 10n/N,
где N - номер ряда (3, 6, 12, 24 и т. д.), а n = 0, 1, 2, ..., (n) означает порядковый номер номинала в ряду
Значит для тог, чтобы узнать номер в ряду для измеренного значения Rx нужно воспользоватся формулой
n = lg(Rx) x N

44109

здесь используется макрос двоичного логарифма от AI!
44112
https://owen.ru/forum/showthread.php?t=24165&p=212118&viewfull=1#post212118

номер в ряду корректно вычисляется для любого значения из ряда EN(переменная НомерЕ) при условии, что резисторы имеют допуск для ряда Е(N+1) т.е с учетом допустимых отклонений в % для ряда Е(N+1)
https://owen.ru/forum/attachment.php?attachmentid=44113&d=1565866352
Практически нужно в программе задавать желаемый НомерЕ, а резисторы брать с допуском для ряда Е(N+1)
44111

AI!
15.08.2019, 14:46
В Овен годжик нет сравнения на меньше. только на равенство и на больше.If x>y Then
меняем входы местами, а вуаля...
If y>x Then


PS тоже думаю надо решать задачу логарифмами.

capzap
15.08.2019, 15:18
я тогда подброшу симуляцию сопротивлений с дисперсией вокруг 100Ом, чтоб ручками не вводить

mr.K3
27.08.2019, 20:08
Комрады, возможно ли подключение датчика температуры NTC 1000 к аналоговым входам ПР100 без дополнительных устройств?

bayk
27.08.2019, 22:03
mr.K3 нет. там входы только 0-10В и 4-20 мА