Падение напряжения на пине Arduino UNO.
- Войдите на сайт для отправки комментариев
Пнд, 08/07/2019 - 10:19
К пину подключена последовательная цепочка: "пин -> резистор 160 ом -> светодиод оптрона 4N25 -> светодиод -> GND
Все элементы проверены, звонятся как надо, резитор именно 160 ом.
При подаче на пин "digitalWrite(pin,HIGH)" без цепочки вольтметр показывает честные 4,58 в.
При подключении цепочки напряжение на пине падает до 2,51 в.
Где беда?
Заранее спасибо!
Сразу, до этого моего текста, сообщить о схеме питания и напряжениях на клемме 5v, конечно же, никак нельзя было?
К пину подключена последовательная цепочка: "пин -> резистор 160 ом -> светодиод оптрона 4N25 -> светодиод -> GND
Вопрос не по теме, а нахуа так оптрон жарить?
Вопрос не по теме, а нахуа так оптрон жарить?
В каком смысле жарить? На каждом светодиоде падает по 1,2 в. В результате по цепочке идет 0,13 мА.
сообщить о схеме питания и напряжениях на клемме 5v, конечно же, никак нельзя было?
Сообщаю: питание от писишного БП, на клемме 5,13в
В каком смысле жарить? На каждом светодиоде падает по 1,2 в. В результате по цепочке идет 0,13 мА.
Плохо с математикой?
5.1в - (1.2 + 1.2) = 2.7в
2.7в / 160 Ом = 17 мА
При подаче на пин "digitalWrite(pin,HIGH)" без цепочки вольтметр показывает честные 4,58 в.
При подключении цепочки напряжение на пине падает до 2,51 в.
Где беда?
я бы уже на первой фразе насторожился бы - с чего это без нагрузки вольтметр показывает "честные 4.58в" ? Откуда такое дикое падение? - полвольта это очень много
А строчку pinMode(pin, OUTPUT); вы. случайно, не забыли в сетап вставить?
В каком смысле жарить? На каждом светодиоде падает по 1,2 в. В результате по цепочке идет 0,13 мА.
Плохо с математикой?
5.1в - (1.2 + 1.2) = 2.7в
2.7в / 160 Ом = 17 мА
Сорри, второй светик просмотрел. Но больше 5мА, вообще никогда не делаю. ИМХО.
А строчку pinMode(pin, OUTPUT); вы. случайно, не забыли в сетап вставить?
Ох, старый я козел! забыл, конечно. Завтра перепрошьюсь с ней, отпишусь, что стало....
Кстати, отсутствие этой строчки при наличие в сетапе же команды "digitalWrite(pin,HIGH)" действительно столь погано действует на работу пина?
При подаче на пин "digitalWrite(pin,HIGH)" без цепочки вольтметр показывает честные 4,58 в.
При подключении цепочки напряжение на пине падает до 2,51 в.
Где беда?
я бы уже на первой фразе насторожился бы - с чего это без нагрузки вольтметр показывает "честные 4.58в" ? Откуда такое дикое падение? - полвольта это очень много
или порт палёный, или косяки в монтаже (включая подключение измерителя).
Но больше 5мА, вообще никогда не делаю. ИМХО.
что означает эта фраза? - вы не согласны, что 2.7в / 160 Ом дает 17 мА?
Вообще, уже по одной величине резистора 160 Ом без всяких калькуляторов видно, что никаких 0.13 мА тут быть не может
А строчку pinMode(pin, OUTPUT); вы. случайно, не забыли в сетап вставить?
Ох, старый я козел! забыл, конечно. Завтра перепрошьюсь с ней, отпишусь, что стало....
Кстати, отсутствие этой строчки при наличие в сетапе же команды "digitalWrite(pin,HIGH)" действительно столь погано действует на работу пина?
pinMode(pin, INPUT);
// делается по умолчанию при включении питания
digitalWrite(pin, HIGH);
// включить подтягивающий резистор
картина полностью соответствует: и 4,5 вольта, и 2,5 под нагрузкой.
Кстати, отсутствие этой строчки при наличие в сетапе же команды "digitalWrite(pin,HIGH)" действительно столь погано действует на работу пина?
Применение digitalWrite(pin,HIGH) без предварительного pinMode(pin, OUTPUT) включает подтягивающий резистор на этом пине. Это всё, что она делает.
Т.е. пин остаётся в режиме входа, но начинает течь ток через внутренний резистор.
или порт палёный, или косяки в монтаже (включая подключение измерителя).
1. Проверил это с несколькими портами. Картина одинаковая.
2. Косяков в монтаже и при измерении нет. Проверил.
Скорее всего - из-за забытой строчки назначения пина как "output". Хотя, сказано ему, дескать, pinMode (pin, HIGH). Я полагал (видимо, совершенно необоснованно), что этого достаточно, чтобы на нем появилась логичсекая 1. Насколько я смог выудить из описания функции, "INPUT" или "OUTPUT" - чисто определяет, что будет делать пин: читать или выдавать, но на мощностные (вольтажные) свойства не влияет. Наверное, я не прав.
Пока писал - пришло пояснение. Спасибо друзья, все встало на место. Пропишу этот OUTPUT обязательно!
Насколько я смог выудить из описания функции, "INPUT" или "OUTPUT" - чисто определяет, что будет делать пин: читать или выдавать, но на мощностные (вольтажные) свойства не влияет. Наверное, я не прав.
при "INPUT" и потом "HIGH" пин соединяется с +5в через резистор 20к, а при OUTPUT - напрямую. Как вы думаете, влияет наличие 20к резистора на мощностные характеристики? :)
Sonologist, поэтому на форуме существует правило - обязательно выкладывать скетч и схему при создании темы. Тогда бы Вам дали правильный ответ значительно раньше.
Как вы думаете, влияет наличие 20к резистора на мощностные характеристики? :)
Безусловно! Просто в доступных инструкциях про "OUTPUT - напрямую" не нашел. Теперь все ясно. Еще раз спасибо!
Sonologist, поэтому на форуме существует правило - обязательно выкладывать скетч и схему при создании темы. Тогда бы Вам дали правильный ответ значительно раньше.
Да, это мой промах: приведенный (хоть и примитивный) скетч сразу бы все просянил.
что означает эта фраза? - вы не согласны, что 2.7в / 160 Ом дает 17 мА?
Вообще, уже по одной величине резистора 160 Ом без всяких калькуляторов видно, что никаких 0.13 мА тут быть не может
Вас, ни в коей мере не критиковал. Все сказанное адресовалось исключительно ТС, цитата оставлена чтобы было понятно, что речь шла о 17мА.))))
И все таки - зачем 17 мА, меньше ( то есть резистор больше на порядок) нельзя?
Вас, ни в коей мере не критиковал. Все сказанное адресовалось исключительно ТС, цитата оставлена чтобы было понятно, что речь шла о 17мА.))))
ой. сорри... перепутал Вас с ТС. Мое высказывание тоже было адресовано ему :)
Просто в доступных инструкциях про "OUTPUT - напрямую" не нашел.
Видите ли, такое поведение - это специфическая функция контроллеров AVR (для экономии). Собственно, к Ардуино никакого отношения не имеет, а потому в документации по Ардуино обычно не описывается. А в документации по AVR, естественно, все есть. Но в AVR нет "OUTPUT" - это специфика Ардуино.
Видите ли, такое поведение - это специфическая функция контроллеров AVR (для экономии). Собственно, к Ардуино никакого отношения не имеет, а потому в документации по Ардуино обычно не описывается. А в документации по AVR, естественно, все есть. Но в AVR нет "OUTPUT" - это специфика Ардуино.
Спасибо. Вот тот самый случай, когда не программист сходу и не разберется. Но, хорошо, что гуру подсказали.