Освой Arduino играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Выполнена на базе процессора ATmega328p с тактовой частотой 16 МГц.
Arduino Uno может питаться как от USB подключения, так и от внешнего источника: батарейки или обычной электрической сети. Источник определяется автоматически.
Порт USB имеет тип B, соответственно нужен кабель с нужным типом (часто такой кабель идёт в комплекте с принтером). Тип устарел, поэтому довольно дешёв для применения на плате.
Платформа может работать при наличии напряжения от 6 до 20 В. Однако при напряжении менее 7 В работа может быть неустойчивой, а напряжение более 12 В может привести к перегреву и повреждению. Поэтому рекомендуемый диапазон: 7−12 В (оптимальный 9). Arduino заберёт необходимые 5 В, а ещё небольшой запас пригодится для других компонентов.
Arduino Uno обладает предохранителем, защищающим USB-порты вашего компьютера от перенапряжения и коротких замыканий. Хотя большинство компьютеров обладают собственными средствами защиты, предохранитель даёт дополнительную уверенность. Он разрывает соединение, если на USB-порт подаётся более 500 мА, и восстанавливает его после нормализации ситуации. Внешний источник питания также должен иметь подобные характеристики в диапазоне от 500мА до 1 А. Обычно надпись на вилке выглядит как: OUTPUT: 9V DC 1000mA, INPUT: 100V-240V 50/60HZ. Обратите внимание на обозначение положительного центра.
Через USB-порт можно подавать питание и загружать прошивки на плату. Если требуется только питание, то используется другой разъём.
Для подключения используется штекер 2,1 мм с положительным центром. В качестве батареи часто используется стандартный элемент типа "Крона". Также есть вилки с подобным штекером.
Электрическая цепь должна быть замкнута, ток течёт от "+" к "-". В качестве плюса используются пины "3.3V" и "5V".
При подключении должен загореться встроенный светодиод ON (обычно зелёным цветом). Так визуально вы можете увидеть, что плата находится в рабочем состоянии.
На Arduino доступны следующие контакты для доступа к питанию:
Платформа оснащена 32 кБ flash-памяти, 2 кБ из которых отведено под так называемый bootloader. Он позволяет прошивать Arduino с обычного компьютера через USB. Эта память постоянна и не предназначена для изменения по ходу работы устройства. Её предназначение — хранение программы и сопутствующих статичных ресурсов.
Также имеется 2 кБ SRAM-памяти, которые используются для хранения временных данных вроде переменных программы. По сути, это оперативная память платформы. SRAM-память очищается при обесточивании.
Ещё имеется 1 кБ EEPROM-памяти для долговременного хранения данных. По своему назначению это аналог жёсткого диска для Arduino.
На платформе расположены 14 контактов (0-13), которые могут быть использованы для цифрового входа и выхода. Какую роль исполняет каждый контакт, зависит от вашей программы. Все они работают с напряжением 5 В, и рассчитаны на ток до 40 мА - этого достаточно для светодиодов, но не совсем для управления электромотором и другим мощным устройством. Никогда не подавайте питание от батареи "Крона" (9В) напрямую на выводы, вы просто спалите плату!
Также каждый контакт имеет встроенный, но отключённый по умолчанию резистор на 20-50 кОм. Некоторые контакты обладают дополнительными ролями:
Помимо контактов цифрового ввода/вывода на Arduino имеется 6 контактов аналогового вывода A0-A5, каждый из которых предоставляет разрешение в 1024 градации (10 бит) через аналогово-цифровой преобразователь (АПЦ). По умолчанию значение меряется между землёй и 5 В, однако возможно изменить верхнюю границу, подав напряжение требуемой величины на специальный контакт AREF.
Контакты A4 и A5 используются для работы I2C-шины.
Предназначен для чтения данных с аналоговых датчиков. При нехватке цифровых выходов можно использовать аналоговые в качестве цифровых.
По умолчанию все порты работают на вход. С помощью метода pinMode() можно установить режим на выход.
Также имеются два блока портов ICSP (In Circuit Serial Programming), которые используются для обновления прошивок или переустановки загрузчика. Для опытных разработчиков.
Кроме этого на плате имеется входной контакт Reset (пример). Его установка в логический ноль приводит к сбросу процессора. А также есть отдельная кнопка Reset. Кнопка используется, если вы хотите заново перезапустить прошивку, не загружая её с компьютера. Также кнопку Reset можно использовать для проверки загрузчика - подключите плату и нажмите кнопку. В течение короткого времени трижды должен поморгать светодиод.
Arduino Uno обладает несколькими способами общения с другими Arduino, микроконтроллерами и обычными компьютерами. Платформа позволяет установить последовательное (Serial UART TTL) соединение через контакты 0 (RX) и 1 (TX). Установленный на платформе чип ATmega16U2 транслирует это соединение через USB: на компьютере становится доступен виртуальный COM-порт. Программная часть Arduino включает утилиту, которая позволяет обмениваться текстовыми сообщениями по этому каналу.
Встроенные в плату светодиоды от выходов RX и TX светятся, когда идёт передача данных между чипом ATmega162U и USB компьютера.
Отдельная библиотека позволяет организовать последовательное соединение с использованием любых других контактов, не ограничиваясь штатными 0-м и 1-м.
С помощью отдельных плат расширения становится возможной организация других способов взаимодействия, таких как ethernet-сеть, радиоканал, Wi-Fi.
Сразу после включения платы Arduino запускается загрузчик, который работает в течение нескольких секунд. Если за это время загрузчик получит команду от IDE по последовательному интерфейсу UART, то он загрузит скетч в свободную область памяти микроконтроллера. Если команды нет, то запускается последняя программа, которая находится в памяти платы.
Загрузчики занимают много места, что мешает написать более сложную программу из-за нехватки памяти. При наличии загрузчика выполнение вашей программы всегда будет задерживаться на несколько секунд при начальной загрузке.
Наличие программатора позволит избежать подобных проблем. Также можно использовать другую плату Arduino, запрограммированную как программатор. В этом случаем можно удалить загрузчик из своего контроллера и программировать с помощью внешнего программатора.
Размер платы составляет 6,9 × 5,3 см. Гнёзда для внешнего питания и USB выступают на пару миллиметров за обозначенные границы. Расстояние между контактами составляет 0,1″ (2,54 мм), но в случае 7-го и 8-го контакта — расстояние: 0,16″.
На плате предусмотрены места для крепления на шурупы или винты.
Платы иногда меняются. Если сравнить современную плату с самыми первыми, то можно заметить небольшие изменения. Менялись микроконтроллеры и другие детали. Кроме того, китайцы и другие производители могут вносить собственные изменения. Например, на одной китайской плате я обнаружил в левом верхнем углу новые выводы SDA и SCL, которых не было на оригинальной плате, купленной несколько лет назад.