Не работает подтягивающий резистор на входе Ардуино DUE
- Войдите на сайт для отправки комментариев
Сб, 05/05/2018 - 21:29
Почему не работает подтягивающий резистор ( pinMod(A11, INPUT_PULLUP) )на входе А11, в ардуино DUE, если этот вход считывать командой analogRead(A11)? Если считывать командой digitalRead, то резистор не отваливается.
А что, на DUE подтягивающие резисторы должны работать с ADC?
А разве нет?
Не знаю, я спрашиваю. На тех контроллерах, с которыми я имел дело - нет. А с этим я дела не имел, вот и спросил.
Почему не работает подтягивающий резистор ( pinMod(A11, INPUT_PULLUP) )на входе А11, в ардуино DUE, если этот вход считывать командой analogRead(A11)? Если считывать командой digitalRead, то резистор не отваливается.
А для чего Вам это вообще?
подтягивающий резистор ( pinMod(A11, INPUT_PULLUP) )на входе А11,
А для чего Вам это вообще?
Не знаю, я спрашиваю. На тех контроллерах, с которыми я имел дело - нет. А с этим я дела не имел, вот и спросил.
Тролль 80 лвл? Женя, респект!
Так Влад, вчера такое веселье весь вечер шло, пока не пришёл админ и вся компанию не прихопнул :( Решил вот поаккуратнее.
А что вам не нравится? Где здесь у вас вообще написанно что подтягивающие резистары работают только на цифровых входах?
Где здесь у вас вообще написанно что подтягивающие резистары работают только на цифровых входах?
У нас? Нет. У нас нигде не написано ничего подобного.
А что вам не нравится? Где здесь у вас вообще написанно что подтягивающие резистары работают только на цифровых входах?
Вы лучше ответьте на вопрос: ЗАЧЕМ подтягивающий резистор на аналоговом входе?
Странно, а что тут, вас удивляет, например для измерения падения напряжения относительно общего, на оптотранзисторе.
Нет, а подрягивающий резистор-то зачем? Чтобы вносить искажения в показания?
Он полюбому должен быть, либо внешний либо встроенный в МК. А я хотел использовать встроенный, но не судьба, пришлось припаять внешний. Это тестер оптопар транзисторных решил добавить в свой проект. Задача была использовать именно аналоговый вход для снятия подения напряжения на транзистор.
krepton85, аналоговый вход нужен для измерения напряжения. Например, для измерения падения напряжения на транзисторе. Еслим это падение напряжения есть - никакие дополнительные резисторы не нужны. Если падения напряжения нет - измерять нечего.
Для чего вообще нужна подтяжка на цифровом входе?
Цифровой вход может использоваться в двух случаях:
1. Определить логический уровень сигнала, т.е. по сути измерить напряжение, - в этом случае подтяжка не нужна.
2. Определить факт замкнуто/разомкнуто. В этом случае оказывается, что если нет проддтяжки, то в состоянии "замкнуто" на вход подавется определенное напряжение, а в состоянии "разомкнуто" - ничего на вход не подается. Именно для того, чтобы подать, и нужен подтягивающий резистор. Т.е. для того, чтобы в любом из состояний замкнуто/разомкнуто на входе было известное напряжение.
Другими словами, для цифрового пина в некоторых случаях (не во всех, поэтому она отключаемая) подтяжка может понадобиться, а если пин используется в режиме вольтметра, от подтяжки - никакой пользы, а только вред в виде уменьшения входного сопротивления и внесения искажения в результаты измерения.
Вы наверное ни понимаете о чем идет речь? Вот даташит на оптопару PC814 : http://www.farnell.com/datasheets/73758.pdf тут транзистор с открытым колектором, какое напряжение можно с его снять не имея подтяжки вообще ни какой?
Единственное что нашёл про аналоговае входы и пуллап:
The analog input pins can be multiplexed with PIO lines. In this case, the assignment of the ADC input is automatically done as soon as the corresponding channel is enabled by writing the register ADC_CHER. By default, after reset, the PIO line is configured as input with its pull-up enabled and the ADC input is connected to the GND.
В силу моего понимания английского написано, что пуллап подключен к цифровым входам, а не не к ноге контроллера. А цифровые входа и аналоговые мультиплексируются на ногу процессора. Т.е. при отключении цифрового входа отключается пуллап.
Вот она истина. Почему же этого перевода нету у нас на сайте?
Хотите, чтобы был - сделайте!
А по поводу оптопары - на ней самой по себе падение напряжения не возникнет - измерять аналоговым входом нечего. Чтобы появилось напряжение - нужна обвязка. Но обвязка - это часть измеряемой схемы, а не часть измерительной. Поэтому совершенно логично, что она должна быть вне контроллера.
Собсвтенно, потому на сайте и не описано:
1. Зачем описывать то, что и так очевидно?
2. Описывать полагается то, что есть, а не то, чего нет. Хотя бы потому, что мнрожество того, что есть - конечно, а множество того, чего нет - бесконечно.
Почему же этого перевода нету у нас на сайте?
Потому, что Вы его сюда не поместили.
Он полюбому должен быть, либо внешний либо встроенный в МК. А я хотел использовать встроенный, но не судьба, пришлось припаять внешний. Это тестер оптопар транзисторных решил добавить в свой проект. Задача была использовать именно аналоговый вход для снятия подения напряжения на транзистор.
Полностью согласен, если требуется точность измерений АЦП (а в большинстве случаев это так) то встроенный подтягивающий резистор неизвесного сопротивления, ни куда не годится. Но мой случай еденичный, тут не важна точность, тут прибор просто отслеживает изменение значений АЦП, в зависимости от состояния (светит , не светит) встроенного ИК света-диода.
В общем все работает как задуманно. Многие тут еще скажут, а нафига я вообще задействовал АЦП, если можно было цифровым входом считывать состояние оптотранзистора. Соглашусь , это тоже бы работало, но только с выпаянными из платы оптопарами, а используя АЦП этот прибор способен тэстировать даже не выпаянные оптопары, а прямо на плате сразу, т.е. ему не мишает обвязка на плате.
Единственное что нашёл про аналоговае входы и пуллап:
The analog input pins can be multiplexed with PIO lines. In this case, the assignment of the ADC input is automatically done as soon as the corresponding channel is enabled by writing the register ADC_CHER. By default, after reset, the PIO line is configured as input with its pull-up enabled and the ADC input is connected to the GND.
В силу моего понимания английского написано, что пуллап подключен к цифровым входам, а не не к ноге контроллера. А цифровые входа и аналоговые мультиплексируются на ногу процессора. Т.е. при отключении цифрового входа отключается пуллап.
Я не стал вчитываться, но, вспомнив давнишние грабли могу утверждать что на МЕГА328
пуллап резистор ( если вы его включили ) при чтении аналогового входа НЕ ОТКЛЮЧАЕТСЯ.
Как на ДУЕ не знаю, в руках не держал
В описание 328 не упоминания мультиплексора пререключающнго ногу процессора между цифровыми и аналоговыми каналами. Если ногу запрограмировать на выход , то АЦП читает цифровые 0 или 1 - тоже наступал на эти грабли.