Arduino Pro Mini предназначен для
полустационарного монтажа в
различное оборудование или установки.
Плата специально поставляется
без впаянных разъемов, что позволяет
пользователю впаивать провода
или использовать необходимые
типы разъемов по своему усмотрению.
По расположению выводов Arduino Mini Pro
совместим Arduino Mini.
Существует две версии Pro Mini:
одна работает от 3.3В при частоте 8 МГц,
другая - от 5В при 16 МГц.
Arduino Pro Mini разработан и изготовлен фирмой
SparkFun Electronics.
Схема и исходный
проект
Файлы EAGLE: arduino-pro-mini-reference-design.zip
Схема: Arduino-Pro-Mini-schematic.pdf
Характеристики
Микроконтроллер |
ATmega168 или ATmega328 |
Рабочее напряжение |
3.3В или 5В (в зависимости
от модели) |
Напряжение питания |
3.35-12В (для модели 3.3В) или
5 - 12В (для модели 5В) |
Цифровые входы/выходы |
14 (из них 6 могут использоваться
в качестве ШИМ-выходов) |
Аналоговые входы |
8 |
Максимальный ток одного вывода
|
40 мА |
Flash-память |
16 КБ (из которых 2 КБ используются
загрузчиком) |
SRAM |
1 КБ |
EEPROM |
512 байт |
Тактовая частота |
8 МГц (для модели 3.3В) или
16 МГц (в модели 5В) |
Питание
Arduino Pro Mini может быть запитан
от различных источников:
через переходник FTDI, подсоединенный к шестиконтактному разъему;
от стабилизированного источника
питания с напряжением 3.3В или 5В (в зависимости от модели), подключенного к выводу Vcc.
Кроме того, на плате есть встроенный
стабилизатор напряжения, благодаря которому
допускается подавать на плату напряжение
питания величиной до 12В. Если для питания
платы используется нестабилизированный
источник питания, убедитесь, что он подсоединен
к выводу "RAW", а не VCC.
Ниже перечислены выводы питания,
расположенные на плате:
RAW. Для питания платы от нестабилизированного
источника напряжения.
VСС. Стабилизированное напряжение
3.3В или 5В.
Память
Объем флеш-памяти программ
микроконтроллера ATmega328 составляет 32 КБ
(из которых 2 КБ используются загрузчиком).
Микроконтроллер также имеет 1 КБ памяти
SRAM и 512 байт EEPROM (из которой можно считывать
или записывать информацию с помощью библиотеки EEPROM).
Входы и выходы
С использованием функций pinMode(), digitalWrite() и digitalRead() каждый из 14 цифровых выводов
Pro Mini может работать в качестве входа
или выхода. В зависимости от модели, уровень
напряжения на выводах ограничен 3.3В или
5В. Максимальный ток, который может отдавать
или потреблять один вывод, составляет
40 мА. Все выводы сопряжены с внутренними
подтягивающими резисторами (по умолчанию
отключенными) номиналом 20-50 кОм. Помимо
этого, некоторые выводы Ардуино могут
выполнять дополнительные функции:
Последовательный
интерфейс: выводы 0 (RX) и 1 (TX). Используются для получения
(RX) и передачи (TX) данных по последовательному
интерфейсу. Эти выводы соединены с линиями
TX-0 и RX-1 шестиконтактного разъема.
Внешние прерывания:
выводы 2 и 3. Данные выводы могут служить
источниками прерываний, возникающих
при различных условиях: при низком уровне
сигнала, по фронту, по спаду или при изменении
сигнала на этих выводах. Для получения
дополнительной информации см. функцию attachInterrupt().
ШИМ: выводы 3, 5, 6,
9, 10 и 11. С помощью функции analogWrite() могут выводить 8-битные аналоговые
значения в виде ШИМ-сигнала.
Интерфейс SPI: выводы
10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Данные выводы позволяют осуществлять
связь по интерфейсу SPI. В устройстве реализована
аппаратная поддержка SPI, однако на данный
момент язык Ардуино пока ее не поддерживает.
Светодиод: 13. Встроенный светодиод, подсоединенный
к цифровому выводу 13. При отправке значения
HIGH светодиод включается, при отправке
LOW - выключается.
В Arduino Pro Mini есть 6 аналоговых
входов, каждый из которых может представить
аналоговое напряжение в виде 10-битного
числа (1024 различных значения). Четыре из
них выведены на контакты возле края платы;
два остальных (входы 4 и 5) выведены на
распаечные площадки внутри платы. Измерение
напряжения осуществляется относительно
диапазона от 0 до VCC. Помимо этого, некоторые
из аналоговых входов имеют дополнительные
функции:
I2C: вывод A4 (SDA) и вывод A5 (SCL). С использованием библиотеки Wire позволяют осуществлять связь
по интерфейсу I2С.
Помимо перечисленных на плате
есть еще один вывод:
Reset. Формирование низкого уровня
(LOW) на этом выводе приведет к перезагрузке
микроконтроллера. Обычно этот вывод служит
для функционирования кнопки сброса на
платах расширения
Связь
Arduino Pro Mini предоставляет
ряд возможностей для осуществления
связи с компьютером, еще одним
Ардуино или другими микроконтроллерами.
В ATmega328 имеется приемопередатчик UART,
позволяющий осуществлять последовательную
связь посредством цифровых выводов
0 (RX) и 1 (TX). В пакет программного
обеспечения Ардуино входит специальная
программа, позволяющая считывать
и отправлять на Ардуино простые
текстовые данные через USB-соединение.
Библиотека SoftwareSerial позволяет реализовать последовательную
связь на любых цифровых выводах Arduino Pro
Mini.
В микроконтроллере ATmega328 также
реализована поддержка последовательных
интерфейсов I2C (TWI) и SPI. В программное обеспечение
Ардуино входит библиотека Wire, позволяющая
упростить работу с шиной I2C; Для работы
с интерфейсом SPI см. даташит микроконтроллера
ATmega328.
Программирование
Arduino Pro Mini программируется
с помощью программного обеспечения
Ардуино (скачать). Для получения более подробной
информации см. справку и примеры.
ATmega328 в Arduino Pro Mini выпускается
с прошитым загрузчиком, позволяющим
загружать в микроконтроллер
новые программы без необходимости
использования внешнего программатора.
Взаимодействие с ним осуществляется
по оригинальному протоколу STK500
(описание, заголовочные файлы C).
Тем не менее, микроконтроллер
можно прошить и через разъем для внутрисхемного
программирования ICSP (In-Circuit Serial Programming),
не обращая внимания на загрузчик;
Автоматический (программный)
сброс
Чтобы каждый раз перед загрузкой
программы не требовалось нажимать кнопку
сброса, Arduino Pro Mini спроектирован таким
образом, который позволяет осуществлять
его сброс программно с подключенного
компьютера. Один из выводов шестиконтактного
разъема соединен с выводом RESET микроконтроллера
ATmega328 через конденсатор номиналом 100 нФ.
При подключении компьютеру этот вывод
также связан с одной из линий, участвующих
в аппаратном управлении потоком данных,
идущих через преобразователь USB-Serial: при
использовании кабеля FTDI - с линией RTS,
при использовании макетной платы Sparkfun
- с линией DTR. Когда на этой линии появляется
ноль, вывод RESET, соответственно, также переходит
в низкий уровень на время, достаточное
для перезагрузки микроконтроллера. Данная
особенность используется для того, чтобы
можно было прошивать микроконтроллер
всего одним нажатием кнопки в среде программирования
Ардуино. Такая архитектура позволяет
уменьшить таймаут загрузчика, поскольку
процесс прошивки всегда синхронизирован со
спадом сигнала на линии RESET.
Однако эта система может приводить
и к другим последствиям. При подключении
Pro Mini к компьютерам, работающим на Mac OS
X или Linux, его микроконтроллер будет сбрасываться
при каждом соединении программного обеспечения
с платой. После сброса на Pro Mini активизируется
загрузчик на время около полсекунды.
Несмотря на то, что загрузчик запрограммирован
игнорировать посторонние данные (т.е.
все данные, не касающиеся процесса прошивки
новой программы), он может перехватить
несколько первых байт данных из посылки,
отправляемой плате сразу после установки
соединения. Соответственно, если в программе,
работающей на Ардуино, предусмотрено
получение от компьютера каких-либо настроек
или других данных при первом запуске,
убедитесь, что программное обеспечение,
с которым взаимодействует Ардуино, осуществляет
отправку спустя секунду после установки
соединения.
Физические характеристики
Габаритные размеры печатной
платы Arduino Pro Mini: 1.8 см х 3.3 см.
- Программирование Arduino
3.1 Установите драйвера
Установка драйверов для Arduino Uno на Windows7, Vista или XP:
Подключите вашу плату и подождите,
пока Windows начнет процесс установки драйвера.
Через некоторое время, несмотря на все
её попытки, процесс закончится безрезультатно.
Нажмите на кнопку ПУСК и откройте
Панель управления.
В панели управления перейдите
на вкладку Система и безопасность (System
and Security). Затем выберите Система. Когда
откроется окно Система, выберите Диспетчер
устройств (Device Manager).
Обратите внимание на порты
(COM и LPT). Вы увидите открытый порт под названием
«Arduino UNO (COMxx)».
Щелкните на названии «Arduino
UNO (COMxx)» правой кнопкой мышки и выберите
опцию «Обновить драйвер» (Update Driver Software).
Кликните "Browse my computer for Driver
software".
Для завершения найдите и выберите
файл драйвера для Uno – «ArduinoUNO.inf», расположенный
в папке Drivers программного обеспечения
для Arduino (не в подкаталоге «FTDI USB Drivers»).
На этом Windows закончит установку
драйвера.
См. также: пошаговые скриншоты для установки
Uno под Windows XP.
Установка драйверов для Arduino Duemilanove, Nano или Diecimila в Windows7, Vista или XP:
Когда вы подключите плату к
компьютеру, Windows запустит процесс установки
драйвера (если до этого вы не подключали
к компьютеру плату Arduino).
В Windows Vista драйвер скачается
и установится автоматически (это действительно
работает!)
В Windows XP откроется Мастер установки
нового оборудования (Add New Hardware wizard).
На вопрос «Подключиться к узлу
Windows Update для поиска программного обеспечения?
(Can Windows connect to search for software?)» выберите ответ
«Нет, не в этот раз (No, not this time)». Нажмите
«Далее».
Выберите «Установить из списка
или указать местонахождение (Advanced) (Install
from a list or specified location (Advanced))» и нажмите «Далее».
Убедитесь, что выбрано «Искать
наиболее подходящий драйвер в указанном
месте (Search for the best driver in these locations)»; снимите
флажок «Искать на съемных носителях (Search
removable media)»; выберите «Добавить область
поиска (Include this location in the search)» и укажите
папку drivers/FTDI USB Drivers в дистрибутиве Arduino.
(Последнюю версию драйвера можно найти
на FTDI веб-сайте). Нажмите «Далее».
Мастер начнет поиск и затем
сообщит вам, что обнаружен «USB Serial Converter».
Нажмите «Готово (Finish)».
Снова появится мастер установки
нового оборудования. Выполните все те
же шаги с теми же опциями и указанием
того же пути для поиска. На этот раз будет
обнаружен «USB Serial Port».
Проверить, что драйвера действительно
установлены можно, открыв Диспетчер устройств
(Windows Device Mananger) (он находится во вкладке
Оборудование(Hardware) панели Свойства системы(System)).
Найдите «USB Serial Port» в разделе «Порты (Ports)»
– это и есть плата Arduino.
3.2 Среда разработки Arduino
Дважды щелкните на приложении для Arduino.
Откройте
готовый пример
Откройте мгновенный пример скетча «LED»
по адресу: File > Examples > 1.Basics > Blink.
Лабораторная работа №1
«Управление яркостью светодиода»
Цель работы: научится управлять яркостью светодиода с помощью
функции analogWrite()
Приборы
и принадлежности: контроллер Arduino, макетная плата, светодиод,
резистор 220 Ом
Подключаем
анод (обычно длинная ножка) светодиода
через резистор сопротивлением 220 Ом к
выходу номер 9 (pin 9). Катод (короткая ножка)
подсоединяем напрямую к земле (Grd). Рис.1
Рис.1.
В секции setup() кода устанавливаем режим выхода для
вход/выхода 9 (pin 9).
Функция analogWrite(), которая циклически вызывается в теле
скетча, принимает два аргумента: номер
выхода и значение ширины импульса ШИМ в
диапазоне от 0 до 255.
Для управление яркостью светодиода,
его плавного зажигания и плавного затухания,
мы будем изменять значение ширины импульса,
передаваемое в функцию analogWrite(). При
значение 0 светодиод выключен, при 255 светодиод
светит на полную яркость. В приведенном
ниже скетче ширина импульса задается
переменной brightness. Шаг изменения этого значения задан переменной fadeAmount.
Для плавного изменения яркости мы вводим
задержку в конце главного цикла (тела)
скетча — delay(30).
Программный
код
/* |
Пример управления яркостью
светодиода |
на выходе 9 контроллера Arduino |
функцией analogWrite(). |
*/ |
int brightness = 0; // уставливаем начально значение
яркости |
int fadeAmount = 5; // шаг приращения/убывания яркости |
void setup() { |
// устанваливаем пин 9 в
режим выхода |
pinMode(9, OUTPUT); |
} |
void loop() { |
// устанавливаем значение
широты импульса на выходе 9 |
// задавая яркость светодиода |
analogWrite(9, brightness); |
// измением значение в
переменной для яркости |
brightness = brightness + fadeAmount; |
// при достижение крайних
значений для яркости |
// меняем знак переменной
шага приращения/убывания яркости |
if (brightness == 0 || brightness == 255) { |
fadeAmount = -fadeAmount ; |
} |
// делаем паузу для
достижения плавного наращивания/убывания
яркости |
delay(30); |
} |