Плата Arduino Mini – это маленькая микроконтроллерная плата, которая сначала базировалась на ATmega168, но потом получила ATmega328 (даташит). Она предназначена для использования на макетных платах и в проектах, требующих компактности. У нее 14 цифровых I/O контактов (из которых 6 используются для выдачи ШИМ), 8 входных аналоговых контактов и кварцевый генератор на 16 МГц. Плату Arduino Mini можно программировать при помощи Arduino USB 2 Serial Micro или другого адаптера, умеющего конвертировать USB (или RS232) в TTL.
Новая версия Mini (Rev5), оснащенная ATmega328, выполнена несколько иначе, чем предыдущие – теперь все компоненты находятся на верхней части платы. Кроме того, у нее теперь есть кнопка сброса. Новая версия имеет ту же конфигурацию контактов, что Rev4.
Внимание!
Не питайте Arduino Mini более чем 9 вольтами, а также не допускайте того, чтобы питание было подключено с неправильной полярностью – это, скорее всего, убьет Arduino Mini.
Вы можете обойти загрузчик и программировать ATmega328 при помощи ICSP-гребешка. О том, как правильно подсоединить ICSP-гребешок к Mini, читайте тут. О том, как использовать программатор для загрузки скетчей, читайте тут.
Входные и выходные контакты
Каждый из 14 цифровых контактов Mini можно использовать и как входной, и как выходной контакт. Они работают на 5 вольтах. Каждый контакт может получать/отдавать не более 40 миллиампер и имеет встроенный подтягивающий резистор (по умолчанию отключен) на 20-50 кОм. Контакты 3, 5, 6, 9, 10 и 11 могут выдавать ШИМ; более подробно об этом читайте в статье о функции analogWrite(). Если к 0-ому и 1-ому контактам будет подключено что-то еще, кроме адаптера, конвертирующего USB в TTL, это будет мешать USB-коммуникации, препятствуя загрузке нового кода и другой коммуникации с компьютером.
Плата Arduino Mini имеет 8 входных аналоговых контактов, каждый из которых поддерживает 10-битное разрешение (т.е. может работать с 1024 разными значениями). Входные аналоговые контакты с 0 по 3 выведены на цифровые контакты, а контакты с 4 по 7 припаяны к специальным отверстиям. По умолчанию вольтовый диапазон на входных аналоговых контактах составляет от «земли» до 5 вольт, однако верхнюю границу этого диапазона можно поменять при помощи контакта AREF и фрагмента низкоуровневого кода.
Смотрите также распиновку между контактами Arduino и портами Atmega168/Atmega328.
Распиновка
Примечание
При переходе с Rev3 на Rev4 распиновка Arduino Mini поменялась. Пожалуйста, убедитесь, что используете правильный график.
«Распиновка на Arduino Mini Rev3. Старые версии совместимы друг с другом, однако вверху нет гребешка IO7.»«Распиновка на Arduino Mini Rev4 и Rev5. Обратите внимание, что контакт для «земли» слева переехал вниз на один контакт».
Документация
Плата Arduino Mini – это оборудование, сделанное по принципу «open-source». Вы можете создать на ее основе собственную плату, используя файлы ниже:
Calibration - Определение максимума и минимума для данных от аналогового датчика.
Fading - Использование выходного аналогового контакта (ШИМ) для затухания/загорания светодиода.
Smoothing - Сглаживание серии данных, считанных с входного аналогового контакта.
Связь
ReadASCIIString - Анализ строки, состоящей из разделенных запятыми int-значений, и их последующее использование для управления RGB-светодиодом.
ASCII Table - Демонстрирует продвинутые способы вывода данных на Serial Monitor.
Dimmer - Изменение яркости светодиода при помощи движения мышкой.
Graph - Отправка данных на компьютер и их графическое отображение в скетче Processing.
Physical Pixel - Включение/выключение светодиода путем отправки данных со скетча Processing (или Max/MSP) на Arduino.
Virtual Color Mixer - Отправка с Arduino на компьютер сразу нескольких значений, а затем их считывание при помощи скетча для Processing или Max/MSP.
Serial Call Response - Многобайтная передача данных при помощи метода вызова и ответа (метода «рукопожатия»).
Serial Call Response ASCII - Многобайтная передача данных при помощи метода вызова и ответа (метода «рукопожатия»). До передачи данные зашифровываются в ASCII.
SerialEvent - Демонстрирует использование SerialEvent().
MIDI - Передача через последовательный порт сообщений с MIDI-нотами.
MultiSerialMega - Использование двух последовательных портов на Arduino Mega.
Управляющие структуры
If Statement - Как использовать оператор «if» для создания условий, опирающихся на входные аналоговые данные, при которых светодиод будет либо включаться, либо оставаться выключенным.
For Loop - Управление несколькими светодиодами, чтобы они мигали, как LED-полоска у автомобиля Китт из сериала «Рыцарь дорог».
Array - Вариация примера «For Loop», но с использованием массива.
While Loop - Использование цикла while() для калибровки датчика. Калибровка включается при нажатии на кнопку.
Switch Case - Как совершать какие-либо действия в зависимости от значений, полученных от датчика. Эквивалент примера «If Statement», но если бы условий было не два, а четыре. Этот пример демонстрирует, как дробить диапазон данных от датчика на четыре «суб-диапазона», а затем в зависимости от полученных результатов совершать одно из четырех действий.
Switch Case 2 - Второй пример, демонстрирующий использование оператора switch. Показывает, как совершать различные действия в зависимости от определенных символов, полученных через последовательный порт.
Датчики
ADXL3xx - Считывание данных с акселерометра ADXL3xx.
Knock - Определение стука при помощи пьезоэлемента.
Memsic2125 - Считывание данных с 2-осевого акселерометра Memsic2125.
Ping - Определение объектов при помощи ультразвукового дальномера.