Меню Закрыть

Arduino внутренний подтягивающий резистор

Содержание

Цифровые выводы

Выводы платформы Arduino могут работать как входы или как выходы. Данный документ объясняет функционирование выводов в этих режимах. Также необходимо обратить внимание на то, что большинство аналоговых входов Arduino (Atmega) могут конфигурироваться и работать так же как и цифровые порты ввода/вывода.

Свойства порта вводы/вывода (pin), сконфигурированного как порт ввода

Выводы Arduino (Atmega) стандартно настроены как порты ввода, таким образом, не требуется явной декларации в функции pinMode(). Сконфигурированные порты ввода находятся в высокоимпедансном состоянии. Это означает то, что порт ввода дает слишком малую нагрузки на схему, в которую он включен. Эквивалентом внутреннему сопротивлению будет резистор 100 МОм подключенный к выводу микросхемы. Таким образом, для перевода порта ввода из одного состояния в другое требуется маленькое значение тока. Это позволяет применять выводы микросхемы для подключения емкостного датчика касания, фотодиода, аналогового датчика со схемой, похожей на RC-цепь.

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

Подтягивающие (нагрузочные) резисторы

Если на порт ввода не поступает сигнал, то в данном случае рекомендуется задать порту известное состояние. Это делается добавлением подтягивающих резисторов 10 кОм, подключающих вход либо к +5 В (подтягивающие к питанию резисторы), либо к земле (подтягивающие к земле резисторы).

Микроконтроллер Atmega имеет программируемые встроенные подтягивающие к питанию резисторы 20 кОм. Программирование данных резисторов осуществляется следующим образом.

Подтягивающий резистор пропускает ток достаточный для того, чтобы слегка светился светодиод подключенный к выводу, работающему как порт ввода. Также легкое свечение светодиодов означает то, что при программировании вывод не был настроен как порт вывода в функции pinMode().

Подтягивающие резисторы управляются теми же регистрами (внутренние адреса памяти микроконтроллера), что управляют состояниями вывода: HIGH или LOW. Следовательно, если вывод работает как порт ввода со значением HIGH, это означает включение подтягивающего к питанию резистора, то конфигурация функцией pinMode() порта вывода на данном выводе микросхемы передаст значение HIGH. Данная процедура работает и в обратном направлении, т.е. если вывод имеет значение HIGH, то конфигурация вывода микросхемы как порта ввода функцией pinMode() включит подтягивающий к питанию резистор.

Примечание: Затруднительно использовать вывод микросхемы 13 в качестве порта ввода из-за подключенных к нему светодиода и резистора. При подключении подтягивающего к питанию резистора 20 кОм на вводе будет 1.7 В вместо 5 В, т.к. происходит падение напряжения на светодиоде и включенном последовательно резисторе. При необходимости использовать вывод микросхемы 13 как цифровой порт ввода требуется подключить между выводом и землей внешний подтягивающий резистор.

Читайте также:  Редактор для python windows
Свойства порта ввода/вывода, сконфигурированного как порт вывода

Выводы, сконфигурированные как порты вывода, находятся в низкоимпедансном состоянии. Данные выводы могут пропускать через себя достаточно большой ток. Выводы микросхемы Atmega могут быть источником (положительный) или приемником (отрицательный) тока до 40 мА для других устройств. Такого значения тока достаточно чтобы подключить светодиод (обязателен последовательно включенный резистор), датчики, но недостаточно для большинства реле, соленоидов и двигателей.

Короткие замыкания выводов Arduino или попытки подключить энергоемкие устройства могут повредить выходные транзисторы вывода или весь микроконтроллер Atmega. В большинстве случаев данные действия приведут к отключению вывода на микроконтроллере, но остальная часть схемы будет работать согласно программе. Рекомендуется к выходам платформы подключать устройства через резисторы 470 Ом или 1 кОм, если устройству не требуется больший ток для работы.

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

Платы Arduino очень популярны среди электронщиков и изобретателей, и это факт: стоимость оригинальных контроллеров относительно невелика, при этом существует множество китайских клонов, которые стоят чуть ли не в 3 раза дешевле. С данным контроллером можно придумать и сконструировать все, что душа пожелает. Но, к сожалению, плата очень сильно подвержена внешним воздействиям: при малейшей оплошности контроллер готов тут же выйти из строя.

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

Ошибка 1: Высокое напряжение

Не подавайте напряжение на Arduino выше 5V через пины вывода (или выше 3.3V для контроллеров с этим рабочим напряжением)! Почему-то люди иногда путают пины 5V и vin и подают напряжение именно на вывод с надписью 5V. Он является выводом, поэтому можно не удивляться, если ваша Arduino после такого эксперимента больше не включается.

Ошибка 2: Два источника питания

Не питайте Arduino от двух разных источников одновременно! Это приводит к перекосу напряжения, и как следствие, через некоторое время контроллер может просто выйти из строя.

Ошибка 3: Программное сопротивление

Никогда не включайте в контроллерах Arduino сопротивление программно! При задействованном выводе оно должно быть обязательно подключено через подтягивающий резистор в 10кОм на землю. Это делается для исключения наводок от внешних источников питания.

Читайте также:  Проверить комп на вирусы бесплатно dr web

У контроллера Arduino существуют внутренние подтягивающие резисторы на каждом выводе (pull-up), они включаются через код программы, и их можно использовать в качестве защиты от ложных срабатываний. Но если такой вывод перегрузить или нечаянно замкнуть, он просто сгорит и больше работать не будет.

Ошибка 4: Замыкание

Никогда не замыкайте питающие провода контроллера! Возможно, вы уже догадались, что микросхема боится практически любого замыкания. Вообще подобной оплошности боится любое оборудование. Многие производители ставят на свои устройства специальные предохранители, которые разрывают цепь при малейшем превышении тока или напряжения. Но не испытывайте судьбу.

На платах типа Arduino Mega уже предусмотрена так называемая «защита от дурака» и от невнимательных юзеров. Но на платах типа Nano предохранитель отсутствует из-за физических ограничений. Хорошо, если сгорит всего лишь обвязка на плате. Поменять диод или резистор не проблема, но спалить контроллер из-за неосторожного движения – большая досада.

Ошибка 5: Замыкание без нагрузки

Не замыкайте выводы Arduino между собой без какой-либо нагрузки! Просто не делайте так. В самом крайнем случае если вам кажется, что оно должно работать так, и по-другому не может быть, подключайте только через резистор.

Ошибка 6: Перегруз

Не перегружайте выводы Arduino по напряжению и току. Выводы контроллера рассчитаны на суммарный ток до 200мА. При превышении этого порога контроллер начнет перегреваться и выйдет из строя.

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

Ошибка 7: Переполюсовка контроллера

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

Ошибка 8: Статическое электричество

Микросхема чувствительна ко всяким внешним воздействиям, а сильная дуга статического электричества просто прошьет контроллер намертво. Лучше работайте с контроллером в антистатической одежде. Также в продаже есть специальные антистатические браслеты: не пожалейте денег, купите себе один.

Ошибка 9: Включенный контроллер

Не собирайте схему при включенном контроллере. Люди, начинающие работу с контроллерами, часто не знают, что нельзя менять или отсоединять компоненты в схеме, пока она работает. Сбой программы – не самое страшное, что может случиться.

Читайте также:  Слова с корнем молод

Страшно, когда половина выводов перестанут подавать признаки жизни. Такой контроллер больше никогда не будет работать адекватно (если он вообще будет работать).

Ошибка 10: Двенадцать вольт

Не подавайте на плату напряжение выше 12V. Модули, подсоединяемые к плате, могут работать при напряжении выше номинального, отличного от предусмотренного напряжения на плате.

Инженеры, проектирующие Arduino, учли этот нюанс, и микросхема способна выдержать большое напряжение, но при этом она будет сильно греться. При превышении порога по напряжению в 12 вольт контроллер просто сгорит!

При работе с платами Arduino будьте очень внимательны, лучше десять раз перепроверить все подключения, прежде чем запускать устройство.

Отправляет на цифровой вывод значение HIGH или LOW.

Если функцией pinMode() вывод сконфигурирован как выход (OUTPUT), то при выполнении функции digitalWrite() его напряжение будет изменено на соответствующее значение: 5 В (либо 3.3 В для плат, работающих от 3.3В) при отправке HIGH, 0 В (земля) — при LOW.

Если вывод сконфигурирован как вход INPUT, то отправка функцией digitalWrite() значения HIGH приведет к подключению внутреннего подтягивающего резистора номиналом 20 КОм (см. инструкцию по цифровым выводам). Запись значения LOW приведет к отключению подтяжки. Внутренний подтягивающий резистор может обеспечить только тусклое свечение светодиода. Поэтому, если светодиод горит, но очень тускло, наиболее вероятная причина этого — подтягивающий резистор. Для решения данной проблемы необходимо перевести соответствующий вывод в режим выхода с помощью функции pinMode().

ПРИМЕЧАНИЕ: Существуют некоторые сложности при использовании вывода 13 в качестве цифрового входа. Причиной этого является светодиод и резистор, которые припаяны к этому выводу на большинстве плат Ардуино. При включении внутреннего подтягивающего резистора 20 КОм, напряжение на этом выводе установится на уровне около 1.7 В, вместо ожидаемых 5 В, поскольку светодиод и последовательно соединенный резистор на плате понижают уровень напряжения. Таким образом, вывод будет всегда находится в состоянии LOW. Поэтому, чтобы использовать вывод 13 в качестве цифрового входа, необходимо использовать внешний резистор на землю.

Синтаксис

Параметры

pin: номер вывода

value: значение HIGH или LOW

Возвращаемые значения

Пример

Программа устанавливает на выводе 13 высокий уровень HIGH, выдерживает паузу в 1 секунду, после чего возвращает вывод в низкий уровень LOW.

Примечание

Выводы, являющиеся аналоговыми входами, могут также использоваться как цифровые выводы под именем A0, A1 и т.д.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.