Пины PIN ардуино. Режим pinmode output в цикле

Пины PIN ардуино. Режим  pinmode output в цикле.

Сегодня я расскажу про функцию pinMode. Но не спешите выключать со словами я это и так знаю. Мой рассказ будет о не стандартном присваивании значений пинам Ардуино. Мы рассмотрим несколько способов.
Для начала, что же такое pinMode. Это функция которая устанавливает режим работы заданного пина Ардуино в два состояния, Вход Input или Выход Output. По умолчанию, все пины Arduino уже установлены в режим INPUT, поэтому это состояние указывать не обязательно. Все установки делаются внутри setup (), поэтому выполняется один раз при запуске программы.

Функция имеет значение
pinMode(<номер пина>, <тип>) и не возвращает никаких значений.

Как мы уже определили значение Input установлено по умолчанию, поэтому мы его обсуждать не будем, а остановимся на Output.
Рад приветствовать на своём канале моих подписчиков и просто заглянувших посмотреть что же здесь такого. Надеюсь, что вы тоже подпишитесь на канал. Приятного просмотра.
В режиме OUTPUT Arduino выдаёт на внешнее устройство максимально возможный ток и по сути ваша плата становится  источником тока. Максимальный ток, который можно снять с выхода ардуино – 40 мА. Для работы обычного, не мощного светодиод, например, 5мм одноцветного светодиод надо 20 мА, и это практически единственное устройство которое можно питать напрямую от Ардуино. Всё остальное надо подключать через внешний транзистор или реле.

На этом закончим теорию и перейдём к практике.
Сначала создадим обычный скетч который мы пишем всегда. В нём установим 12 выводов Ардуино в режим Output. Как видите – на это потребовалось достаточно много времени и заняло почти 30 строчек кода. Подумаем, как можно сделать короче.

Так как в этом примере все выводы идут по порядку, то можно сделать обычный цикл, и в нём присвоить всем выводам значение OUTPUT.
Создаём две переменные, начало и конец и присваиваем им значения первого и последнего вывода пина Ардуино, а дальше просто в цикле перебираем по очереди все пины и присваиваем им значения Output. Это отлично работает, но есть одно но. А вдруг вам не нужны все пины в состоянии выхода, вдруг какие-то надо оставить в состоянии Input, тогда этот пример не подойдёт.
Призовём себе на помощь массив и пропишем в него только те пины которые нам надо установить в состояние Output. Массив может быть любой размерности и пины в нём не обязательно указывть по порядку. Можно указать в любой последовательности. А теперь всё так же в массиве присвоим им значение Output.
Ну и напоследок напишем тот же пример, но с прямым обращения к регистрам микроконтроллера. Мы уложились всего в 4 строчки кода и здесь всё понятно и просто. Так же это поможет сократить занимаемую память и увеличить скорость работы до 5 раз. Это было описано в этом уроке.

Подведём итог.
Вот так выглядит код всех трёх примеров на одной странице. Каким способом пользоваться решайте сами, но знать и уметь пользоваться разными способами надо уметь, вдруг когда-нибудь пригодится.

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