Скільки аналогових пінів в Ардуїно

0 Comments 10:46

Пины Aрдуино: описание, характеристики, примеры скетчей

На плате Ардуино есть несколько видов пинов (с английского pin — контакт, вывод). Их количество может отличаться на разных платах, но всегда присутствуют следующие типы: пины питания, цифровые пины, аналоговые пины. О предназначении этих выводов и работе с ними и пойдёт речь в статье.

Краткое содержание:

  • Пины питания
  • Цифровые пины в режиме входа
  • Как подключить светодиод к Ардуино
  • Цифровой пин в режиме входа
  • Как подключить кнопку к Ардуино
  • Подтягивающий резистор
  • ШИМ-пины
  • Аналоговые пины
  • Аналоговые пины в режиме цифровых
  • Ограничение по току. Подключение мощной нагрузки
  • Пины коммуникации

Пины Ардуино на примере Arduino UNO

Пины питания

Режим работы пинов питания жестко задан, его нельзя поменять программно. Сюда входят:

  • GND — это «земля» (англ. ground), ноль, общий провод. Таких пинов может быть несколько. Сюда подключается минусовой вывод источника питания.
  • Vin — Пин для подключения плюса от внешнего источника питания. Напряжение может быть от 5 до 12 В.
  • 5v — стабилизированные 5 вольт, которые выдаёт плата. Сюда можно подключить маломощных внешних потребителей, которые требуют стабильное питание (датчики и т.п.)
  • 3.3v — стабилизированные 3.3 вольта.

Заметим также, что Ардуино может получать питание и через usb-разъем, в этом случае не нужно подключать внешний источник.

Цифровые пины. Режим выхода

Эта группа пинов обозначена на плате словом digital (по-английски digital – цифровой).

Цифровой пин работает с двумя состояниями: 0 (эквивалентно земле) и 1 (эквивалентно напряжению питания). Причём любой цифровой пин может работать и как вход, и как выход.

Сначала разберёмся с режимом «выход». Соберём вот такую простенькую схему, где цифровой pin №5 будет управлять свечением светодиода:

Схема 1. Подключение светодиода к цифровому пину Ардуино

Номинал резистора в этой схеме зависит от модели светодиода. Обычно для тех светодиодов, что идут в различных наборах Ардуино, требуется резистор 330 Ом.

А вот скетч для этой схемы:

void setup() < // Код в этом методе выполнится только один раз, при запуске Arduino pinMode(5, OUTPUT); // Переключаем пин №5 в режим выхода >void loop() < // Код в этом методе будет выполняться в цикле бесконечное количестово раз digitalWrite(5, HIGH); // Устанавливаем высокий уровень — светодиод загорается delay(500); // Задержка в миллисекундах. Всё это время светодиод горит. digitalWrite(5, LOW); // Устанавливаем низкий уровень — светодиод гаснет delay(500); // И снова задержка >

Если всё правильно собрано, светодиод будет моргать с частотой примерно 1 Гц (цикл горит – не горит занимает 1 секунду).

Ну и давайте сразу привыкать программировать правильно. В нашем скетче в трёх местах используется «магическое число» 5 — номер нашего пина. А если мы решили изменить схему и подключить светодиод к пину 6? Хорошо, когда скетч такой вот небольшой, и можно быстро найти все места, где упоминается пятёрка и поменять её на 6. А если скетч большой? Можно, во-первых, забыть где-то поменять номер пина, а, ещё хуже, случайно заменить постороннюю пятёрку, которая имела совсем другой смысл.

Всё это приводит к ошибкам в программе. Но есть способ уменьшить вероятность их появления. В данном конкретном случае можно запомнить номер пина в переменной, и затем везде использовать её.

int ledPin = 5; // пин подключения светодиода int dl = 500; // задержка void setup() < pinMode(ledPin, OUTPUT); >void loop()

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

Цифровой пин в режиме входа

Как говорилось выше, цифровой пин может работать в режиме входа. С него можно считывать его текущее состояние с помощью метода digitalRead(). Но, поскольку вариантов всего два (1 и 0), то и подключить к нему можно какое-то устройство, которое имеет два состояния, типа кнопки (нажата / не нажата).

И снова разберём на примере. Покажем, как подключить кнопку к Ардуино:

Схема 2. Подключение кнопки к цифровому входу Ардуино

int ledPin = 13; // Пин 13 - это пин встроенного светодиода int buttonPin = 2; // Пин, к которому подключена кнопка void setup() < pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); >void loop() < if (digitalRead(buttonPin) == HIGH) < // Проверяем: если есть высокий уровень на входе (кнопка нажата). digitalWrite(ledPin, HIGH); // … то включам светодиод . >else < // … иначе . digitalWrite(ledPin, LOW); // … светодиод выключаем >>

При нажатии кнопки должен загораться светодиод на плате Ардуино.

Подтягивающий резистор

Вы вправе спросить, зачем в схеме резистор? Это так называемый подтягивающий резистор, с помощью которого можно задать состояние на входе «по-умолчанию».

Дело в том, что входы Ардуино имеют очень высокое входное сопротивление. Поэтому, ни к чему не подключённый, «висящий» вход может оказаться в состоянии 1 за счёт, к примеру, статического электричества. Это приведёт к ложным срабатываниям: кнопка не нажата, но программа считывает с пина высокий уровень.

Чтобы этого избежать, вход подтягивают (в данном случае, к нулю) резистором номиналом 10-20кОм. Когда кнопка отпущена, этот резистор устанавливает 0 на входе. Но, при этом его сопротивление слишком велико, чтобы помешать нажатой кнопке установить на входе 1: ток через резистор будет очень мал, и, в совокупности с большим входным сопротивлением пина на нём установится практически напряжение питания.

К слову, микроконтроллер ATmega имеет программируемые встроенные подтягивающие резисторы 20 кОм. Включение данных резисторов осуществляется так:

pinMode(buttonPin, INPUT); // переключаем пин в режим входа digitalWrite(buttonPin, HIGH); // включаем подтягивающий резистор — в данном случае, подтягиваем к 1 

ШИМ-пины

Вы могли обратить внимание, что на плате напротив некоторых цифровых пинов стоит знак ~ (тильда).

Так обозначены пины, которые могут работать в режиме ШИМ – широтно-импульсной модуляции (по-английски PWM).

То есть, на такой пин можно вывести псевдо-аналоговое напряжение. Технически, это будут прямоугольные импульсы частотой 488,28 Гц и амплитудой 5 вольт. Но, за счёт регулировки скважности (соотношения длины импульса и паузы между импульсами), можно плавно регулировать эффективную мощность на нагрузке. Тема ШИМ заслуживает отдельной статьи, а пока, возможно, вышесказанное станет чуть понятнее из рисунка:

График ШИМ-сигнала. В данном случае пауза длиннее импульса в три раза, то есть период заполнен импульсом на 25%. Это соответствует постоянному напряжению 0.25 * 5 = 1.25 Вольт

Для установления ШИМ-режима на пине служит метод analogWrite(, ).

Значение может меняться от 0 до 255, причём 255 соответствует напряжению питания. Таким образом, например, 128 — это половина напряжения питания, 2.5 В.

Давайте заставим наш светодиод из первого примера плавно набирать яркость и также плавно гаснуть:

int ledPin = 5; // пин подключения светодиода void setup() < pinMode(ledPin, OUTPUT); >void loop() < for(int i=0;i<=255;i++) < // Плавное включение светодиода. Переменная i последовательно принимает все значения от 0 до 255 analogWrite(ledPin, i); // устанавливаем текущие значение переменной i delay(10); // небольшая задержка для плавности включения светодиода >for(int i=255;i>=0;i--) < // Плавное выключение светодиода. Перебираем все значения от 255 до 0 analogWrite(ledPin, i); delay(10); >> 

Аналоговые пины

В их обозначении присутствует буква А: А0, А1 и т.д. Работают эти пины на вход, так что нет необходимости задавать режим через pinMode(). Чтобы считать показания, применяется метод analogRead(). По сути, этот метод измеряет напряжение на аналоговом пине, разбив диапазон от нуля до напряжения питания на 1024 кусочка. К примеру, если analogRead вернул значение 512 — это соответствует половине напряжения питания.

Аналоговые пины в режиме цифровых

Все аналоговые пины можно переключить в режим цифрового выхода (но не в режим ШИМ-выхода). Достаточно переключить пин в режим OUTPUT:

pinMode(A3, OUTPUT); // переключаем пин A3 в режим цифрового выхода

К слову, можно пользоваться чисто цифровой нумерацией, без букв. Пину A0 соответствует цифровой пин 14, A1 — 15 и так далее.

Ограничение по току

При работе пинов в режиме выходов нужно не забывать об ограничениях по максимальному току. Для одного пина оно составляет 40 мА (или 50 мА для плат, работающих от питания 3.3 В). А суммарный ток со всех пинов не должен превышать 200 мА, иначе Ардуинка может выйти из строя.

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

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

Пины коммуникации

Для полноты картины осталось упомянуть о пинах коммуникации.

Пины SDA и SCL используются для подключения устройств, поддерживающих протокол I2C. Аналогично, пины TX и RX используются для коммуникаций по протоколу UART.

Комментарии (2)

А если я не использую внешний кварц и мне нужны пины В6 и В7 как входы или выходы? То есть я только программирую на ардуино, а контроллер ставлю в другую плату.

B6 и B7 – это вроде не про ардуино, а про более низкий уровень, ARM-микроконтроллеры. Тут не могу подсказать.

Цифрові та аналогові піни Ардуїно

Щоб почати вивчати програмування Arduino з нуля, вам потрібен набір літератури або перевірені джерела в Інтернеті (як наш сайт), де розміщені уроки для початківців на Ардуїно з детальними інструкціями та коментарями. На цій сторінці ви дізнаєтеся, що краще купити для вивчення Ардуїно в першу чергу, з чого почати вивчати Ардуїно і які книги можна скачати для перших кроків.

Безкоштовні підручники з Ардуїно російською

Виконавши перші уроки, а більшість знайомство з мікроконтролером починає з найпростішого завдання – підключення світлодіода до плати, ви зрозумієте, що зробити якийсь пристрій чи проект на Ардуїно своїми руками досить просто. Суть мікроконтролерів у тому, що вони розраховані на любителів, які не мають великих знань у програмуванні і навіть повні чайники в електротехніці.

Завантажити книги можна як на комп’ютер, так і на телефон. Оскільки мова Arduino заснована мовою програмування C++, то мобільному пристрої можна почати вивчати основи, але в комп’ютер завантажити підручник по Ардуино російською безкоштовно і реєстрації. Насамперед рекомендуємо вам прочитати, що таке Ардуїно і що з ним можна зробити, особливо якщо ви ще не працювали з цими платами.

З чого почати вивчати Ардуїно з нуля

Книга або підручник з Arduino російською – це лише теорія і без практики тут не обійтися. До того, як ви приступите до програмування мікроконтролера, необхідно отримати базові знання з схемотехніки. Слід вивчити основні радіоелементи, їхнє призначення, принцип роботи, умовні позначення, як збирати електричні схеми. Для цього допоможе наступна інформація на нашому сайті:

  • Основні закони електрики
  • Радіоелементи з фото та назвами
  • Як збирати схеми на макетній платі
  • Характеристики контролерів Arduino

Для того, щоб програмувати мікроконтролер Arduino, слід встановити на комп’ютері необхідне програмне забезпечення, а також мати завжди під рукою довідники з мови Arduino та опис помилок у програмі (скетчі) для мікроконтролерів (вони завжди будуть з’являтися спочатку). Для цього зверніть увагу на наступну корисну інформацію на нашому сайті:

  • Встановлення Arduino на Windows
  • Установка бібліотек в Arduino
  • Мова програмування Arduino
  • Помилки компіляції Arduino

Що придбати для вивчення Ардуїно з нуля

Зовсім маленьким дітям до 10 років рекомендуємо для початку купити набори зі складання простих електричних схем без програмування, наприклад, Знаток (є різні комплектації конструктора) або Мікронік. Якщо у дитини з’явиться інтерес до електроніки, то вже можна придбати безкоштовні підручники та замовляти стартові набори (ці комплекти в інтернет магазинах називають Starter KIT).

Для дітей можна замовити стартові набори на Аліекспрес, де є все потрібне для початку. Також можна подивитися в інтернеті російські набори Arduino від Амперки та інших виробників. Вони коштуватимуть значно дорожче, але у багатьох є інструкції російською та уроки. З іншого боку, нічого не заважає виконувати уроки Arduino російською, використовуючи недорогий набір з Китаю.

Related Post

З чого роблять філіппінські емпанади?З чого роблять філіппінські емпанади?

Філіппінська версія тіста для емпанади містить трохи цукру, що робить його трохи солодким який у поєднанні з великою кількістю вершкового масла надзвичайно смачний. Просто ідеальне доповнення до пікантної начинки. Емпанади