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

Компиляция Optiboot для работы на частотах 8МГц и 1МГц

Исходные файлы Optiboot входят в состав IDE Ардуино и находятся в каталоге Arduino_dir\hardware\arduino\avr\bootloaders\optiboot\. Там же расположен батник omake.bat для сборки загрузчика. Вот только для его сборки в составе IDE Ардуино (начиная с версий 1.5.x) не хватает утилиты make.exe. Наиболее простое решение — это скопировать ее из старой версии. Для этого:

  1. скачайте IDE версии 1.0.6;
  2. распакуйте архив и перейдите каталог \arduino-1.0.6\hardware\;
  3. скопируйте или переместите каталог tools в Arduino_dir\hardware\arduino\ вашей рабочей IDE;
  4. IDE 1.0.6 больше не нужна, ее можно удалить.

Перейдите в каталог optiboot и откройте файл Makefile в Блокноте. В нем нужно найти секцию для atmega328:

Между ней и началом следующей секции для Sanguino вставляем код:

atmega328_8: TARGET = atmega328

atmega328_8: MCU_TARGET = atmega328p

atmega328_8: CFLAGS += ‘-DLED_START_FLASHES=3’ ‘-DBAUD_RATE=57600’

atmega328_8: AVR_FREQ = 8000000L

atmega328_8: LDSECTIONS  = -Wl,—section-start=.text=0x7e00 -Wl,—section-start=.version=0x7ffe

atmega328_8: $(PROGRAM)_atmega328_8.hex

atmega328_8: $(PROGRAM)_atmega328_8.lst

atmega328_1: TARGET = atmega328

atmega328_1: MCU_TARGET = atmega328p

atmega328_1: CFLAGS += ‘-DLED_START_FLASHES=3’ ‘-DBAUD_RATE=4800’

atmega328_1: AVR_FREQ = 1000000L

atmega328_1: LDSECTIONS  = -Wl,—section-start=.text=0x7e00 -Wl,—section-start=.version=0x7ffe

atmega328_1: $(PROGRAM)_atmega328_1.hex

atmega328_1: $(PROGRAM)_atmega328_1.lst

Это копии секции atmega328. От исходной они отличаются частотой микроконтроллера и скоростью загрузки скетчей. Эти значения соответствуют указанным нами ранее в файле boards.txt. Думаю, можно указать и большую скорость загрузки, но я не экспериментировал с этим. Однозначно, при слишком высокой скорости ошибки будут неизбежны, поэтому с уменьшением частоты микроконтроллера я уменьшаю и скорость загрузки.

To install into the Arduino software

You do NOT need to «install» Optiboot if you are trying to update an installed platform that already uses some form of Optiboot. In fact, you should almost certainly NOT install Optiboot using the board manager.
The Optiboot GitHub repository these days is mostly useful as a source-code repository, for anyone who needs to make a highly customized version for some reason. Or an improvement to Optiboot itself.

Most end users should find a supported «Arduino Core» that includes Optiboot for their desired target, and install that. Many such cores are provided by the hardware vendor, and they’ll include Board definitions, Variant files, and Arduino core code needed to support the target as well as one or more Optiboot .hex files that should work.

There are also some major repositories of «generic» versions of cores for various targets, including:

  • MegaCore by MCUdude Supports large AVRs like ATmega128, ATmega640, ATmega1280, ATmega1281, ATmega2560 and ATmega2561.
  • MightyCore by MCUdude Supports most 40pin AVRs including ATmega1284, ATmega644, ATmega324, ATmega32, and ATmega8535.
  • MiniCore by MCUdude Supports most 28pin ATmega AVRs, including the CPUs used by Uno/etc as well as the new CPUs like the ATmega328PB.
  • MajorCore by MCUdude Supports a couple of relatively obsolete large AVRs, like ATmega8515 and ATmega162.
  • ATTinyCore by Spence Konde Supports many ATtiny AVRs, including ATtiny85, ATtiny1634, ATtiny84, and ATtiny841.
  • MegaCoreX by MCUdude Supports the Mega-0 Series AVRs (notably the ATmega480x and ATmega320x) (Using Optiboot_X.)
  • megaTinyCore by Spence Konde Supports many of the Tiny-0 and Tiny-1 series AVR chips (using Optiboot_X.)

If you need a new Optiboot feature not included in a pre-packaged core, the recommended procedure is to download or fork the source code, manually compile the version you need, and copy the .hex file to the existing board directory (after renaming the old .hex file, in case you need it back.)

Nevertheless, there is an automatically installable Board Manager package that includes the .hex files for Optiboot on several popular Arduino boards (a very small subset of the possible targets.). Using the Optiboot «install» procedure does not install any cores or variants, so it is only useful for CPUs that are already supported by the standard Arduino core.

The following instructions are based on using the Arduino «Board Manager», present in IDE versions 1.6.5 and later.

  1. Find the desired Optiboot release on the Optiboot Release page.
  2. Use the «Copy link address» feature of your browser to copy the URL of the associated .json file.
  3. Paste this URL into the «Additional Boards Manager URLs» field in the Arduino IDE «Preferences» pane. (Separate it from other URLs that might be present with a comma or click the icon to the right of the field to insert it on a new line.)
  4. After closing the Preferences window, the Tools/Boards/Boards Manager menu should include an entry for that version of Optiboot. Select that entry and click the Install button.

For additional installation information, see the Optiboot AddingOptibootChipsToIde Wiki page

Версии

  • 1.0.0
  • 1.1.0
    • Восстановлена совместимость с некоторыми библиотеками (макросы pinToMask)
    • Добавлен выбор частоты в меню (поддержка 16/8 МГц плат с корректнным временем и портом)
  • 1.2.0
  • 1.3.0
  • 1.4.0
  • 1.5.0
    • Облегчён analogRead
    • Чуть исправлена инициализация watchdog
  • 1.6.0
    • Пофикшен INPUT_PULLUP
    • Добавлена расширенная подсветка синтаксиса (регистры и байты)
    • Убрана поддержка ATmega168
    • Изменена логика выбора платы
    • Добавлена поддержка тактирования от внутреннего генератора:
      • 8 МГц
      • 1 МГц (только для without bootloader)
      • 128 кГц (только для without bootloader)
  • 1.7.0
    • Облегчена сборка
    • Добавлено корректное время (millis/delay) для частоты 128 кГц
    • Функции millis() и micros() вырезаны при отключении таймера 0 (через меню выбора платы)
    • Функции delay() и delayMicroseconds() работают при отключении таймера 0 (через меню выбора платы)
    • Вывод в порт корректно работает при отключении таймера 0 (через меню выбора платы)
    • Ускорен uart (обычный буфер заменён на циклический) — чтение быстрее в 2 раза!
    • Добавлена настройка BOD (через меню выбора платы)
    • Добавлен Clock Out — вывод тактирования на пин D8 (через меню выбора платы)
    • Добавлена настройка Save EEPROM (через меню выбора платы)
    • Добавлена настройка Initialization отключить инициализацию периферии при старте скетча (через меню выбора платы)
    • Огромное спасибо Pasha13666 за помощь в доработке!
  • 1.7.1
    • Поправлены баги с I/O
    • Улучшен uart
  • 1.7.2
  • 1.7.3
    • Сокращён аналогРид
    • Убран расширенный ШИМ
    • Убран сброс WDT (не работал)
    • Пофикшены различные баги
    • Убран lightInit
    • Добавлен загрузчик optiBoot v8
  • 1.7.4
    • Поправлены баги с Serial
    • И не только с Serial
    • Оптимизированы прерывания
  • 1.8
    • Поправлена критическая ошибка с таймером
    • Исправлена куча багов
    • Дописан keywords
    • Всё протестировано на всех загрузчиках (спасибо Egor!)
  • 1.8.1
    • Пофикшен вывод float в uart
    • В uart добавлен вывод с базисом числа
  • 1.8.2
    • uart обёрнут в класс
    • Добавлена возможность заменить вызовы Serial на uart (через меню выбора платы)
  • 1.8.3
  • 1.8.4
    • Убраны дублирующиеся программаторы
    • Ещё чуть ускорен uart
  • 1.9.0
  • 1.10.0
    • Расширена подсветка синтаксиса
    • Пофикшен tone
    • Пофикшен pulseIn (но выдаёт разрешение 4 мкс)
    • Добавлен avr-gcc v8 под Win32 и Linux
    • Ускорен IO
  • 1.10.1
  • 1.10.2
    • Пара багфиксов с IO
    • Вернули заголовочные для WiFi
  • 2.0
    • Убраны все дополнительные функции кроме analogPrescaler и digitalToggle. Все «приколы» переезжают в отдельную либу GyverHacks
    • Почищены и отформатированы файлы
    • Исправлен конфликт с IP
    • Подкорректировано меню платы
    • Исправлена уязвимость в pinMode
    • Cнижен вес
    • Повышена скорость некоторых функций
    • Исправлены ошибки в пустых загрузчиках
  • 2.0.1
    • Исправлена ошибка с delayMicroseconds
    • Исправлено предупреждение файла у «без загрузчика»
  • 2.0.2
    • Ускорен digitalToggle
    • Обновлён uart
    • Чуть ускорен analogRead
    • Добавлена поддержка клока 20 МГц
  • 2.0.3

5.1 Ошибка компиляции

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

“Какой-то текст”, not declared, no such file…

В некоторых случаях ошибка возникает при наличии кириллицы (русских букв) в пути к папке со скетчем. Решение: завести для скетчей отдельную папочку в корне диска с английским названием.

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

При использовании каких-то особых библиотек, методов или функций, ошибкой может стать неправильно выбранная плата в “Инструменты/плата“. Пример: прошивки с библиотекой Mouse.h или Keyboard.h компилируются только для Leonardo и Micro.

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

Иногда причиной ошибки бывает слишком старая, или слишком новая версия Arduino IDE, читайте комментарии разработчика скетча. В большинстве случаев версия IDE ниже 1.8 будет выдавать ошибки, особенно в программах для ESP8266. Обновляйтесь!!

Также не рекомендуется ставить Arduino IDE из магазина Windows. Ставьте обычную как в инструкции выше.

Ошибка недостаточно свободного места возникает по вполне понятным причинам. Если в проекте используется плата Nano на процессоре 328p, а вы сэкономили три рубля и купили на 168 процессоре – скупой платит дважды. Оптимизация: статическая память – память, занимаемая кодом (циклы, функции). Динамическая память занята переменными.

Программная эмуляция

Платформа Arduino Nano Every с микроконтроллером ATmega4809 поддерживает программную эмуляцию для полной совместимости с платой предшественника Arduino Nano с микроконтроллером ATmega328.

  • Включение совместимости:
    Инструменты
    Registaers Emulation
    ATMEGA328

  • Отключение совместимости:
    Инструменты
    Registaers Emulation
    None (ATMEGA4809)

Эмуляция будет полезна, только если одновременно выполнены следующие пункты:

  1. Ваш проект собран на базовой плате Arduino Nano.
  2. Вы решили перейти с платы Arduino Nano на плату Arduino Nano Every.
  3. В коде прошивки использованы не базовые функции языка C++, а именно регистры микроконтроллера ATmega328.
  4. Вам лень менять код.

Во всех остальных случаях рекомендуем не включать эмуляцию.

Прошивка кода загрузчика

Теперь подключите шесть проводов от схемы прошивки загрузчика к Arduino Uno точно так, как показано на схеме и фотографии, приведенной выше в разделе «Сборка схемы прошивки загрузчика». После двойной проверки всех соединений вы готовы записать следующий код загрузчика в AT328P-PU в схеме прошивки загрузчика.

  1. Выберите » Burn Bootloader » (прошить загрузчик) как действие для Arduino Uno; процесс должен начаться сразу после того, как вы кликните » Burn Bootloader «. Прошивка загрузчика в AT328P-PU
  2. Когда вы увидите сообщение » Done burning bootloader » (прошивка загрузчика завершена), процесс будет выполнен, и AT328P-PU сможет понимать и отвечать на инструкции от Arduino IDE. Загрузчик загружен в AT328P-PU

5.5 Нехватка памяти

Иногда прошивка успешно компилируется/загружается, но в логе компилятора написано о недостатке места

Запомните: если компиляция/загрузка завершена, значит всё в порядке и скетч будет работать. Ведь написано, что “завершена”! Память устройства можно добивать до 99%, ничего страшного не случится. Это флэш память и во время работы она не изменяется. А вот динамическую память желательно забивать не более 85%, иначе реально могут быть непонятные глюки в работе, так как память постоянно “бурлит” во время работы. НО. Это зависит от скетча и в первую очередь от количества локальных переменных. Можно написать такой код, который будет стабильно работать при 99% занятой SRAM памяти. Так что ещё раз: это всего лишь предупреждение, а не ошибка.

Простейшая схема программирования (и проверки работы)

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

Обозначение Описание
R2 Резистор 470 Ом, 0,25 Вт
C4 Конденсатор, керамический, 0,1 мкФ, 50 В
LED1 Светодиод, T1 3/4, желтый
нет Конвертер USB–TTL с выводом DTR

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

  1. Удалите все шесть перемычек между Arduino Uno и схемой прошивки программатора.
  2. Подключите R2 и LED1 между землей и выводом 19 микроконтроллера AT328P-PU.
  3. Подключите выводы 1, 3, 4 и 5 от USB-TTL конвертера к AT328P-PU, как показано ниже. Вывод 2 не используется.
  4. Подключите вывод 6 через конденсатор C4 (0,1 мкФ) к выводу 1 AT328P-PU. (C4 обеспечивает, чтобы сигнал DTR от преобразователя USB-TTL выдавал кратковременный сигнал сброса, а не тот сигнал, который остается на низком логическом уровне в течение длительного периода времени.)

Простейшая схема программирования AT328P-PU Макет простейшей схемы программирования AT328P-PU

Прошивка arduino pro mini

Прошивка arduino pro mini

Миниатюрные размеры платы не позволяют прошить ее без внешней помощи. Есть несколько способов заливки скетча в микроконтроллер:

  • Через адаптер USB в TTL;
  • Через Ардуино Уно;
  • Через SPI интерфейс с помощью любой платы ардуино с разъемом для подключения к компьютеру. 

Самым простым методом является первый.

Прошивка через адаптер USB в TTL

В продаже можно найти специальный адаптер – UART переходник. Видов таких переходников много, стоимость каждого изделия невысокая. Советуется приобретать переходники с контактами RST или DTR, они упрощают процесс прошивки. 

Для прошивки нужно подключить адаптер в Ардуино: нужно соединить земли с одного и другого устройства, Vcc – на +5В или +3,3 В (в зависимости от модели), RX – TX, TX – RX. Затем конструкцию нужно подключить к компьютеру, установить драйвер и начать прошивку. Компьютер определит, к какому порту подключена плата. Драйвер можно скачать с официального сайта. Скачанный архив нужно распаковать и установить.

Затем нужно запустить среду разработки Adruino IDE, выбрать нужную плату и номер порта и загрузить микропрограмму. Это делается следующим образом:

  • Нажать «Загрузить»;
  • Затем начнется компиляция  – появится надпись «Компиляция скетча»;

После появление надписи «Загружаем» нужно нажать на плате кнопку Reset (в переходниках с RST или DTR нажимать кнопку не нужно). 

Важно! Нажатие на Reset должно быть кратковременным. 

Скетч будет загружен в микроконтроллер. Об успешном окончании процедуры можно понять по мигающему светодиоду. 

Прошивка через Ардуино Уно

Для прошивки потребуется классическая плата Ардуино Уно в DIP корпусе. На ней должен быть специальный разъем, из которого нужно вытащить аккуратно микроконтроллер

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

Проводами нужно подключить arduino pro mini к разъему. Как подключить контакты – RX-RX, TX-TX, GND-GND, 5V-VCC, RST-RST. 

После подключения можно начать стандартную загрузку скетча через Arduino IDE.

Прошивка через SPI интерфейс

Этот способ является самым неудобным и трудоемким. Прошивание платы производится в 2 этапа:

Прошивка микроконтроллера Ардуино Уно как ISP программатора; 

Настройка среды разработки и загрузка кода в Arduino Pro Mini.  

Алгоритм проведения первого этапа:

  • Запуск среды разработки Arduino IDE;
  • Открытие «Файл» – «Примеры» – «11. ArduinoISP» – «ArduinoISP»;
  • Далее «Инструменты» – «Плата» – «Ардуино уно»;
  • «Инструменты» – «Порт», и выбирается нужный номер COM порта;
  • Далее нужно произвести компиляцию и загрузить код в Ардуино Уно.

Затем обе платы нужно соединить проводниками по приведенной схеме: 5V – VCC, GND – GND, MOSI (11) – MOSI (11), MISO (12) – MISO (12), SCK (13) – SCK (13).

Теперь нужно настроить Arduino IDE для Arduino Pro Mini. Это делается следующим образом:

«Инструменты» – «Плата» – выбор нужной платы Arduino Pro Mini; 

  • В том же меню выбирается «Процессор» – выбор соответствующего процессора с нужной тактовой частотой;
  • Затем нужно установить порт, к которому подключена плата;
  • «Инструменты» – «Программатор» – Arduino as ISP;
  • Затем нужно загрузить скетч через программатор.

Важно отметить, что загрузка кода должна происходить через специальное меню «загрузить через программатор». Здесь можно запутаться, потому такой способ и неудобен

Загрузка обычным способом приведет  тому, что код зальется в Ардуино Уно. 

После проведенной загрузки перепрошить микроконтроллер через переходник больше не получится. Придется заливать новый bootloader через «записать загрузчик». 

Если при каком-либо виде загрузки прошивки возникают проблемы, нужно проверить подключение платы. 

Начальная прошивка ESP8266 с WiFi

Сегодня на базе чипа ESP8266 выпускается большое количество модулей, о них мы писали в отдельной статье, посвященной этому микроконтроллеру. Заводские ESP8266 идут со стандартной прошивкой от компании Espressif. Этот софт позволяет работать с модулем вай-фай как с обычным модемом, то есть посредством AT команд, которые подаются на последовательный порт.  Таким образом, вы можете использовать модули «из коробки» как внешнее WiFi устройство (в зависимости от режима работы это может быть и точка доступа, и ретранслятор).

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

Как запрограммировать Arduino Pro Mini с помощью программатора

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

И тогда Arduino Pro Mini – отличное для этого решение! За счёт того, что у этой платы отсутствует встроенный USB-разъём, она в полтора раза меньше Arduino Nano. Но для того, чтобы её запрограммировать, придётся приобрести дополнительный – внешний – USB-программатор.

О том, как «залить» написанную программу в память микроконтроллера и заставить Arduino Pro Mini работать, и пойдёт речь в этой статье.

Нам понадобится:

1Программатор для Arduino

  • Разъём типа USB-A используется, понятно, для подключения программатора к компьютеру.
  • ISP-соединитель нужен для подключения к программируемой плате.
  • Джампер JP1 контролирует напряжение на выводе VCC ISP-коннектора. Оно может быть 3,3 В или 5 В. Если целевое программируемое устройство имеет собственный источник питания, нужно убрать перемычку.
  • Джампер JP2 используется для перепрошивки самого программатора; в данной статье этот вопрос не рассматривается.
  • Перемычка JP3 нужна, если тактовая частота целевого устройства ниже 1,5 МГц.
  • Светодиоды показывают: G – питание подаётся на программатор, R – программатор соединён с целевым устройством.

USBasp-программатор и назначение его частей

2Установка драйвера для программатора

Подключим программатор к USB-порту компьютера. Скорее всего, через какое-то небольшое время операционная система сообщит, что ей не удалось найти драйвер для данного устройства.

Сообщение об отсутствии драйвера для USBasp программатора

В этом случае скачаем драйвер для программатора с официального сайта. Распакуем архив и установим драйвер стандартным способом. В диспетчере устройств должен появиться программатор USBasp. Теперь программатор готов к работе. Отключаем его от компьютера.

Установка драйвера для USBasp программатора

Если вы испытываете трудности с установкой драйвера для USBasp программатора, то вам поможет статья «Как установить драйвер для программатора USBasp в Windows 8 и Windows 10».

3Схема подключенияArduino к программатору

Соединяем ISP-разъём программатора с выводами на Arduino Pro Mini согласно приведённой схеме.

Схема подключения Arduino Pro Mini к USBasp программатору

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

Плата Arduino Pro Mini подключена к USBasp программатору

Если вы планируете часто использовать платы Arduino Pro или Pro Mini в своей работе, то удобно будет спаять специальный переходник для быстрого подключения платы Arduino к программатору. На фото представлен мой вариант такого переходника.

Переходник для быстрого подключения платы Arduino Pro Mini к программатору USBasp

3Настройка Arduino IDEдля работы с программатором

Открываем среду разработки Arduino IDE. Выбираем нужную плату через меню: Инструменты Плата Arduino Pro or Pro Mini (Tools Board Arduino Pro or Pro Mini).

Нужно также выбрать тип микроконтроллера, который задаётся через меню Инструменты Процессор. У меня это ATmega 168 (5V, 16 MHz), у вас может быть другой. Это обычно написано на самом корпусе микроконтроллера и хорошо видно под увеличительным стеклом.

Настройка Arduino IDE для работы с программатором

Выберем тип программатора: Инструменты Программатор USBasp (Tools Programmer USBasp).

Укажем тип программатора в Arduino IDE

4Загрузка скетча в Arduinoс помощью программатора USBasp

Откроем скетч, который хотим загрузить в память микроконтроллера. Для примера пусть это будет мигание светодиодом: Файл Образцы 01. Basics Blink.

Подключаем программатор с подключённым к нему Arduino Pro Mini к компьютеру. Для того чтобы загрузить скетч в Ардуино с помощью программатора, можно поступить несколькими способами.

  1. Через меню Файл Загрузить через программатор.
  2. Используя сочетание клавиш Ctrl + Shift + U.
  3. Зажав клавишу Shift, нажать на кнопку со стрелкой вправо , которая обычно используется для загрузки скетча в память Ардуино стандартным способом.

Загрузка скетча в Arduino Pro Mini с помощью программатора USBasp

Это абсолютно эквивалентные способы, выбирайте самый удобный для себя. Это всё, программа «залита» в память микроконтроллера.

Обратите внимание

Если Arduino IDE выдаст предупреждение: warning: cannot set sck period. please check for usbasp firmware update. Не паникуйте, скетч всё равно записался в память микроконтроллера и будет работать.

Step 1: Get a Clone

It is very easy to find a clone of any board on the internet. Or you can at worst make yourself one…

They are extremely cheap, I have seen pinless nano boards as low as $5 online. You just have to do some work on your end, which is a very fair give and take if you ask me.

I don’t want to advertise any names here, if you just search the board that you want with the word clone next to it, you will find some. Mine is called Funduino Nano, which is an open source company apparently just making amazing products at real fair prices..

Look how small an arduino nano is, it’s the size of my pinky finger. This will help me tremendously in my new projects, huge improvements on size!

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

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

На шилде расположены дополнительные разъемы питания и земли, разъемы для подключения внешнего источника напряжения, светодиод и кнопка перезагрузки.

Память ATmega обладает 16 килобайтами флэш-памяти для хранения кода программы из которых 2 килобайта используется загрузчиком ; ATmega обладает 32 килобайтами из которых 2 килобайта также используется загрузчиком. Можно подавать ток на него и все это будет работать только при условии, что напряжение подаваемого тока строго равно пяти вольтам!

Эти выводы могут быть сконфигурированы для вызова прерывания по фронту или по спаду импульса или по изменению уровня на выводе. Конструктор Arduino создан для любителей электроники и робототехники начального уровня, чтобы помочь им обойти сложности низкоуровнего программирования микроконтроллеров, где требуются знания инженера-профи и опыт. Все выводы, цифровые и аналоговые, могут работать в диапазоне 0 … 5 В. Входы и выходы Каждый из 20 , на схеме аrduino nano распиновка помещены в сиреневые параллелограммы, на той же схеме в серых параллелограммах указаны выводы микроконтроллера цифровых выводов Arduino Nano может работать в качестве входа или выхода.

Распиновка Arduino Nano v 3.0

Например, остался без внимания аналоговый компаратор. Обычно используется для добавления кнопки сброса на платы расширения, закрывающей доступ к кнопке сброса на самой плате Arduino. Все выводы могут быть программно подключены к источнику питания микроконтроллера 5 В через подтягивающие резисторы сопротивлением кОм.

Данные выводы могут быть сконфигурированы в качестве источников прерываний, возникающих при различных условиях: при низком уровне сигнала, по фронту, по спаду или при изменении сигнала. Экран подключен. Для проверки работоспособности откроем приложение для Arduino. Для работы используйте библиотеку Wire. На первых двух светодиод загорается, когда уровень сигнала низкий, и показывает, что сигнал TX или RX активен.

Если все прошло нормально, вы увидите сообщение «загрузка успешно завершена». Вместе с тем активное распространение Ардуино-плат для освоения разработки и проектирования устройств на микроконтроллерных системах породило новый виток в вопросе качества и эргономики.

Пришлось это сделать вручную. Arduino Nano 2.
Уроки Ардуино #0 — что такое Arduino, куда подключаются датчики и как питать Ардуино

Описание пинов и распиновка платы Arduino Nano

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

Каждый из 14 цифровых контактов Nano может быть настроен как вход или выход с помощью функций pinMode (), digitalWrite () и digitalRead (). Контакты работают при 5 В. Каждый вывод имеет подтягивающий резистор 20-50 кОм и может выдерживать до 40 мА. Некоторые пины имеют специальные функции:

  • Последовательная шина: 0 (RX) и 1 (TX). Контакты используются для приема (RX) и передачи (TX) данных TTL. Эти контакты подключаются к соответствующим контактам последовательного чипа FTDI USB to TTL.
  • Внешнее прерывание: 2 и 3. Эти выводы могут быть настроены на запуск прерывания по наименьшему значению, по нарастающему или спадающему фронту или при изменении значения. Подробнее см. Функцию attachInterrupt().
  • ШИМ: 3, 5, 6, 9, 10 и 11. Любой вывод обеспечивает 8-битный ШИМ с помощью функции analogWrite().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Эти контакты используются для связи SPI, которая, хотя и поддерживается оборудованием, не включена в язык Arduino.
  • Светодиод: 13. Встроенный светодиод, подключенный к цифровому выводу 13. Если вывод имеет высокий потенциал, светодиод горит.

Платформа Nano имеет 8 аналоговых входов, каждый с разрешением 10 бит (т. Е. Может принимать 1024 различных значения). Стандартно контакты имеют диапазон до 5 В относительно земли, однако верхний предел можно изменить с помощью функции analogReference (). Некоторые пины имеют дополнительные функции:

I2C: A4 (SDA) и A5 (SCL). Связь I2C (TWI) осуществляется через контакты. Для создания используется библиотека Wire.

Дополнительная пара штифтов платформы:

  • AREF. Опорное напряжение для аналоговых входов. Используется с analogReference().
  • Сброс настроек. Низкий уровень сигнала на выводе перезапускает микроконтроллер. Обычно он используется для подключения кнопки сброса на плате расширения, которая предотвращает доступ к кнопке на самой плате Arduino.

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

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

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

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

– синий цвет – контакты портов UART и SPI.

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

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

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

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

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

GND – Земля (заземляющий контакт).

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

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

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

SDA, SCL – вывод интерфейса TWI / I2C.

D0… D13 – цифровые входы / выходы. На контакте D13 висит встроенный светодиод, который загорается, если на контакте D13 ВЫСОКИЙ.

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

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

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

Здесь:

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

Кнопка сброса – кнопка перезапуска микроконтроллера;

(другие номиналы см выше)

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

Будет интересно Самые популярные проекты на Arduino

Схематично это выглядит так:

Номер пина, название, тип и описание пинов: