Всем привет, мы продолжаем нашу Arduino-деятельность, и сегодня рассмотрим, какие вообще есть платы Arduino, а также их различия и отличительные особенности. С точки зрения программирования для разных плат процессы будут схожими, нужно будет только выбрать свое устройство в соответствующем пункте меню. Но об этом чуть подробнее позже.
А начнем именно с разбора модификаций и комплектаций плат Arduino. И сосредоточим внимание на "классических" официальных вариантах, среди которых, особо популярна, пожалуй, Arduino UNO R3. Некоторым, наиболее распространенным платам, будут посвящены отдельные статьи, ссылки на которые я обязательно добавлю. Здесь же пробежимся по основным пунктам.
Плата Arduino UNO R3.
Сердцем платы Arduino UNO является микроконтроллер ATmega328P (документация непосредственно на него – ссылка). Кроме того, для обеспечения тактирования контроллера на плате установлен кварцевый резонатор на 16 МГц.
Для связи с внешним миром на разъем выведены 14 портов ввода-вывода, из которых 6 могут быть использованы для генерации ШИМ-сигналов. Для работы с аналоговыми сигналами также на разъем заведены еще 6 входов контроллера, которые оснащены функцией аналого-цифрового преобразователя (АЦП). Обо всем этом мы подробно поговорим, а также задействуем на практике, в рамках нашего курса.
Программирование контроллера можно осуществить двумя привычными вариантами – через USB или разъем ICSP. Для подачи питания суммарно также имеем два варианта – все через тот же USB, либо через отдельный разъем для подключения блока питания. Также здесь присутствует кнопка Reset, которая выполняет сброс микроконтроллера, например, в случае его зависания.
И самое интересное напоследок – нетрудно заметить на плате и еще один микроконтроллер, а именно ATmega16U2. Он необходим для того, чтобы осуществлять прием данных по USB и перенаправлять эти самые данные в целевой контроллер ATmega328P. Все это становится необходимым по одной простой причине - ATmega328P не имеет в своем составе аппаратного периферийного модуля USB, вот и все.
Давайте перечислим еще раз упомянутые узлы и отметим их на плате:
- ATmega328P
- USB
- разъем питания
- ICSP
- цифровые входы/выходы
- ШИМ-выходы
- аналоговые входы
- кварцевый резонатор
- кнопка сброса
- дополнительный контроллер ATmega16U2
Двигаемся дальше... И на очереди плата Arduino Leonardo.
Arduino Leonardo.
Снова начнем с центрального элемента, коим в данном случае является микроконтроллер ATmega32u4. Он в отличие от некоторых своих собратьев как раз-таки оснащен модулем USB, поэтому необходимость в дополнительном МК автоматически отпадает. И помимо экономии на втором контроллере, это дает непосредственно пользователю интересные дополнительные возможности. К примеру, можно реализовать на базе этой платы USB-мышь или клавиатуру, которая соответствующим образом будет отображаться в операционной системе компьютера 👍
Аналогично с UNO (да и с многими другими) на Leonardo установлен внешний кварцевый резонатор на все те же 16 МГц. Для подключения сторонних модулей и устройств имеем 14 цифровых (среди них 7 доступны для генерации ШИМ) плюс 6 аналоговых входов. Итого, 20 портов ввода-вывода доступных для взаимодействия с чем-либо или с кем-либо. В целом, получаем схожий набор элементов:
- ATmega32u4
- USB
- разъем питания
- ICSP
- цифровые входы/выходы
- ШИМ-выходы
- аналоговые входы
- кварцевый резонатор
- кнопка сброса
Планомерно, но от этого не менее стремительно движемся дальше, и на очереди более солидный представитель семейства - Arduino Mega 2560 R3.
Плата Arduino Mega 2560 R3.
Данная плата в свое время пришла на смену устаревшей Arduino Mega и на данный момент официально ее заменила и вытеснила. Функциональный набор ожидаемо схож с вышеописанными вариантами, отметим большее количество портов ввода-вывода: 54 цифровых, из них 15 способны генерировать ШИМ, а также 16 аналоговых входов. По разъемам все так же, дополнительный контроллер присутствует, в его роли снова ATmega16U2. Основной же контроллер – ATmega2560.
Нельзя не отметить еще и наличие четырех модулей приемопередатчика UART, в большинстве случаев этого хватает за глаза. Итак, не нарушаем нашу структуру описания, резюмируем узлы:
- ATmega2560
- USB
- разъем питания
- ICSP
- цифровые входы/выходы
- ШИМ-выходы
- аналоговые входы
- кварцевый резонатор
- кнопка сброса
- дополнительный контроллер ATmega16U2
А теперь небольшой, но от этого не менее ценный экспонат – Arduino Nano.
Arduino Nano.
Nano выпускается в различных модификациях, что в итоге дает нам целое семейство плат:
- Arduino Nano 33 IoT
- Arduino Nano 33 BLE Sense
- Arduino Nano Every
- Arduino Nano RP2040 Connect
- Arduino Nano 33 BLE
Как уже следует из названия, отличительной особенностью является ее малый размер, что в нынешний век миниатюризации не может не радовать 👍 С электрической точки зрения концепция четко та же, отдельные части перечислим чуть ниже.
Что тут отметить… Ну, во-первых, USB-UART преобразователь на микросхеме FT232RL. Микроконтроллер - ATmega328, питание подается через mini-USB. При этом отсутсвует отдельный разъем для подачи питания, поскольку, в целом, можно обойтись и без него, а место на плате он занимает относительно внушительное. Соответственно, ввиду миниатюрности девайса, от него было решено отказаться, что я вижу вполне логичным шагом. По портам дело обстоит так: 14 цифровых, включая 6 выходов ШИМ, и 8 аналоговых входов для работы с модулем АЦП.
Итого:
- ATmega328
- FT232RL
- USB
- ICSP
- цифровые входы/выходы
- ШИМ-выходы
- аналоговые входы
- кварцевый резонатор
- кнопка сброса
И финишируем еще одним интересным вариантом исполнения – платой Arduino Due.
Плата Arduino Due.
Интересен сей девайс, в первую очередь тем, что является первой платой Ардуино, построенной на базе 32-битного микроконтроллера с ядром ARM Cortex-M3. Собственно, упомянутым контроллером является - Atmel SAM3X8E. На борту платы имеются: 4 модуля UART, 2 модуля ЦАП (цифро-аналоговый преобразователь), 2 модуля I2C (они же TWI), SPI, а USB может работать в режиме OTG.
Обратите внимание, что данный МК питается от 3.3В, а не от 5В, как другие платы Arduino. При этом порты не являются 5V-tolerant, то есть совместимыми с уровнями 5В. А из этого уже вытекает тот неприятный факт, что при подаче на порт ввода-вывода напряжения выше 3.3В, имеются отличные шансы вывести его из строя )
По классике, некоторые особо примечательные узлы:
- Atmel SAM3X8E
- ATmega16U2
- USB
- ICSP
- цифровые входы/выходы
- ШИМ-выходы
- аналоговые входы
- CAN
- ЦАП
- I2C
- UART
- кнопка сброса
Давайте, пожалуй, на этом остановимся, полный список официальных плат можно найти на официальном же сайте проекта Arduino, а пока всем до скорых встреч в следующих статьях!