Arduino:Продукты/Продукты Arduino/Плата Arduino Duemilanove

Материал из Онлайн справочника
Версия от 21:25, 4 марта 2017; Myagkij (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


Arduino Duemilanove[1]

Arduino Duemilanove («2009») – это микроконтроллерная плата на базе ATmega168 или ATmega328. У нее 14 цифровых I/O контактов (из которых 6 можно использовать для выдачи ШИМ), 6 входных аналоговых контактов, кристаллический тактовый генератор на 16 МГц, USB-соединение, разъем для питания, ICSP-гребешок и кнопка сброса. Она содержит все необходимое для поддержки микроконтроллера – чтобы начать, просто подключите ее к компьютеру при помощи USB-кабеля или запитайте от адаптера, конвертирующего переменный ток в постоянный.

Duemilanove означает «2009» на итальянском языке, т.е. она названа в честь года выпуска. Duemilanove – это последняя из плат Arduino USB; для сравнения с предыдущими версиями смотрите здесь.

Технические характеристики

Документация

Питание

Arduino Duemilanove можно питать от USB-соединения или внешнего источника питания. Источник питания выбирается автоматически.

Внешнее (не USB) питание идет либо от адаптера, конвертирующего переменный ток в постоянный, либо от батареи. Адаптер можно подключить, подсоединив 2,1-миллиметровый разъем с центральным положительным контактом к разъему для питания на плате. Провода от батареи можно подсоединить к контактам Gnd и Vin на коннекторе POWER.

Плата может работать на внешнем питании в диапазоне от 6 до 20 вольт. Впрочем, если на плату будет подаваться ниже 7 вольт, то контакт 5V, возможно, будет получать меньше 5 вольт, из-за чего работа платы станет нестабильной. Если подать на плату более 12 вольт, регулятор напряжения может перегреться и повредить плату. Поэтому рекомендуется питать Duemilanove напряжением в 7-12 вольт.

Контакты для питания на Arduino Duemilanove:

  • VIN – входное напряжение для платы Arduino при использовании внешнего источника питания (в противовес 5 вольтам от USB-соединения или другого регулированного источника питания). Этот контакт можно использовать по-разному: во-первых, чтобы подавать через него питание на плату, а во-вторых, получать через него питание (если питающее напряжение подается на плату через разъем для питания).
  • 5V – регулированное напряжение для питания микроконтроллера и других компонентов платы. Оно может подаваться либо от контакта VIN (через регулятор напряжения), либо от USB-соединения, либо от другого источника, дающего отрегулированные 5 вольт.
  • 3V3 – напряжение в 3,3 вольта, генерируемое встроенным чипом FTDI. Максимальная сила тока, которую можно тянуть отсюда, составляет 50 миллиампер.
  • GND – контакты для «земли».

Память

Чип ATmega168 имеет 16 Кб flash-памяти для хранения кода, а ATmega32832 Кб. Из этих 16/32 Кб загрузчику отведено 2 Кб. ATmega168 имеет 1 Кб памяти типа SRAM, а ATmega3282 Кб. Также ATmega168 имеет 512 байт памяти типа EEPROM, а ATmega3281 Кб. Запись и считывание с этой памяти осуществляется при помощи библиотеки EEPROM.

Входные и выходные контакты

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

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

Duemilanove также имеет 6 входных аналоговых контактов, каждый из которых поддерживает 10-битное разрешение (т.е. может работать с 1024 разными значениями). По умолчанию вольтовый диапазон на них составляет от «земли» до 5 вольт, однако верхнюю границу этого диапазона можно поменять при помощи контакта AREF и функции analogReference(). Некоторые из этих контактов имеют специальные функции:

  • Интерфейс I2C: контакты A4 (SDA) и A5 (SCL). Поддерживают коммуникацию типа I2C (TWI) при помощи библиотеки Wire.

На Duemilanove есть еще несколько специальных контактов:

  • AREF – эталонное напряжение для входных аналоговых контактов. Используется вместе с функцией analogReference().
  • Reset – если подать на этот контакт LOW, это сбросит микроконтроллер. Как правило, используется, чтобы добавить на «шилд» кнопку сброса, потому что подключение «шилда» блокирует кнопку сброса на самой плате.

Смотрите также распиновку между контактами Arduino и портами ATmega168.

Коммуникация

Arduino Duemilanove имеет ряд средств для коммуникации с компьютером, а также другими Arduino и микроконтроллерами. Чипы ATmega168 и ATmega328 обеспечивают последовательную UART TTL (5-вольтовую) коммуникацию, которая доступна на контактах 0 (RX) и 1 (TX). Чип FTDI FT232RL перенаправляет эту коммуникацию на USB, а драйверы FTDI (есть в версии IDE Arduino для Windows) обеспечивают виртуальный COM-порт для ПО на компьютере. Кроме того, в IDE Arduino есть монитор порта, который позволяет отправлять простые текстовые данные – и на плату, и от нее. Светодиоды RX и TX на плате загораются, когда данные передаются через чип FTDI и USB-соединение с компьютером (но не через последовательный порт на контактах 0 и 1).

Кроме того, для последовательной коммуникации можно использовать любой цифровой контакт Duemilanove, и это осуществляется при помощи библиотеки SoftwareSerial.

Чипы ATmega168 и ATmega328 также поддерживают коммуникации типа I2C (TWI) и SPI. Для коммуникации через шину I2C в IDE Arduino есть библиотека Wire, а для шины SPIбиблиотека SPI.

Программирование

Arduino Duemilanove программируется при помощи среды разработки IDE Arduino. Чтобы начать работать с Duemilanove, зайдите в IDE Arduino и кликните на Инструменты > Плата > Arduino Duemilanove or Diecimila (Tools > Board > Arduino Duemilanove or Diecimila). О языке программирования Arduino читайте тут, а руководства смотрите тут.

Вы также можете обойти загрузчик и программировать микроконтроллер через ICSP-гребешок. Более подробно читайте в этих инструкциях.

Автоматический (программный) сброс

Arduino Duemilanove устроена так, что вам необязательно вручную нажимать на кнопку сброса перед загрузкой скетча – сброс можно выполнить при помощи ПО на компьютере, к которому подключена плата. Одна из линий управления потоками на FT232RL (если точнее, линия DTR) подключена к линии сброса на ATmega168/ATmega328 через 100-нанофарадный конденсатор. Если на эту линию подается значение LOW, значение на линии сброса падает, тем самым инициируя сброс чипа. Таким образом, чтобы загрузить код, достаточно просто нажав на кнопку загрузки в IDE Arduino. Это уменьшает таймаут загрузчика, т.к. подачу значения LOW на линию DTR можно скоординировать с началом загрузки.

Это влияет на работу платы и в другом. Когда Duemilanove подключена к компьютеру на Mac OS X или Linux, то сбрасывается каждый раз при открытии соединения между ней и IDE Arduino (через USB). Следующие примерно полсекунды на Duemlanove будет запускаться загрузчик. Хотя он запрограммирован, чтобы игнорировать ненужные данные (т.е. всего, что не относится к загрузке нового кода), он все же перехватит первые несколько байтов, отправленных на плату после открытия соединения. Таким образом, если скетч, первый раз запущенный на плате, получает исходные настройки или другую важную информацию, то сделайте так, чтобы ПО, с которым коммуницирует этот скетч, подождало примерно секунду после открытия соединения и перед отправкой данных.

Кроме того, Duemilanove имеет специальную трассу – если обрезать ее, это отключит функцию автоматического сброса. Чтобы снова ее включить, спаяйте друг с другом контактные площадки, находящиеся по обе стороны этой трассы. Она подписана как «RESET-EN». Кроме того, автоматический сброс можно отключить, подключив резистор на 110 ом между контактом 5V и линией сброса. Более подробно читайте в этом посте на форуме Arduino.

Защита USB-портов от перегрузок

Arduino Duemilanove имеет самовосстанавливающийся предохранитель, который защищает USB-порты вашего компьютера от коротких замыканий и других перегрузок. Хотя у многих компьютеров есть собственная защита от подобных напастей, этот предохранитель добавляет к ней еще один слой. Если на USB-порт будет подано более 500 миллиампер, этот предохранитель автоматически прервет соединение, пока короткое замыкание или перегрузка не будут устранены.

Физические характеристики

Максимальные длина и ширина печатной платы Duemilanove составляют Длина::68,58 мм. и Ширина::53,34 мм., однако USB-коннектор и разъем для питания могут немного выходить за эти границы. Также на плате есть три сквозных отверстия, благодаря которым ее можно прикрепить к какой-нибудь поверхности или корпусу. Обратите внимание, что расстояние между контактами 7 и 8 составляет 4,06 мм, а между остальными контактами – 2,54 мм.

Правильное произношение

Чтобы узнать, как правильно произносится название платы, можете загрузить один из файлов ниже (в зависимости от предпочитаемого формата): WAV, OGG, MP3, FLAC, WMA.

См.также

Внешние ссылки