Arduino:Продукты/Продукты Arduino/Плата Arduino Uno: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) |
||
Строка 60: | Строка 60: | ||
==Программирование== | ==Программирование== | ||
Плату [[Arduino Uno]]{{Admitad|Товар=Arduino Uno}} можно программировать через [[IDE Arduino]] (среду разработки [[Arduino]]). Зайдите в нее, а потом кликните на '''Инструменты > Плата > Arduino/Genuino Uno (Tools > Board > Arduino/Genuino Uno)''', чтобы [[IDE Arduino]] понимала, с каким [[микроконтроллер]]ом ей придется иметь дело. О языке программирования [[Arduino]] читайте [[Arduino:Справочник_языка_Arduino|тут]], а о руководствах – [ | Плату [[Arduino Uno]]{{Admitad|Товар=Arduino Uno}} можно программировать через [[IDE Arduino]] (среду разработки [[Arduino]]). Зайдите в нее, а потом кликните на '''Инструменты > Плата > Arduino/Genuino Uno (Tools > Board > Arduino/Genuino Uno)''', чтобы [[IDE Arduino]] понимала, с каким [[микроконтроллер]]ом ей придется иметь дело. О языке программирования [[Arduino]] читайте [[Arduino:Справочник_языка_Arduino|тут]], а о руководствах – [[Arduino:Примеры|тут]]. | ||
Чип [[ATmega328P]]{{Admitad|Товар=ATmega328P}} на '''Arduino/Genuino Uno'''{{Admitad|Товар=Arduino Uno}} идет уже предварительно запрограммированным, т.е. на нем уже установлен загрузчик, который позволяет вам загружать на плату новый код без использования внешнего аппаратного [[программатор]]а. Загрузчик коммуницирует при помощи протокола [[STK500]]{{Admitad|Товар=STK500}} ([http://www.atmel.com/Images/doc2525.pdf описание], [http://www.atmel.com/dyn/resources/prod_documents/avr061.zip заголовочные файлы]). | Чип [[ATmega328P]]{{Admitad|Товар=ATmega328P}} на '''Arduino/Genuino Uno'''{{Admitad|Товар=Arduino Uno}} идет уже предварительно запрограммированным, т.е. на нем уже установлен загрузчик, который позволяет вам загружать на плату новый код без использования внешнего аппаратного [[программатор]]а. Загрузчик коммуницирует при помощи протокола [[STK500]]{{Admitad|Товар=STK500}} ([http://www.atmel.com/Images/doc2525.pdf описание], [http://www.atmel.com/dyn/resources/prod_documents/avr061.zip заголовочные файлы]). |
Версия от 15:03, 16 июня 2019
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Arduino Uno[1]
Название платы::Arduino Uno() – это микроконтроллерная плата на базе ATmega328P(). У нее 14 цифровых I/O контактов (из которых 6 можно использовать для выходной ШИМ), 6 входных аналоговых контактов, кварцевый кристалл на 16 МГц, USB-соединение, разъем для питания, ICSP-гребешок и кнопка сброса. Она оснащена всем, что необходимо для поддержки микроконтроллера. То есть, чтобы начать, достаточно просто подключить ее к компьютеру (при помощи USB-кабеля) или запитать от адаптера, конвертирующего переменный ток в постоянный, или от батарейки. Работая с этой платой, можно почти не беспокоиться о том, что вы можете сделать что-то не так. В самом худшем случае вам надо будет просто поменять кристалл, который стоит всего несколько долларов, после чего можно будет снова приступить к работе.
«Uno»() на итальянском значит «один», и это название было выбрано, чтобы обозначить релиз IDE Arduino 1.0. Модель Uno() и IDE Arduino версии 1.0 были базисными версиями Arduino, за которыми последовали усовершенствованные версии. Плата Uno() – первая из серии USB-плат Arduino и базисная модель платформы Arduino. Расширенный список действующих, старых и устаревших плат Arduino смотрите здесь.
О гарантии читайте тут.
На этой странице можно почитать о том, как настроить платы, использовать IDE Arduino и побыстрее приступить к делу.
Если нужна помощь, то...
С чего начать
На базе Arduino Uno() можно создать множество различных проектов, а руководства по их созданию можно найти тут. Вот несколько примеров оттуда:
Технические характеристики
- Микроконтроллер – Микроконтроллер::ATmega328P()
- Рабочее напряжение – Рабочее напряжение::5 вольт
- Входное напряжение (рекомендуемое) – Входное напряжение (рекомендуемое)::7-12 вольт
- Входное напряжение (лимит) – Входное напряжение (лимит)::6-20 вольт
- Цифровые I/O контакты – Цифровые I/O контакты::14 (на 6 есть ШИМ)
- Цифровые I/O контакты с поддержкой ШИМ – Цифровые I/O контакты с поддержкой ШИМ::6
- Входные аналоговые контакты – Входные аналоговые контакты::6
- Максимальная сила тока на один I/O контакт – Максимальная сила тока на один I/O контакт::20 миллиампер
- Максимальная сила тока на контакт 3.3V – Максимальная сила тока на контакт 3.3V ::50 миллиампер
- Flash-память – Flash-память::32 Кб (ATmega328P), из которых 0,5 Кб используются загрузчиком()
- SRAM – SRAM::2 Кб (ATmega328P)()
- EEPROM – EEPROM::1 Кб (ATmega328P)()
- Тактовая частота – Тактовая частота::16 МГц
- Встроенный светодиод (LED_BUILTIN) – Встроенный светодиод (LED_BUILTIN)::13-ый
- Длина – Длина::68,6 мм.
- Ширина – Ширина::53,4 мм.
- Вес – Вес::25 грамм
Документация
Arduino Uno() – это устройство, распространяемое по принципу «open-source». Вы можете создать собственную плату, используя следующие файлы:
Программирование
Плату Arduino Uno() можно программировать через IDE Arduino (среду разработки Arduino). Зайдите в нее, а потом кликните на Инструменты > Плата > Arduino/Genuino Uno (Tools > Board > Arduino/Genuino Uno), чтобы IDE Arduino понимала, с каким микроконтроллером ей придется иметь дело. О языке программирования Arduino читайте тут, а о руководствах – тут.
Чип ATmega328P() на Arduino/Genuino Uno() идет уже предварительно запрограммированным, т.е. на нем уже установлен загрузчик, который позволяет вам загружать на плату новый код без использования внешнего аппаратного программатора. Загрузчик коммуницирует при помощи протокола STK500() (описание, заголовочные файлы).
Впрочем, загрузчик можно обойти и программировать микроконтроллер при помощи ICSP-коннектора, использующего Arduino ISP или похожее устройство. Более подробно читайте тут.
На репозитории Arduino можно скачать прошивку для ATmega16U2() (или ATmega8U2() для плат rev1 и rev2). Чип ATmega16U2()/ATmega8U2() загружается с помощью загрузчика DFU, который можно активировать:
- На платах rev1: припаяв перемычку на задней стороне платы (рядом с картой Италии), а затем сбросив ATmega8U2()
- На платах rev2 и новее: при помощи резистора притянув линию HWB (от «hardware bootloader», что значит «аппаратный загрузчик») на ATmega16U2]()/ATmega8U2() к «земле», тем самым упрощая переход в режим DFU
Чтобы загрузить новую прошивку, можно воспользоваться либо программой FLIP от Atmel (для Windows), либо программатором DFU (для Mac OS X и Linux). Или можно воспользоваться ISP-коннектором (это перезапишет DFU-загрузчик). Более подробно читайте в этом пользовательском руководстве.
Внимание
Модель Arduino Uno/Genuino Uno() оснащена восстанавливаемым предохранителем, защищающим USB-порты вашего компьютера от коротких замыканий и энергетических перегрузок. Хотя у компьютеров, как правило, есть собственная защита от этих напастей, предохранитель на Uno() добавляет этой защите еще один слой. Если сила тока на USB-порт превысит 500 миллиампер, предохранитель автоматически прервет соединение, пока короткое замыкание или перегрузка не будут устранены.
Отличия от других плат
Модель Uno() отличается от предшественников в том, что не использует чип для FTDI-драйвера, конвертирующий USB в последовательные данные. Вместо этого он использует ATmega16U2() (или ATmega8U2() на версиях до rev2), запрограммированный как устройство, конвертирующее USB в последовательные данные.
Питание
Плату Arduino Uno() можно запитать через USB-соединение или внешний источник питания. Источник питания выбирается автоматически.
Внешним (не USB) источником питания может быть либо адаптер, конвертирующий переменный ток в постоянный, либо батарея. Адаптер можно подключить, вставив 2,1-миллиметровый штекер с положительным центральным контактом в разъем для питания на Arduino. Провода от батареи можно подключить к контактам GND и Vin на коннекторе POWER.
Плата может работать от внешнего источника питания, дающего напряжение 6-20 вольт. Впрочем, если на плату будет подаваться менее 7 вольт, то 5-вольтовый контакт, возможно, будет получать менее 5 вольт, из-за чего работа платы может быть нестабильной. Но если подать на плату более 12 вольт, регулятор напряжения может перегреться и повредить плату. Поэтому мы рекомендуем подавать на плату от 7 до 12 вольт.
Контакты коннектора POWER (т.е. коннектора, через который на плату подается питание):
- Vin – контакт для подачи на Arduino Uno() входного напряжения, когда используется внешний источник питания (в противовес 5 вольтам от USB-соединения или другого регулированного источника питания). Вы можете подать напряжение на этот контакт напрямую, либо через разъем для питания, который имеет доступ к этому контакту.
- 5V – дает отрегулированные 5 вольт от регулятора платы. Плату можно питать либо от DC-разъема для питания (7-12 вольт), либо через USB-коннектор (5 вольт), либо через Vin-контакт (7-12 вольт). Подача напряжения через 5-вольтовый и 3,3-вольтовый контакты идет в обход регулятора и может повредить плату. Делать это не рекомендуется.
- 3V3 – напряжение в 3,3 вольт, генерируемое встроенным регулятором платы. Максимальное потребление тока – 50 миллиампер.
- GND – контакты для «земли».
- IOREF – этот контакт является источником эталонного напряжения, необходимого для работы контроллера. Правильно настроенный «шилд» может прочитать напряжение на этом контакте и выбрать нужный источник питания или включить на выходных устройствах преобразователи, позволяющие работать либо с 5, либо с 3,3 вольтами.
Память
Чип ATmega328() имеет 32 Кб памяти, из которой 0,5 Кб занято загрузчиком. Кроме того, на плате есть 2 Кб памяти SRAM и 1 Кб памяти EEPROM (запись и чтение с этой памяти осуществляется с помощью библиотеки EEPROM).
Входные и выходные контакты
Распиновку между контактами Arduino и портами ATmega328P() смотрите тут. Чипы ATmega8(), ATmega168() и ATmega328() имеют одну и ту же распиновку.
Любой из 14 цифровых контактов Uno() можно использовать и как входной, и как выходной контакт – при помощи функций pinMode(), digitalWrite() и digitalRead(). Они работают на 5 вольтах. Рекомендуется, чтобы каждый из этих контактов получал/отдавал не более 20 миллиампер. Кроме того, у каждого контакта имеется встроенный подтягивающий резистор на 20-50 кОм (по умолчанию отключен). Максимальная сила тока, которую можно использовать на контакте – это 40 миллиампер, т.к. если ее превысить, это может привести к необратимому повреждению микроконтроллера.
Кроме того, у некоторых контактов есть специальные функции:
- Последовательная передача данных: 0-ой (RX) и 1-ый (TX) контакты. Используются для получения (RX) и передачи (TX) последовательных TTL-данных. Эти контакт подключены к соответствующим контактам на чипе (), конвертирующем USB-данные в TTL-данные.
- Внешние прерывания: 2-ой и 3-ий контакты. Эти контакты можно настроить на запуск прерывания при переключении на значение LOW, нарастающем/убывающем фронте импульса или изменении значения. Более подробно читайте в статье о функции attachInterrupt().
- Интерфейс SPI: 10-ый (SS), 11-ый (MOSI), 12-ый (MISO) и 13-ый (SCK) контакты. Они поддерживают SPI-коммуникацию при помощи библиотеки SPI.
- Встроенный светодиод: 13-ый контакт. Это светодиод, по умолчанию встроенный в плату Arduino и управляемый 13-ым цифровым контактом. Если на этот контакт подано значение HIGH, то светодиод включится, а если LOW, то выключится.
- Интерфейс TWI: 4-ый (SDA) и 5-ый (SCL) аналоговые контакты. Они поддерживают TWI-коммуникацию при помощи библиотеки Wire.
Плата Arduino Uno() также обладает 6 аналоговыми контактами, названными от A0 до A5 и имеющими 10-битное разрешение (т.е. они позволяют работать с данными в диапазоне от 1 до 1024). По умолчанию вольтовый диапазон составляет 0-5 вольт, однако верхнюю границу диапазона можно поменять при помощи контакта AREF и функции analogReference().
Вот еще несколько специализированных контактов Arduino Uno():
- AREF – эталонное напряжение для входных аналоговых контактов. Используется с функцией analogReference().
- RESET – если подать на эту линию сигнал LOW, это выполнит сброс микроконтроллера. Как правило, используется, когда к плате подключен «шилд», который блокирует кнопку сброса, имеющуюся на самой плате.
Коммуникация
На Arduino Uno() есть множество средств для коммуникации с компьютером, другими платами Arduino и другими микроконтроллерами. Во-первых, чип ATmega328() может общаться через последовательную коммуникацию UART TTL (5 вольт), доступную на 0-ом (RX) и 1-ом (TX) цифровых контактах. Чип ATmega16U2() перенаправляет последовательную коммуникацию на USB, а ПО на компьютере видит его, как виртуальным COM-порт. Прошивка ATmega16U2() использует стандартные USB COM драйверы, поэтому никаких внешних драйверов этому чипу не требуется. Однако на Windows понадобится файл формата *.inf. В IDE Arduino есть монитор порта, позволяющий отправлять и получать от платы текстовые данные. При передаче данных через чип USB-Serial и USB-коммуникацию с компьютером (но не через последовательную коммуникацию на 0-ом и 1-ом контактах) на плате будут загораться светодиоды RX и TX. Библиотека SoftwareSerial позволяет настроить последовательную коммуникацию на любом из цифровых контактов Arduino Uno().
Чип ATmega328() также поддерживает коммуникацию через интерфейсы I2C (TWI) и SPI. Чтобы упростить использование шины I2C, IDE Arduino использует библиотеку Wire. Для коммуникации по SPI используется библиотека SPI.
Автоматический (программный) сброс
Если вы хотите загрузить на Arduino Uno() новый скетч, для этого необязательно нажимать кнопку сброса вручную. Эта модель устроена таким образом, что позволяет выполнить сброс при помощи ПО, которое запущено на компьютере, подключенном к Arduino. Линия DTR на ATmega8U2()/ATmega16U2(), т.е. одна из аппаратных линий на чипе, отвечающих за управление потоками, через 100-нанофарадный конденсатор подключена к линии RESET на ATmega328. Когда эта линия получает значение LOW, значение на линии RESET падает настолько, что этого хватает для сброса чипа. IDE Arduino использует эту возможность, чтобы позволить вам загружать код простым нажатием на кнопку загрузки, находящуюся на панели инструментов. Это значит, что у загрузчика будет более короткий таймаут, поскольку передачу на DTR значения LOW можно привязать к началу загрузки.
Эта система влияет на работу Uno() и в другом. Когда Uno подключена к компьютеру на Mac OS X или Linux, то сбрасывается каждый раз при настройке соединения между нею и программой (через USB). Следующие полсекунды на Uno() выполняется запуск загрузчика. Хотя Uno() запрограммирована на игнорирование дефектных данных (то есть всего, что не имеет отношение к загрузке нового кода), она все же перехватит несколько байт, отправленных ей после открытия соединения. Таким образом, если первом запуске скетча плата получает разовую конфигурацию или другие данные, сделайте так, чтобы программа, с которой он коммуницирует, перед отправкой этих данных подождала примерно секунду.
На плате Uno() есть линия, обрезав которую, можно отключить автосброс. Чтобы снова его включить, нужно припаять друг к другу контактные площадки, находящиеся по обе стороны этой линии. Эта линия называется RESET-EN. Кроме того, автоматический сброс можно отключить, подключив 110-омовый резистор между контактом 5V и линией RESET. Более подробно читайте в этом посте на форуме Arduino.
Версии
Плата Arduino Uno() версии 3.0 имеет следующие функции:
- Распиновка 1.0. Добавлены контакты SDA и SCL, которые находятся рядом с контактом AREF, два новых контакта, расположенных рядом с контактом RESET, и контакт IOREF, который позволяет «шилду» адаптировать напряжение, идущее от платы. В будущем «шилды» будут совместимы и с платами на AVR, которые работают на 5 вольтах, и с Arduino Due(), которая работает на 3,3 вольтах. Второй контакт ни к чему не подключен, он зарезервирован для использования в будущем.
- Более стабильная RESET-цепь
- Вместо ATmega8U2() теперь стоит ATmega16U2()
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
{{#set: |Название=Плата Arduino Uno |Метки=Arduino Uno, arduino uno, uno, плата arduino uno, плата uno, Плата Arduino Uno, плата Arduino Uno, плата arduino Uno, плата arduino uno, фквгштщ гтщ, гтщ, Плата Uno|+sep=,
|Описание=
Название платы::Arduino Uno() – это микроконтроллерная плата на базе ATmega328P(). У нее 14 цифровых I/O контактов (из которых 6 можно использовать для выходной ШИМ), 6 входных аналоговых контактов, кварцевый кристалл на 16 МГц, USB-соединение, разъем для питания, ICSP-гребешок и кнопка сброса. Она оснащена всем, что необходимо для поддержки микроконтроллера. То есть, чтобы начать, достаточно просто подключить ее к компьютеру (при помощи USB-кабеля) или запитать от адаптера, конвертирующего переменный ток в постоянный, или от батарейки. Работая с этой платой, можно почти не беспокоиться о том, что вы можете сделать что-то не так. В самом худшем случае вам надо будет просто поменять кристалл, который стоит всего несколько долларов, после чего можно будет снова приступить к работе. |Полная ссылка на страницу=Плата Arduino Uno }}