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

Распиновка платы Ардуино Нaно (Arduino Nano Rev3.2) + схема

Схема платы Arduino Nano с нумерацией всех пинов (выводов) с указанием соответствия выводам микроконтроллера Atmega328. Скачать принципиальную схему Arduino Nano.

Arduino Nano — младший брат ардуины UNO, который отличается более компактными размерами, более низкой ценой , несколько урезанным количеством выводов и разъемов, но обладающий практически тем же функционалом, что и UNO, поскольку на обоих платах стоит один и тот же микроконтроллер Atmega328.

(замечание: в старых версиях Arduino Nano 2.x использовался МК ATmega168).

Распиновка платы Arduino Nano

На рисунке указаны номера и назначения выводов Arduino Nano (вид со стороны, на которой расположен микроконтроллер Atmega328):

Расшифровка цвета:

— серый цвет — физический пин микроконтроллера Atmega328;

— светло серый цвет (PD0, PD1 и т.д.) — номер порта микроконтроллера, который доступен из программ на ассемблере;

— зеленый цвет (ADC0 и т.д.) — номера аналогивых выводов;

— голубой цвет — пины портов UART и SPI.

Назначение и обозначения выводов:

USB — USB-порт, предназначенный для подключения ардуины к компьютеру через USB-кабель (нужен Mini-B USB разъем).

VIN — сюда может подается питание от внешнего источника питания на 7-12 В (блок питания покупается отдельно). Напряжение будет подаваться на стабилизатор и понижаться до 5 В. Поэтому оптимально подавать на этот пин около 9 В.

5V — через этот пин также можно запитывать плату от источника питания на 5 вольт, однако напряжение должно быть более-менее стабильным, поскольку оно подается непосредственно на микроконтроллер (стабилизатор не задействован), и поэтому высокое напряжение может убить основной микроконтроллер.

3.3V — на этом пине будет висеть напряжение 3.3 В, которое формируется от внутреннего стабилизатора платы. Этот пин нужен для подключения некоторых внешних устройств, которым для работы требуется 3.3 В — обычно это всякие ЖК-дисплеи. Однако максимальный ток вывода при этом не должны превышать 50 мА.

GND — земля (Ground Pin).

AREF — опорное напряжение для аналоговых входов. Используется по необходимости (настраивается с помощью analogReference()).

IOREF — позволяет узнать рабочее напряжение микроконтроллера. Используется редка. На китайских платах отсутствует вовсе.

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

SDA, SCL — пины интерфейса TWI/I2C.

D0. D13 — цифровые входы/выходы. На вывод D13 висит встроенный светодиод, который загорается, если на вывод D13 подан уровень HIGH.

0 (RX), 1 (TX) — выводы порта UART (последовательный порт Serial).

A1. A5 — аналоговые входы (могут использоваться и в качестве цифровых).

Внешний вид платы Arduino Nano с подписанными выводами:

RX+TX LEDs — светодиоды — моргают, когда передаются данные через последовательный порт Serial UART (пины RX и TX).

Reset Button — кнопка для перезапуска микроконтроллера;

(остальные обозначения смотри выше)

FTDI USB chip — микросхема FTDI FT323RL, которая используется для связи ардуины с компьютером через USB-кабель. Со стороны ардуины это serial-интерфейс. На компьютер этот интерфейс будет доступен в виде виртуального COM-порта (должны быть установлены драйвера для чипа FTDI — обычно входят в состав IDE Arduino).

Источник

Arduino Nano: распиновка, схема подключения и программирование

Плата Arduino Nano — аналог флагманской Uno в миниатюрном размере. На ней предусмотрено всё необходимое для удобной работы с микроконтроллером: 14 цифровых входов/выходов (6 из них могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, кварцевый резонатор на 16 МГц, разъём Mini-USB, разъём питания, разъём для внутрисхемного программирования (ICSP) и кнопка сброса.

Видеообзор

Подключение и настройка

Для запуска платформы скачайте и установите на компьютер интегрированную среду разработки Arduino IDE.

При выборе платформы выбирайте Arduino Nano.

Если всё получилось — можете смело переходить к экспериментам.

Элементы платы

Микроконтроллер ATmega328P

Сердцем платформы Arduino Nano является 8-битный микроконтроллер семейства AVR — ATmega328P с тактовой частотой 16 МГц. Контроллер предоставляет 32 КБ Flash-памяти для хранения прошивки, 2 КБ оперативной памяти SRAM и 1 КБ энергонезависимой памяти EEPROM для хранения данных.

Микросхема FT232R

Микросхема FTDI FT232R обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера. При подключении к компьютеру Nano определяется как виртуальный COM-порт.

USB-UART преобразователь общается с микроконтроллером ATmega328P по интерфейсу UART через пины 0(RX) и 1(TX) . Рекомендуем не использовать эти контакты в своём проекте.

Светодиодная индикация

Имя светодиода Назначение
RX и TX Мигают при обмене данными между Arduino Nano и ПК.
L Пользовательский светодиод подключённый к 13 пину микроконтроллера. При высоком уровне светодиод включается, при низком – выключается.
ON Наличие питания на Arduino Nano.

Разъём Mini-USB

Разъём Mini-USB предназначен для прошивки платформы с помощью компьютера.

Регулятор напряжения 5 В

Линейный понижающий регулятор напряжения LM1117MPX-5.0 с выходом 5 вольт обеспечивает питание микроконтроллера ATmega328P и другой логики платформы. Максимальный выходной ток составляет 800 мА.

ICSP-разъём для ATmega328

ICSP-разъём предназначен для загрузки прошивки в микроконтроллер ATmega328 через программатор.

Также через контакты ICSP Nano общается с платами расширения по интерфейсу SPI.

Источник

Цифровые пины

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

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

AVR (Arduino Nano)

  • Нет прямой нумерации GPIO, всё поделено на порты и пины (не указаны на распиновке), о них мы поговорим в отдельном уроке.
  • На плате выведенные GPIO подписаны как Dцифра и Aцифра и в программе мы можем обращаться к ним по этой нумерации:
    • К пинам GPIO, подписанным как D (D0-D13), можно обращаться по номеру: D2 – просто 2 .
    • К пинам GPIO, подписанным как A (A0-A5), можно обращаться по подписи на плате: A2 – A2 . Также нумерация A пинов продолжает нумерацию D пинов по порядку, то есть A0 это 14 , A1 это 15 .. A5 – 19 .

ESP8266 (Wemos Mini)

  • Имеется прямая нумерация GPIO (номера подписаны на распиновке зелёным), по этим номерам можно обращаться к пинам в программе как к цифрам: GPIO5 – просто 5 .
  • На плате пины подписаны как Dцифра. Эта нумерация не совпадает с номерами GPIO, но по ней также можно обращаться к пинам в программе: D1 это D1 , и этот же пин – просто 5 , как номер GPIO (см. распиновку выше).

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

Цифровой пин может находиться в двух состояниях, вход и выход. В режиме входа пин может считывать напряжение от 0 до напряжения питания МК, а в режиме выхода – выдавать такое же напряжение. Режим работы выбирается при помощи функции pinMode(pin, mode) , где pin это номер пина, а mode это режим:

  • INPUT – вход
  • OUTPUT – выход
  • INPUT_PULLUP – подтянутый к питанию вход

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

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

Цифровой пин в режиме выхода ( OUTPUT ) может генерировать цифровой сигнал, т.е. выдавать напряжение. Так как понятие “цифровой” обычно связано с двумя состояниями, 0 и 1, цифровой пин тоже может выдать 0 или 1, точнее сигнал низкого или высокого уровня:

  • Сигнал низкого уровня это 0V, пин подключается к GND микроконтроллера.
  • Сигнал высокого уровня подключает пин к VCC микроконтроллера, то есть к питанию.

Если вы вспомните урок по питанию платы, то поймёте, что сигнал высокого уровня на цифровом пине будет варьироваться в зависимости от того, от какого напряжения питается плата. При питании напрямую от источника 5V на пине будет 5V, при питании от USB с потерей на защитном диоде мы получим около 4.7V.

Самый главный момент касательно цифровых пинов: микроконтроллер – логическое устройство, которое создано для управления другими устройствами при помощи логических сигналов. Логическое – означает не силовое, то есть питать от пина МК нельзя ничего мощнее светодиода или слабой микросхемы:

  • Для AVR Arduino рекомендуемый ток с пина GPIO – не более 20 мА, максимальный ток – 40 мА.
  • Для esp8266 максимальный ток с пина GPIO – не более 12 мА.

Вернёмся к вопросу подачи цифрового сигнала: для этого у нас есть функция digitalWrite(pin, value) :

  • pin – пин GPIO (нумерацию смотри выше).
  • value – уровень сигнала: HIGH высокий, LOW низкий. Также можно использовать цифры 1 и 0 соответственно.

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

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

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

VCC/2 Вольт, а от VCC/2 до VCC микроконтроллер считает за наличие сигнала высокого уровня.

Для чтения уровня сигнала на пине используется функция digitalRead(pin) , где пин – номер GPIO (нумерацию смотри выше).

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

Видео


Источник

Что умеет микроконтроллер?

Микроконтроллер – чрезвычайно универсальное устройство, на его основе можно сделать бесконечно много разных электронных устройств, как полезных, так и бесполезных. Под управлением микроконтроллеров работает любая техника, в которой есть какие-то настройки, режимы или автоматизация (стиральная машина, микроволновка, мультиварка…), некоторые узлы автомобилей, станки с ЧПУ, простенькие гаджеты и так далее.

Что же делает МК настолько мощным и универсальным инструментом? Ведь фактически он умеет делать всего три вещи*:

  • Измерять напряжение на пине
  • Выдавать напряжение с пина
  • Программироваться

(*) – ещё у МК может быть собственный беспроводной интерфейс, но это уже частный случай.

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

Что такое МК?

Микроконтроллер – это сильно навороченная программируемая микросхема, самый простой аналог – компьютер, точнее системный блок (без блока питания). Да, вы не ослышались! Микроконтроллер работает сам по себе, на нём может быть запущена простенькая операционная система, может даже быть выход в Интернет, а мы можем подключать к нему устройства ввода, датчики, дисплеи и прочие железки. Чем не компьютер?

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

  • Ядро (процессор) – отвечает за работу всех остальных блоков, связывает их между собой. Сам состоит из десятка элементов (кэш, набор вычислительных блоков, и т.д.). Аналог – процессор компьютера.
  • Flash память – постоянное запоминающее устройство (ПЗУ). Хранит исполняемый код программы, также может хранить статические данные (изображения, веб-страницы, текст, таблицы с числами, и т.д.). Не очищается после сброса питания. Аналог – жёсткий диск компьютера.
  • SRAM память – оперативное запоминающее устройство (ОЗУ). Хранит данные, изменяющиеся в процессе работы программы (промежуточные результаты вычислений, значения переменных, принятые от внешних устройств данные и т.д.). Очищается после сброса питания. Аналог – оперативная память компьютера.

Также в МК могут быть и другие блоки:

  • GPIO (General Purpose Input-Output) – вход-выход общего назначения. Измеряет поданный на пин цифровой сигнал, либо выдаёт его с пина. Подробнее в этом уроке. Пины GPIO мы будем называть цифровые пины.
  • АЦП (ADC, аналогово-цифровой преобразователь) – измеряет поданное на пин напряжение, аналоговый сигнал, и передаёт в программу. Подробнее в этом уроке. Такие пины мы будем называть аналоговые пины.
  • ЦАП (DAC, цифро-аналоговый преобразователь) – выдаёт указанное напряжение с пина (аналоговый сигнал).
  • Таймер (счётчик) – считает такты работы процессора
    • Позволяет с очень высокой точностью (до наносекунд) измерять время.
    • Часто таймер используется для генерирования ШИМ сигнала на своих выводах, они помечаются как PWM. Подробнее в этом уроке. Такие пины мы будем называть ШИМ-пины.
  • Watchdog – данный блок позволяет перезагрузить МК, если он завис, а также выйти из спящего режима.
  • Интерфейсы связи – нужны для связи с внешними устройствами, т.е. для обмена данными (получение значений с датчика, отправка данных по радио и т.д.). По сути МК может воспроизвести любой интерфейс связи при помощи GPIO, но это будет довольно затратно для процессора. Поэтому некоторые интерфейсы реализованы отдельно и работают самостоятельно, обмениваясь с ядром готовыми данными. Самые популярные интерфейсы:
    • UART – связь с одним внешним устройством. По одному проводу передаёт, по второму – принимает. Может работать только на передачу или только на приём, используя один провод. Названия пинов:
      • RX (Receive) – приём.
      • TX (Transmit) – передача.
    • I2C – адресная шина, можно подключить до 128 устройств одновременно всего по двум проводам. Названия пинов:
      • SDA (Serial DAta) – линия данных.
      • SCL (Serial CLock) – линия синхронизации.
    • SPI – можно подключить сколько угодно устройств, но каждое требует логический сигнал (пин) для выбора. Требует два провода для передачи в одну сторону или три – для обмена данными (одновременный приём и передача). Самый быстрый из перечисленных интерфейсов. Названия пинов:
      • MOSI (Master Output Slave Input) – линия данных от МК к внешней микросхеме.
      • MISO (Master Input Slave Output) – линия данных от внешней микросхемы к МК.
      • SCLK (Serial CLocK) – линия синхронизации.
    • I2S – специальный интерфейс для передачи цифрового аудио сигнала.

Распиновка

Как вы наверное поняли, микроконтроллер – это микросхема с кучей ножек. У каждой ножки есть своя функция, в частности у блоков GPIO и интерфейсов связи есть свои личные ноги. Для экономии размера и уменьшения количества ног микросхемы производители практически всегда объединяют несколько функций на одной ножке. Чтобы понять, куда подключать внешнюю “железку”, нужно посмотреть на распиновку (pinout) микросхемы или платы: это картинка, на которой подписаны функции всех ножек МК или пинов платы. Вот для примера упрощённые распиновки плат Arduino Nano и Wemos Mini, на них вы найдёте уже знакомые из предыдущей главы аббревиатуры:

Почти на всех Ардуино-совместимых платах есть “отладочный” светодиод, подключенный к одному из пинов. На распиновках я отметил его как LED.

Источник

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

Распиновка платы Ардуино Нaно (Arduino Nano Rev3.2) + схема

Схема платы Arduino Nano с нумерацией всех пинов (выводов) с указанием соответствия выводам микроконтроллера Atmega328. Скачать принципиальную схему Arduino Nano.

Arduino Nano — младший брат ардуины UNO, который отличается более компактными размерами, более низкой ценой , несколько урезанным количеством выводов и разъемов, но обладающий практически тем же функционалом, что и UNO, поскольку на обоих платах стоит один и тот же микроконтроллер Atmega328.

(замечание: в старых версиях Arduino Nano 2.x использовался МК ATmega168).

Распиновка платы Arduino Nano

На рисунке указаны номера и назначения выводов Arduino Nano (вид со стороны, на которой расположен микроконтроллер Atmega328):

Расшифровка цвета:

— серый цвет — физический пин микроконтроллера Atmega328;

— светло серый цвет (PD0, PD1 и т.д.) — номер порта микроконтроллера, который доступен из программ на ассемблере;

— зеленый цвет (ADC0 и т.д.) — номера аналогивых выводов;

— голубой цвет — пины портов UART и SPI.

Назначение и обозначения выводов:

USB — USB-порт, предназначенный для подключения ардуины к компьютеру через USB-кабель (нужен Mini-B USB разъем).

VIN — сюда может подается питание от внешнего источника питания на 7-12 В (блок питания покупается отдельно). Напряжение будет подаваться на стабилизатор и понижаться до 5 В. Поэтому оптимально подавать на этот пин около 9 В.

5V — через этот пин также можно запитывать плату от источника питания на 5 вольт, однако напряжение должно быть более-менее стабильным, поскольку оно подается непосредственно на микроконтроллер (стабилизатор не задействован), и поэтому высокое напряжение может убить основной микроконтроллер.

3.3V — на этом пине будет висеть напряжение 3.3 В, которое формируется от внутреннего стабилизатора платы. Этот пин нужен для подключения некоторых внешних устройств, которым для работы требуется 3.3 В — обычно это всякие ЖК-дисплеи. Однако максимальный ток вывода при этом не должны превышать 50 мА.

GND — земля (Ground Pin).

AREF — опорное напряжение для аналоговых входов. Используется по необходимости (настраивается с помощью analogReference()).

IOREF — позволяет узнать рабочее напряжение микроконтроллера. Используется редка. На китайских платах отсутствует вовсе.

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

SDA, SCL — пины интерфейса TWI/I2C.

D0. D13 — цифровые входы/выходы. На вывод D13 висит встроенный светодиод, который загорается, если на вывод D13 подан уровень HIGH.

0 (RX), 1 (TX) — выводы порта UART (последовательный порт Serial).

A1. A5 — аналоговые входы (могут использоваться и в качестве цифровых).

Внешний вид платы Arduino Nano с подписанными выводами:

RX+TX LEDs — светодиоды — моргают, когда передаются данные через последовательный порт Serial UART (пины RX и TX).

Reset Button — кнопка для перезапуска микроконтроллера;

(остальные обозначения смотри выше)

FTDI USB chip — микросхема FTDI FT323RL, которая используется для связи ардуины с компьютером через USB-кабель. Со стороны ардуины это serial-интерфейс. На компьютер этот интерфейс будет доступен в виде виртуального COM-порта (должны быть установлены драйвера для чипа FTDI — обычно входят в состав IDE Arduino).

Источник

Arduino Nano: распиновка, схема подключения и программирование

Плата Arduino Nano — аналог флагманской Uno в миниатюрном размере. На ней предусмотрено всё необходимое для удобной работы с микроконтроллером: 14 цифровых входов/выходов (6 из них могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, кварцевый резонатор на 16 МГц, разъём Mini-USB, разъём питания, разъём для внутрисхемного программирования (ICSP) и кнопка сброса.

Видеообзор

Подключение и настройка

Для запуска платформы скачайте и установите на компьютер интегрированную среду разработки Arduino IDE.

При выборе платформы выбирайте Arduino Nano.

Если всё получилось — можете смело переходить к экспериментам.

Элементы платы

Микроконтроллер ATmega328P

Сердцем платформы Arduino Nano является 8-битный микроконтроллер семейства AVR — ATmega328P с тактовой частотой 16 МГц. Контроллер предоставляет 32 КБ Flash-памяти для хранения прошивки, 2 КБ оперативной памяти SRAM и 1 КБ энергонезависимой памяти EEPROM для хранения данных.

Микросхема FT232R

Микросхема FTDI FT232R обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера. При подключении к компьютеру Nano определяется как виртуальный COM-порт.

USB-UART преобразователь общается с микроконтроллером ATmega328P по интерфейсу UART через пины 0(RX) и 1(TX) . Рекомендуем не использовать эти контакты в своём проекте.

Светодиодная индикация

Имя светодиода Назначение
RX и TX Мигают при обмене данными между Arduino Nano и ПК.
L Пользовательский светодиод подключённый к 13 пину микроконтроллера. При высоком уровне светодиод включается, при низком – выключается.
ON Наличие питания на Arduino Nano.

Разъём Mini-USB

Разъём Mini-USB предназначен для прошивки платформы с помощью компьютера.

Регулятор напряжения 5 В

Линейный понижающий регулятор напряжения LM1117MPX-5.0 с выходом 5 вольт обеспечивает питание микроконтроллера ATmega328P и другой логики платформы. Максимальный выходной ток составляет 800 мА.

ICSP-разъём для ATmega328

ICSP-разъём предназначен для загрузки прошивки в микроконтроллер ATmega328 через программатор.

Также через контакты ICSP Nano общается с платами расширения по интерфейсу SPI.

Источник

Что умеет микроконтроллер?

Микроконтроллер – чрезвычайно универсальное устройство, на его основе можно сделать бесконечно много разных электронных устройств, как полезных, так и бесполезных. Под управлением микроконтроллеров работает любая техника, в которой есть какие-то настройки, режимы или автоматизация (стиральная машина, микроволновка, мультиварка…), некоторые узлы автомобилей, станки с ЧПУ, простенькие гаджеты и так далее.

Что же делает МК настолько мощным и универсальным инструментом? Ведь фактически он умеет делать всего три вещи*:

  • Измерять напряжение на пине
  • Выдавать напряжение с пина
  • Программироваться

(*) – ещё у МК может быть собственный беспроводной интерфейс, но это уже частный случай.

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

Что такое МК?

Микроконтроллер – это сильно навороченная программируемая микросхема, самый простой аналог – компьютер, точнее системный блок (без блока питания). Да, вы не ослышались! Микроконтроллер работает сам по себе, на нём может быть запущена простенькая операционная система, может даже быть выход в Интернет, а мы можем подключать к нему устройства ввода, датчики, дисплеи и прочие железки. Чем не компьютер?

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

  • Ядро (процессор) – отвечает за работу всех остальных блоков, связывает их между собой. Сам состоит из десятка элементов (кэш, набор вычислительных блоков, и т.д.). Аналог – процессор компьютера.
  • Flash память – постоянное запоминающее устройство (ПЗУ). Хранит исполняемый код программы, также может хранить статические данные (изображения, веб-страницы, текст, таблицы с числами, и т.д.). Не очищается после сброса питания. Аналог – жёсткий диск компьютера.
  • SRAM память – оперативное запоминающее устройство (ОЗУ). Хранит данные, изменяющиеся в процессе работы программы (промежуточные результаты вычислений, значения переменных, принятые от внешних устройств данные и т.д.). Очищается после сброса питания. Аналог – оперативная память компьютера.

Также в МК могут быть и другие блоки:

  • GPIO (General Purpose Input-Output) – вход-выход общего назначения. Измеряет поданный на пин цифровой сигнал, либо выдаёт его с пина. Подробнее в этом уроке. Пины GPIO мы будем называть цифровые пины.
  • АЦП (ADC, аналогово-цифровой преобразователь) – измеряет поданное на пин напряжение, аналоговый сигнал, и передаёт в программу. Подробнее в этом уроке. Такие пины мы будем называть аналоговые пины.
  • ЦАП (DAC, цифро-аналоговый преобразователь) – выдаёт указанное напряжение с пина (аналоговый сигнал).
  • Таймер (счётчик) – считает такты работы процессора
    • Позволяет с очень высокой точностью (до наносекунд) измерять время.
    • Часто таймер используется для генерирования ШИМ сигнала на своих выводах, они помечаются как PWM. Подробнее в этом уроке. Такие пины мы будем называть ШИМ-пины.
  • Watchdog – данный блок позволяет перезагрузить МК, если он завис, а также выйти из спящего режима.
  • Интерфейсы связи – нужны для связи с внешними устройствами, т.е. для обмена данными (получение значений с датчика, отправка данных по радио и т.д.). По сути МК может воспроизвести любой интерфейс связи при помощи GPIO, но это будет довольно затратно для процессора. Поэтому некоторые интерфейсы реализованы отдельно и работают самостоятельно, обмениваясь с ядром готовыми данными. Самые популярные интерфейсы:
    • UART – связь с одним внешним устройством. По одному проводу передаёт, по второму – принимает. Может работать только на передачу или только на приём, используя один провод. Названия пинов:
      • RX (Receive) – приём.
      • TX (Transmit) – передача.
    • I2C – адресная шина, можно подключить до 128 устройств одновременно всего по двум проводам. Названия пинов:
      • SDA (Serial DAta) – линия данных.
      • SCL (Serial CLock) – линия синхронизации.
    • SPI – можно подключить сколько угодно устройств, но каждое требует логический сигнал (пин) для выбора. Требует два провода для передачи в одну сторону или три – для обмена данными (одновременный приём и передача). Самый быстрый из перечисленных интерфейсов. Названия пинов:
      • MOSI (Master Output Slave Input) – линия данных от МК к внешней микросхеме.
      • MISO (Master Input Slave Output) – линия данных от внешней микросхемы к МК.
      • SCLK (Serial CLocK) – линия синхронизации.
    • I2S – специальный интерфейс для передачи цифрового аудио сигнала.

Распиновка

Как вы наверное поняли, микроконтроллер – это микросхема с кучей ножек. У каждой ножки есть своя функция, в частности у блоков GPIO и интерфейсов связи есть свои личные ноги. Для экономии размера и уменьшения количества ног микросхемы производители практически всегда объединяют несколько функций на одной ножке. Чтобы понять, куда подключать внешнюю “железку”, нужно посмотреть на распиновку (pinout) микросхемы или платы: это картинка, на которой подписаны функции всех ножек МК или пинов платы. Вот для примера упрощённые распиновки плат Arduino Nano и Wemos Mini, на них вы найдёте уже знакомые из предыдущей главы аббревиатуры:

Почти на всех Ардуино-совместимых платах есть “отладочный” светодиод, подключенный к одному из пинов. На распиновках я отметил его как LED.

Источник

Цифровые пины

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

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

AVR (Arduino Nano)

  • Нет прямой нумерации GPIO, всё поделено на порты и пины (не указаны на распиновке), о них мы поговорим в отдельном уроке.
  • На плате выведенные GPIO подписаны как Dцифра и Aцифра и в программе мы можем обращаться к ним по этой нумерации:
    • К пинам GPIO, подписанным как D (D0-D13), можно обращаться по номеру: D2 – просто 2 .
    • К пинам GPIO, подписанным как A (A0-A5), можно обращаться по подписи на плате: A2 – A2 . Также нумерация A пинов продолжает нумерацию D пинов по порядку, то есть A0 это 14 , A1 это 15 .. A5 – 19 .

ESP8266 (Wemos Mini)

  • Имеется прямая нумерация GPIO (номера подписаны на распиновке зелёным), по этим номерам можно обращаться к пинам в программе как к цифрам: GPIO5 – просто 5 .
  • На плате пины подписаны как Dцифра. Эта нумерация не совпадает с номерами GPIO, но по ней также можно обращаться к пинам в программе: D1 это D1 , и этот же пин – просто 5 , как номер GPIO (см. распиновку выше).

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

Цифровой пин может находиться в двух состояниях, вход и выход. В режиме входа пин может считывать напряжение от 0 до напряжения питания МК, а в режиме выхода – выдавать такое же напряжение. Режим работы выбирается при помощи функции pinMode(pin, mode) , где pin это номер пина, а mode это режим:

  • INPUT – вход
  • OUTPUT – выход
  • INPUT_PULLUP – подтянутый к питанию вход

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

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

Цифровой пин в режиме выхода ( OUTPUT ) может генерировать цифровой сигнал, т.е. выдавать напряжение. Так как понятие “цифровой” обычно связано с двумя состояниями, 0 и 1, цифровой пин тоже может выдать 0 или 1, точнее сигнал низкого или высокого уровня:

  • Сигнал низкого уровня это 0V, пин подключается к GND микроконтроллера.
  • Сигнал высокого уровня подключает пин к VCC микроконтроллера, то есть к питанию.

Если вы вспомните урок по питанию платы, то поймёте, что сигнал высокого уровня на цифровом пине будет варьироваться в зависимости от того, от какого напряжения питается плата. При питании напрямую от источника 5V на пине будет 5V, при питании от USB с потерей на защитном диоде мы получим около 4.7V.

Самый главный момент касательно цифровых пинов: микроконтроллер – логическое устройство, которое создано для управления другими устройствами при помощи логических сигналов. Логическое – означает не силовое, то есть питать от пина МК нельзя ничего мощнее светодиода или слабой микросхемы:

  • Для AVR Arduino рекомендуемый ток с пина GPIO – не более 20 мА, максимальный ток – 40 мА.
  • Для esp8266 максимальный ток с пина GPIO – не более 12 мА.

Вернёмся к вопросу подачи цифрового сигнала: для этого у нас есть функция digitalWrite(pin, value) :

  • pin – пин GPIO (нумерацию смотри выше).
  • value – уровень сигнала: HIGH высокий, LOW низкий. Также можно использовать цифры 1 и 0 соответственно.

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

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

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

VCC/2 Вольт, а от VCC/2 до VCC микроконтроллер считает за наличие сигнала высокого уровня.

Для чтения уровня сигнала на пине используется функция digitalRead(pin) , где пин – номер GPIO (нумерацию смотри выше).

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

Видео


Источник

Adblock
detector