За что отвечает функция pinmode

Функция pinMode в Ардуино

За что отвечает функция pinmode. Смотреть фото За что отвечает функция pinmode. Смотреть картинку За что отвечает функция pinmode. Картинка про За что отвечает функция pinmode. Фото За что отвечает функция pinmode

Функция pinMode() Arduino IDE устанавливает режим работы заданного пина, как входа или выхода. Цифровой пин Ардуино может находиться в двух состояниях. В режиме входа пин считывает напряжение от 0 до 5 Вольт, а в режиме выхода – выдавать на пине такое же напряжение. Режим работы пина микроконтроллера выбирается при помощи функции pinMode(pin, mode), где pin это номер пина, а mode это режим.

pinMode Arduino IDE описание

Arduino pinMode OUTPUT (пины настроены как выход)

OUTPUT (порт работает как выход) — пин становится управляемым источником питания с максимальным током 40 мА. В зависимости от команды digitalWrite() пин принимает значение единицы или нуля. Пример: pinMode (10, OUTPUT);

Функция digitalWrite() и analogWrite()

Цифровой пин Ардуино может генерировать цифровой сигнал с помощью команды digitalWrite(), т.е. выдавать напряжение 5 Вольт. Цифровой сигнал может иметь два значения — 0 или 1 (0 Вольт или 5 Вольт). Если в программе используется команда analogWrite() для ШИМ портов платы, то микроконтроллер может генерировать сигнал PWM Arduino на портах — создавать имитацию аналогового сигнала.

К пинам ардуино нельзя подключать устройства, потребляющие ток более 40 мА, так как основное назначение микроконтроллера — это управления другими устройствами при помощи логических сигналов. Если к пину подключить устройство, потребляющее ток больше указанного значения, то пин может выгореть. Поэтому к выводам микроконтроллера Ардуино не следует подключать ничего мощнее светодиода.

Arduino pinMode INPUT (пины настроены как вход)

INPUT (порт работает как вход) — пин в этом режиме считывает данные с аналоговых и цифровых датчиков, состояния кнопок. Порт находится в высокоимпедансном состоянии, т.е. у пина высокое сопротивление. Пример: pinMode (10, INPUT);

Функция digitalRead() и analogRead()

Arduino может определить наличие напряжения на пине через функцию digitalRead(), которая возвращает 0 (LOW) или 1 (HIGH). Существует разница между цифровым датчиком (который обнаруживает включение/выключение) и аналоговым датчиком, значение которого постоянно изменяется. Используя функцию analogRead(), можно прочитать напряжение с аналогового датчика, функция возвращает число от 0 до 1023.

Нельзя подавать на вход микроконтроллера напряжение выше напряжения питания платы. Кроме того, для аналоговых выводов Ардуино можно использовать команды digitalRead() и digitalWrite(). В этом случае аналоговые порты будут считывать (digitalRead) или выдавать (digitalWrite) цифровой, а не аналоговый сигнал.

Arduino pinMode INPUT_PULLUP

INPUT_PULLUP (порт работает как вход) но к пину подключается резистор в 20 кОм. В этом режиме при подключении кнопки к Ардуино можно не использовать внешние подтягивающие резисторы. Пример: pinMode (10, INPUT_PULLUP);

Источник

Функция arduino pinMode

pinMode в Arduino помогает установить режим работы пина для выполнения операций считывания или записи. Как правило, эта функция используется внутри метода setup () и выполняется один раз при запуске программы. Неправильное выставление режима входов и выходов ардуино может сказать на работоспособности проекта и платы. В этой статье мы узнаем, как пользоваться pinMode, в каких случаях ее можно опустить, а в каких она обязательна.

Синтаксис функции

Функция не возвращает значения.

Описание параметров

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

В параметре указываем тип режима работы пина (более подробно о возможных режимах мы поговорим чуть позже).

Константы INPUT, OUTPUT и INPUT_PULLUP

В Ardino предусмотрены константы, обозначающие варианты типов:

Примеры использования

Зачем нужна функция pinMode

Режимы работы портов и функция pinMode входят в число первых вопросов, возникающих у начинающих ардуинщиков. Действительно, зачем нам нужно определять самим тип порта и почему микроконтроллер не может это сделать самостоятельно?

Для ответа на вопрос нам нужно немного окунуться в электронику. Вспомните, что мы пишем программу не для абстрактного компьютера, а для вполне конкретного устройства, схема которого может кардинально отличаться от проекта к проекту. Вы можете подключить к плате Arduino огромное количество разнообразных устройств с совершенно разными характеристиками (сопротивление, емкость и т.п.). Присоединив их к Arduino, вы создаете совершенно новую электрическую схему, в которой должны быть уже учтены параметры, как самой платы, так и внешних устройств. Так, например, подключение двигателя, который потребляет высокий ток (особенно в момент старта и остановки) будет сильно отличаться по схеме от подключения какого-либо датчика. В некоторых случаях Ардуино становится источником питания, в некоторых – просто вольтметром, а это совершенно разные режимы работы: в первом случае нужно по возможности снизить внутреннее сопротивление (можно придумать такую аналогию – мы громко говорим, нужно чтобы ничего не мешало) а во втором – наоборот, максимально поднять (мы слушаем, рот можно закрыть).

Электрическое сопряжение – очень непростое дело и самостоятельно новичку разобраться во всех нюансах было бы очень не просто. Тем более, что для работы с каждым типом устройств желательно создавать свою уникальную схему подключения и подбирать радиоэлементы (резисторы, конденсаторы), обеспечивающие наиболее безопасный и энергоэффективный режим работы. К счастью, в некоторых случаях Arduino берет часть работы на себя, подключая или отключая необходимый способ сопряжения, если вы укажете ему прямо в программе, в каком режиме работы должны находиться пины. Именно это и делается с помощью функции ардуино pinMode. Указав номер порта и тип подключения, вы тем самым заставляете Arduino задействовать или отключать необходимые элементы платы. Полученный результат в большинстве случаев достаточно хорошо решает проблему сопряжения нескольких электронных компонентов.

Режимы работы пинов Arduino

Как правило, каждый пин платы Arduino работает в двух возможных режимах: или в качестве входа или в качестве выхода. Для установки режима работы Arduino в основном используется два варианта параметров: INPUT и OUTPUT. Но иногда при работе с датчиками нужно выставить пин в режим с неявно подключенным внутренним резистором, поэтому в нашем арсенале есть еще одна константа, определяющая тип пина: INPUT_PULLUP.

Pin INPUT

Режим INPUT определяет высокоимпедансное состояние пина для работы с внешними источниками сигналов (как правило, это различные варианты датчиков, от которых поступают показания, отсюда слово INPUT). Другими словами, в этом состоянии вы можете подключить практически любую нагрузку, потому что к входу неявным образом подключается высокоомный (десяток мегаом) резистор.

Для установки режима INPUT нужно использовать следующую команду:

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

Pin OUTPUT

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

Pin INPUT_PULLUP

За что отвечает функция pinmode. Смотреть фото За что отвечает функция pinmode. Смотреть картинку За что отвечает функция pinmode. Картинка про За что отвечает функция pinmode. Фото За что отвечает функция pinmodeВ режиме INPUT_PULLUP пин работает в режиме входа, но Arduino неявно для нас подключает к входной цепи внутренний подтягивающий резистор. При этом поступление сигнала с датчика будет «инвертироваться», т.е. высокий уровень будет приводить к нулю на входе, низкий, наоборот, оставит на пине высокое напряжение.

Режим INPUT_PULLUP широко используется при работе с кнопками в Ардуино. В не нажатом состоянии подключенная к пину кнопка создает неопределенное состояние (а провод, ведущий к Arduino выступает в роли своеобразной антены, усиливающей все наводки). Для исправления ситуации в схему добавляют подтягивающий резистор. Использование команды pinMode с параметром INPUT_PULLUP позволяет обойтись без дополнительного внешнего сопротивления, используя внутренний резистор Arduino.За что отвечает функция pinmode. Смотреть фото За что отвечает функция pinmode. Смотреть картинку За что отвечает функция pinmode. Картинка про За что отвечает функция pinmode. Фото За что отвечает функция pinmode

Альтернативным способом использования INPUT_PULLUP является подача высокого уровня напряжения на вход, находящийся в режиме INPUT. Команда digitalWrite(10, HIGH) для пина 10, установленного в режим INPUT, включит внутренний резистор так же, как это сделала бы команда pinMode(10, INPUT_PULLUP).

Теперь для вас должно стать понятно, почему даже в простых схемах ваши светодиоды иногда светились очень тускло: вы просто забывали установить для них тип OUTPUT, а когда включали c помощью команды digitalWrite, вы подсоединяли встроенный резистор, тем самым ограничивая ток и степень свечения светодиода.

Источник

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

За что отвечает функция pinmode. Смотреть фото За что отвечает функция pinmode. Смотреть картинку За что отвечает функция pinmode. Картинка про За что отвечает функция pinmode. Фото За что отвечает функция pinmode

Нумерация пинов

Пины пронумерованы на плате как “цифровые” D* пины и аналоговые A* пины. К цифровым пинам мы будем обращаться просто по их номеру, т.е. D3 это просто 3. С аналоговыми пинами чуть сложнее:

Режимы работы пинов

Если со входом/выходом всё понятно, то с подтяжкой давайте разберёмся. В режиме входа пин микроконтроллера не подключен никуда и ловит из воздуха всякие наводки, получая практически случайное значение. Для задания пину “состояния по умолчанию” используют подтяжку резистором к земле или питанию. Вот режим INPUT_PULLUP включает встроенную в микроконтроллер подтяжку пина к питанию. Подробнее об этом, со схемами и примерами я рассказывал в начале вот этого видео урока.

Вывод цифрового сигнала

Цифровой пин в режиме выхода ( OUTPUT ) может генерировать цифровой сигнал, т.е. выдавать напряжение. Так как понятие “цифровой” обычно связано с двумя состояниями, 0 и 1, цифровой пин может выдать 0 или 1, точнее: сигнал низкого или высокого уровня. Сигнал низкого уровня это 0 Вольт, грубо говоря в этом состоянии пин подключается к GND микроконтроллера. Сигнал высокого уровня подключает пин к VCC микроконтроллера, то есть к питанию. Если вы вспомните урок по питанию платы, то поймёте, что сигнал высокого уровня на цифровом пине будет варьироваться в зависимости от того, как питается плата Arduino. При питании от источника 5V на пине будет 5V, при питании от USB с потерей на защитном диоде мы получим около 4.7 Вольт на цифровом пине в режиме выхода с высоким сигналом. Самый главный момент касательно цифровых пинов: микроконтроллер – это логическое устройство, которое создано для управления другими устройствами при помощи логических (цифровых) сигналов. Под словом логическое я подразумеваю не силовое, то есть питать что-то от микроконтроллера нельзя, за редким исключением. На картинке с распиновкой выше вы можете найти надпись “Absolute MAX per pin 40mA, recommended 20mA“. Это означает, что максимум можно снять с пина 40 миллиампер, а рекомендуется не больше 20 миллиампер. Поверьте, для микроконтроллера это очень много. В других микроконтроллерах ограничение по току на пин может составлять 5-10 мА. Также есть общее ограничение на ток с цифровых пинов – 200 мА: “Absolute MAX 200mA for entire package“. Эту информацию можно найти в любом официальном источнике информации об Arduino и микроконтроллере в целом, в том числе в даташите на микроконтроллер. Что произойдёт, если снять с пина больше, чем он может отдать? Всё очень просто – он сломается. Что будет, если снять с нескольких пинов больше, чем может отдать микроконтроллер в целом? Правильно – сгорит микроконтроллер. Поэтому ничего мощнее светодиода и маленькой пищалки к микроконтроллеру подключать нельзя. Никаких моторчиков, лампочек, нагревателей, мощных радио-модулей и прочего питать от цифровых пинов нельзя. Цифровые пины служат для подачи команд другим устройствам, например реле/транзисторам для коммутации нагрузок. Но об этом мы поговорим отдельно. Сейчас вернёмся к вопросу подачи цифрового сигнала: для этого у нас есть функция digitalWrite(pin, value) :

Пример, в котором пины инициализируются как выходы, и на них подаётся сигнал:

Перейдём к чтению цифрового сигнала в режиме INPUT

Чтение цифрового сигнала

Цифровой пин может “измерять” напряжение, но сообщить он может только о его отсутствии (сигнал низкого уровня, LOW ) или наличии (сигнал высокого уровня, HIGH ), причём отсутствием напряжения считается промежуток от 0 до

2.1V. Соответственно от

2.1V до VCC (до 5V) микроконтроллер считает за наличие сигнала высокого уровня. Таким образом микроконтроллер спокойно может работать с логическими устройствами, которые шлют ему высокий сигнал с напряжением 3.3V, он такой сигнал примет как HIGH.

Данный код будет выводить в порт сигнал на пине D5. Если подключить его проводом к VCC – получим 1, если к GND – получим 0.

Источник

Arduino — функции — цифровой вход/выход

За что отвечает функция pinmode. Смотреть фото За что отвечает функция pinmode. Смотреть картинку За что отвечает функция pinmode. Картинка про За что отвечает функция pinmode. Фото За что отвечает функция pinmode

Arduino IDE имеет набор стандартных функций для управления входом/выходом. Вы можете легко обрабатывать как цифровые сигналы, так и аналоговые. Ниже приведен список функций с кратким описанием и примерами использования.

Цифровой вход/выход

Цифровые выводы Arduino могут быть использованы как входы или как выходы. Поэтому необходимы функции, которые позволят установить (настроить) выводы на запись или чтение данных.

Функция pinMode()

Функция pinMode() позволяет определить работу отдельных контактов. Ее синтаксис выглядит следующим образом:

pin — код — это указать номера контакта системы Arduino

mode — это одна из предопределенных констант: INPUT, OUTPUT или INPUT_PULLUP

Предназначение данных констант описано в другой статье. Примеры режим работы выводов:

Как вы можете видеть, конфигурирование контактов не такой уж сложный процесс. Стоит обратить внимание на тот факт, что тот же эффект можно получить несколькими способами.

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

За что отвечает функция pinmode. Смотреть фото За что отвечает функция pinmode. Смотреть картинку За что отвечает функция pinmode. Картинка про За что отвечает функция pinmode. Фото За что отвечает функция pinmode

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

Определение — название для конкретного контакта (имя), которое определяет его использование. Безусловно, легче запомнить, что ledPin это вывод, к которому подключен светодиод, чем просто светодиод подключен к контакту 10.

Стоит помнить, что при объявлении соответствующего имени, мы так же будем ссылаться на него и в программе, а не только при определении режима работы вывода. Определение имен с помощью директивы define или const совпадает с практической точки зрения. Компилятор заменит данное имя на присвоенное ему значение.

Разработчики Arduino IDE рекомендуют использовать const. Мы в отношении контактов рекомендуем использовать define как четкое отличительное назначение контактов для имени.

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

В последнем примере показано использование переменной в качестве имени контакт. Такое определение приведено на официальном сайте документации Arduino. На наш взгляд, это не лучший вариант, так как переменная займет ценное место в памяти. Единственно оправданным случаем использования переменной может быть ситуация, когда мы хотим в цикле выполнять операции над несколькими выводами. Это, однако, особый случай.

Иногда в каком-либо проекте нет необходимости в аналоговых входах, тогда эти выводы можно использовать в качестве цифрового входа или выхода. В этом случае с помощью функции pinMode() можно установить необходимый режим для контактов A0 — A5.

Использование одного или нескольких контактов из A0… A5 как цифровых не приведет к невозможности использования оставшихся в качестве аналоговых входов. Можно использовать, например, 2 аналоговых входа и 4 цифровых выходов из A0… A5.

Функция digitalWrite()

Функция digitalWrite() позволяет установить состояние вывода как цифровой выход. Ее синтаксис (как и в pinMode()) требует двух параметров: первый — это номер контакта, второй — логическое значение LOW или HIGH.

Установка значения LOW приведет к тому, что напряжение на выходе будет 0В (короткое замыкание на массу), значение HIGH около 3,3В или 5В в зависимости от напряжения питания Arduino. Ниже приведен пример использования функции digitalWrite():

В примере видно как можно установить соответствующее состояние вывода. Использованная в примере функция delay() позволяет выполнять задержку исполнения кода. Подробнее об этом будет обсуждаться далее.

При использование функции digitalWrite() в случае, когда вывод настроен как вход, необходимо включить или выключить режим PULLUP, то есть подключить подтягивающий резистор. В более поздних версиях Arduino IDE, безусловно, лучше использовать pinMode() с параметром INPUT_PULLUP.

Функция digitalRead()

Функция digitalRead() позволяет считывать состояние с вывода, определенного как цифровой вход. Эта функция возвращает значение LOW или HIGH. Необходимо указать номер контакта, с которого мы хотим прочитать состояние.

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

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

Переменная val может содержать значение LOW или HIGH, в зависимости от состояния входа. Функция digitalWrite() задает состояние выхода в зависимости от переменной val.

Довольно часто бывает необходимо выполнять некоторые операции, которые напрямую зависят от состояния на входе. В такой ситуации мы можем написать так:

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

Источник

Функция pinMode

Режим работы пина (вход или выход)

Начиная с Arduino 1.0.1, можно включить внутренние подтягивающие резисторы в режиме INPUT_PULLUP. Кроме того, режим INPUT явно отключает внутренние подтягивающие резисторы.

Разное

Ножки для корпусов РЭА можно сделать из резиновой накладки поршня медицинского шприца.

Интересно

Диэлектрические и диамагнитные отвертки можно выпилить из старых стеклотекстолитовых плат.

Похожие инструкции

За что отвечает функция pinmode. Смотреть фото За что отвечает функция pinmode. Смотреть картинку За что отвечает функция pinmode. Картинка про За что отвечает функция pinmode. Фото За что отвечает функция pinmode

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

За что отвечает функция pinmode. Смотреть фото За что отвечает функция pinmode. Смотреть картинку За что отвечает функция pinmode. Картинка про За что отвечает функция pinmode. Фото За что отвечает функция pinmode

Приводится описание современной, мощной и удобной среды разработки mikroC, которая включает большую библиотеку готовых функций для работы с разнообразными интерфейсами и устройствами и позволяет быстро создавать эффективные программы на языке высокого уровня Си для микроконтроллеров семейств PIC, AVR, MCS-51 и др.

За что отвечает функция pinmode. Смотреть фото За что отвечает функция pinmode. Смотреть картинку За что отвечает функция pinmode. Картинка про За что отвечает функция pinmode. Фото За что отвечает функция pinmode

Python является простым и, в то же время, мощным интерпретируемым объектно-ориентированным языком программирования.

За что отвечает функция pinmode. Смотреть фото За что отвечает функция pinmode. Смотреть картинку За что отвечает функция pinmode. Картинка про За что отвечает функция pinmode. Фото За что отвечает функция pinmode

Сегодня практически невозможно представить себе приложение, не обладающее интерфейсом пользователя. Понятия Software и GUI (Graphical User Interface) неразрывно связаны друг с другом.

За что отвечает функция pinmode. Смотреть фото За что отвечает функция pinmode. Смотреть картинку За что отвечает функция pinmode. Картинка про За что отвечает функция pinmode. Фото За что отвечает функция pinmode

В данной статье рассказывается о том, как легко и просто освоить один из новых продуктов Borland C++ Builder 6.0 для разработки программ и быстро начать создавать собственные программы, работающие в операционной системе Windows.

Источник

Leave a Reply

Your email address will not be published. Required fields are marked *