Arduino:Продукты/Продукты Arduino/Плата Arduino Uno: различия между версиями
Myagkij (обсуждение | вклад) |
Myagkij (обсуждение | вклад) Нет описания правки |
||
(не показаны 34 промежуточные версии 2 участников) | |||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
[[File:A000066_iso_both.jpg|center]] | [[File:A000066_iso_both.jpg|center|frame|'''Рис. 1.''' Фото плат [[Arduino Uno]] и [[Genuino Uno]]|alt=Рис. 1. Фото плат Arduino Uno и Genuino Uno]] | ||
=Arduino Uno<ref>[https://www.arduino.cc/en/Main/ArduinoBoardUno www.arduino.cc - Arduino/Genuino UNO]</ref>= | =Arduino Uno<ref>[https://www.arduino.cc/en/Main/ArduinoBoardUno www.arduino.cc - Arduino/Genuino UNO]</ref>= | ||
Arduino Uno – это микроконтроллерная плата на базе [[ATmega328P]]. У нее 14 цифровых I/O контактов (из которых 6 можно использовать для выходной [[ШИМ]]), 6 входных аналоговых контактов, [[кварцевый кристалл]] на 16 МГц, [[USB]]-соединение, разъем для питания, [[ICSP-гребешок]] и кнопка сброса. Она оснащена всем, что необходимо для поддержки [[микроконтроллер]]а. То есть, чтобы начать, достаточно просто подключить ее к [[компьютер]]у (при помощи [[USB-кабеля]]) или запитать от адаптера, конвертирующего переменный ток в постоянный, или от батарейки. Работая с этой платой, можно почти не беспокоиться о том, что вы можете сделать что-то не так. В самом худшем случае вам надо будет просто поменять кристалл, который стоит всего несколько долларов, после чего можно будет снова приступить к работе. | |||
«[[Uno]]» | «[[Uno]]» на итальянском значит ''«один»'', и это название было выбрано, чтобы обозначить релиз [[IDE Arduino 1.0]]. Модель [[Uno]] и [[IDE Arduino версии 1.0]] были базисными версиями [[Arduino]], за которыми последовали усовершенствованные версии. [[Плата Uno]] – первая из серии [[USB]]-плат [[Arduino]] и базисная модель платформы [[Arduino]]. Расширенный список действующих, старых и устаревших плат [[Arduino]] смотрите [https://www.arduino.cc/en/Main/Products здесь]. | ||
О гарантии читайте [https://www.arduino.cc/en/Main/warranty тут]. | О гарантии читайте [https://www.arduino.cc/en/Main/warranty тут]. | ||
Строка 19: | Строка 19: | ||
* ...[https://forum.arduino.cc/index.php?board=3.0 здесь] – о проектах | * ...[https://forum.arduino.cc/index.php?board=3.0 здесь] – о проектах | ||
* ...[https://store.arduino.cc/index.php?main_page=contact_us&language=enа здесь] – о самих продуктах | * ...[https://store.arduino.cc/index.php?main_page=contact_us&language=enа здесь] – о самих продуктах | ||
==Купить== | |||
* '''Arduino Uno''' {{Admitad|Товар=Arduino Uno}} | |||
==С чего начать== | ==С чего начать== | ||
На базе [[Arduino Uno]] | На базе [[Arduino Uno]] можно создать множество различных проектов, а руководства по их созданию можно найти [https://create.arduino.cc/projecthub/products/arduino-uno-genuino-uno тут]. Вот несколько примеров оттуда: | ||
<gallery mode="packed-overlay" widths=200px heights=200px> | <gallery mode="packed-overlay" widths=200px heights=200px> | ||
Строка 33: | Строка 37: | ||
==Технические характеристики== | ==Технические характеристики== | ||
* '''Микроконтроллер''' – | * '''[[Микроконтроллер]]''' – 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 МГц | ||
* '''Встроенный светодиод ([[Arduino:Справочник языка Arduino/Константы/LED BUILTIN|LED_BUILTIN]]) | * '''Встроенный [[светодиод]]''' ([[Arduino:Справочник языка Arduino/Константы/LED BUILTIN|LED_BUILTIN]]) – 13-ый | ||
* '''Длина''' – | * '''Длина''' – 68,6 мм. | ||
* '''Ширина''' – | * '''Ширина''' – 53,4 мм. | ||
* '''Вес''' – [[ | * '''Вес''' – 25 грамм | ||
==Распиновка== | |||
[[File:arduino_uno_pinout1.jpg|center]] | |||
==Документация== | ==Документация== | ||
[[Arduino Uno]] | [[Arduino Uno]] – это устройство, распространяемое по принципу ''«[[open-source]]»''. Вы можете создать собственную плату, используя следующие файлы: | ||
*[[:File:arduino_Uno_Rev3-02-TH.zip|Eagle-файл в ZIP-архиве]] | *[[:File:arduino_Uno_Rev3-02-TH.zip|Eagle-файл в ZIP-архиве]] | ||
*[[:File:Arduino_Uno_Rev3-schematic.pdf|Схема в PDF]] | *[[:File:Arduino_Uno_Rev3-schematic.pdf|Схема в PDF]] | ||
Строка 60: | Строка 68: | ||
==Программирование== | ==Программирование== | ||
Плату [[Arduino Uno]] | Плату [[Arduino Uno]] можно программировать через [[IDE Arduino]] (среду разработки [[Arduino]]). Зайдите в нее, а потом кликните на Инструменты > Плата > Arduino/Genuino Uno (Tools > Board > Arduino/Genuino Uno), чтобы [[IDE Arduino]] понимала, с каким [[микроконтроллер]]ом ей придется иметь дело. О языке программирования [[Arduino]] читайте [[Arduino:Справочник_языка_Arduino|тут]], а о руководствах – [[Arduino:Примеры|тут]]. | ||
Чип [[ATmega328P]] | Чип [[ATmega328P]] на Arduino/[[Genuino Uno]] идет уже предварительно запрограммированным, т.е. на нем уже установлен загрузчик, который позволяет вам загружать на плату новый код без использования внешнего аппаратного [[программатор]]а. Загрузчик коммуницирует при помощи протокола [[STK500]]([http://www.atmel.com/Images/doc2525.pdf описание], [http://www.atmel.com/dyn/resources/prod_documents/avr061.zip заголовочные файлы]). | ||
Впрочем, загрузчик можно обойти и программировать [[микроконтроллер]] при помощи [[ICSP-коннектор]]а, использующего [https://www.arduino.cc/en/Main/ArduinoISP Arduino ISP] или похожее устройство. Более подробно читайте [[Arduino:Хакинг/Программатор|тут]]. | Впрочем, загрузчик можно обойти и программировать [[микроконтроллер]] при помощи [[ICSP-коннектор]]а, использующего [https://www.arduino.cc/en/Main/ArduinoISP Arduino ISP] или похожее устройство. Более подробно читайте [[Arduino:Хакинг/Программатор|тут]]. | ||
На репозитории [[Arduino]] можно скачать прошивку для [[ATmega16U2]] | На репозитории [[Arduino]] можно скачать прошивку для [[ATmega16U2]](или [[8U2|ATmega8U2]] для плат rev1 и rev2). Чип [[ATmega16U2]]/[[8U2|ATmega8U2]] загружается с помощью загрузчика [[DFU]], который можно активировать: | ||
* '''На платах rev1''' | * '''На платах rev1:''' припаяв перемычку на задней стороне платы (рядом с картой [[Италии]]), а затем сбросив [[8U2|ATmega8U2]] | ||
* '''На платах rev2 и новее''' | * '''На платах rev2 и новее:''' при помощи [[резистор]]а притянув линию HWB (от ''«hardware bootloader»'', что значит ''«аппаратный загрузчик»'') на [[ATmega16U2]]]/[[8U2|ATmega8U2]] к ''«земле»'', тем самым упрощая переход в режим DFU. | ||
Чтобы загрузить новую прошивку, можно воспользоваться либо [http://www.atmel.com/products/microcontrollers/default.aspx программой FLIP от Atmel] (для [[Windows]]), либо [http://dfu-programmer.github.io/ программатором | Чтобы загрузить новую прошивку, можно воспользоваться либо [http://www.atmel.com/products/microcontrollers/default.aspx программой FLIP от Atmel] (для [[Windows]]), либо [http://dfu-programmer.github.io/ программатором DFU] (для [[Mac OS X]] и [[Linux]]). Или можно воспользоваться [[ISP-коннектор]]ом (это перезапишет [[DFU-загрузчик]]). Более подробно читайте в [http://forum.arduino.cc/index.php/topic,111.0.html этом пользовательском руководстве]. | ||
==Внимание== | ==Внимание== | ||
Модель [[Arduino Uno]]/[[Genuino Uno]] | Модель [[Arduino Uno]]/[[Genuino Uno]] оснащена восстанавливаемым предохранителем, защищающим [[USB-порт]]ы вашего [[компьютер]]а от коротких замыканий и энергетических перегрузок. Хотя у [[компьютер]]ов, как правило, есть собственная защита от этих напастей, [[предохранитель]] на [[Uno]] добавляет этой защите еще один слой. Если сила тока на [[USB-порт]] превысит 500 миллиампер, [[предохранитель]] автоматически прервет соединение, пока короткое замыкание или перегрузка не будут устранены. | ||
==Отличия от других плат== | ==Отличия от других плат== | ||
Модель [[Uno]] | Модель [[Uno]] отличается от предшественников в том, что не использует чип для [[FTDI-драйвер]]а, конвертирующий [[USB]] в последовательные данные. Вместо этого он использует [[ATmega16U2]] (или [[ATmega8U2]] на версиях до rev2), запрограммированный как устройство, конвертирующее [[USB]] в последовательные данные. | ||
==Питание== | ==Питание== | ||
Плату [[Arduino Uno]] | Плату [[Arduino Uno]] можно запитать через [[USB]]-соединение или внешний источник питания. Источник питания выбирается автоматически. | ||
Внешним (не [[USB]]) источником питания может быть либо адаптер, конвертирующий переменный ток в постоянный, либо батарея. Адаптер можно подключить, вставив 2,1-миллиметровый штекер с положительным центральным контактом в разъем для питания на [[Arduino]]. Провода от батареи можно подключить к контактам [[GND]] и [[Vin]] на коннекторе [[POWER]]. | Внешним (не [[USB]]) источником питания может быть либо адаптер, конвертирующий переменный ток в постоянный, либо батарея. Адаптер можно подключить, вставив 2,1-миллиметровый штекер с положительным центральным контактом в разъем для питания на [[Arduino]]. Провода от батареи можно подключить к контактам [[GND]] и [[Vin]] на коннекторе [[POWER]]. | ||
Плата может работать от внешнего источника питания, дающего напряжение | Плата может работать от внешнего источника питания, дающего напряжение 6-20 вольт. Впрочем, если на плату будет подаваться менее 7 вольт, то 5-вольтовый контакт, возможно, будет получать менее 5 вольт, из-за чего работа платы может быть нестабильной. Но если подать на плату более 12 вольт, регулятор напряжения может перегреться и повредить плату. Поэтому мы рекомендуем подавать на плату от 7 до 12 вольт. | ||
Контакты коннектора [[POWER]] (т.е. коннектора, через который на плату подается питание): | Контакты коннектора [[POWER]] (т.е. коннектора, через который на плату подается питание): | ||
* [[Vin]] – контакт для подачи на [[Arduino Uno]] | * '''[[Vin]]''' – контакт для подачи на [[Arduino Uno]] входного напряжения, когда используется внешний источник питания (в противовес 5 вольтам от [[USB]]-соединения или другого регулированного источника питания). Вы можете подать напряжение на этот контакт напрямую, либо через разъем для питания, который имеет доступ к этому контакту. | ||
* [[5V]] – дает отрегулированные | * '''[[5V]]''' – дает отрегулированные 5 вольт от регулятора платы. Плату можно питать либо от [[DC-разъем]]а для питания (7-12 вольт), либо через [[USB-коннектор]] (5 вольт), либо через [[Vin]]-контакт (7-12 вольт). Подача напряжения через 5-вольтовый и 3,3-вольтовый контакты идет в обход регулятора и может повредить плату. Делать это не рекомендуется. | ||
* '''[[3V3]]''' – напряжение в 3,3 вольт, генерируемое встроенным регулятором платы. Максимальное потребление тока – 50 миллиампер. | |||
* '''[[GND]]''' – контакты для ''«земли»''. | |||
* [[IOREF]] – этот контакт является источником эталонного напряжения, необходимого для работы [[контроллер]]а. Правильно настроенный ''«[[шилд]]»'' может прочитать напряжение на этом контакте и выбрать нужный источник питания или включить на выходных устройствах преобразователи, позволяющие работать либо с | * '''[[IOREF]]''' – этот контакт является источником эталонного напряжения, необходимого для работы [[контроллер]]а. Правильно настроенный ''«[[шилд]]»'' может прочитать напряжение на этом контакте и выбрать нужный источник питания или включить на выходных устройствах преобразователи, позволяющие работать либо с 5, либо с 3,3 вольтами. | ||
==Память== | ==Память== | ||
Чип [[ATmega328]] | Чип [[ATmega328]] имеет 32 Кб памяти, из которой 0,5 Кб занято загрузчиком. Кроме того, на плате есть 2 Кб памяти [[SRAM]] и 1 Кб памяти [[EEPROM]] (запись и чтение с этой памяти осуществляется с помощью [[Arduino:Библиотеки/EEPROM|библиотеки EEPROM]]). | ||
==Входные и выходные контакты== | ==Входные и выходные контакты== | ||
Распиновку между контактами [[Arduino]] и портами [[ATmega328P]] | Распиновку между контактами [[Arduino]] и портами [[ATmega328P]] смотрите [[Media:atmega168328-arduinopinmapping.PNG|тут]]. Чипы [[ATmega8]], [[ATmega168]] и [[ATmega328]] имеют одну и ту же распиновку. | ||
Любой из | Любой из 14 цифровых контактов [[Uno]] можно использовать и как входной, и как выходной контакт – при помощи функций [[Arduino:Справочник языка Arduino/Функции/Цифровой ввод/вывод/pinMode()|pinMode()]], [[Arduino:Справочник языка Arduino/Функции/Цифровой ввод/вывод/digitalWrite()|digitalWrite()]] и [[Arduino:Справочник языка Arduino/Функции/Цифровой ввод/вывод/digitalRead()|digitalRead()]]. Они работают на 5 вольтах. Рекомендуется, чтобы каждый из этих контактов получал/отдавал не более 20 миллиампер. Кроме того, у каждого контакта имеется встроенный подтягивающий резистор на 20-50 кОм (по умолчанию отключен). Максимальная сила тока, которую можно использовать на контакте – это 40 миллиампер, т.к. если ее превысить, это может привести к необратимому повреждению микроконтроллера. | ||
Кроме того, у некоторых контактов есть специальные функции: | Кроме того, у некоторых контактов есть специальные функции: | ||
* '''Последовательная передача данных''': | * '''Последовательная передача данных''': 0-ой (RX) и 1-ый (TX) контакты. Используются для получения (RX) и передачи (TX) последовательных TTL-данных. Эти контакт подключены к соответствующим контактам на чипе , конвертирующем [[USB]]-данные в TTL-данные. | ||
* '''Внешние прерывания''': | * '''Внешние прерывания''': 2-ой и 3-ий контакты. Эти контакты можно настроить на запуск прерывания при переключении на значение [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], нарастающем/убывающем фронте импульса или изменении значения. Более подробно читайте в статье о [[Arduino:Справочник_языка_Arduino/Функции/Внешние_прерывания/attachInterrupt()|функции attachInterrupt()]]. | ||
* '''[[Интерфейс SPI]]''': | * '''[[Интерфейс SPI]]''': 10-ый ([[SS]]), 11-ый ([[MOSI]]), 12-ый ([[MISO]]) и 13-ый ([[SCK]]) контакты. Они поддерживают [[SPI-коммуникацию]] при помощи [[Arduino:Библиотеки/SPI|библиотеки SPI]]. | ||
* '''Встроенный [[светодиод]]''': | * '''Встроенный [[светодиод]]''': 13-ый контакт. Это [[светодиод]], по умолчанию встроенный в плату [[Arduino]] и управляемый 13-ым цифровым контактом. Если на этот контакт подано значение [[Arduino:Справочник языка Arduino/Константы/HIGH|HIGH]], то [[светодиод]] включится, а если [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], то выключится. | ||
* '''[[Интерфейс TWI]]''': | * '''[[Интерфейс TWI]]''': 4-ый ([[SDA]]) и 5-ый ([[SCL]]) аналоговые контакты. Они поддерживают [[TWI-коммуникацию]] при помощи [[Arduino:Библиотеки/Wire|библиотеки Wire]]. | ||
Плата [[Arduino Uno]] | Плата [[Arduino Uno]] также обладает 6 аналоговыми контактами, названными от A0 до A5 и имеющими 10-битное разрешение (т.е. они позволяют работать с данными в диапазоне от 1 до 1024). По умолчанию вольтовый диапазон составляет 0-5 вольт, однако верхнюю границу диапазона можно поменять при помощи контакта [[AREF]] и функции [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogReference()|analogReference()]]. | ||
Вот еще несколько специализированных контактов [[Arduino Uno]] | Вот еще несколько специализированных контактов [[Arduino Uno]]: | ||
* [[AREF]] – эталонное напряжение для входных аналоговых контактов. Используется с функцией [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogReference()|analogReference()]]. | * '''[[AREF]]''' – эталонное напряжение для входных аналоговых контактов. Используется с функцией [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogReference()|analogReference()]]. | ||
* [[RESET]] – если подать на эту линию сигнал [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], это выполнит сброс [[микроконтроллер]]а. Как правило, используется, когда к плате подключен ''«[[шилд]]»'', который блокирует кнопку сброса, имеющуюся на самой плате. | * '''[[RESET]]''' – если подать на эту линию сигнал [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], это выполнит сброс [[микроконтроллер]]а. Как правило, используется, когда к плате подключен ''«[[шилд]]»'', который блокирует кнопку сброса, имеющуюся на самой плате. | ||
==Коммуникация== | ==Коммуникация== | ||
На [[Arduino Uno]] | На [[Arduino Uno]] есть множество средств для коммуникации с [[компьютер]]ом, другими платами [[Arduino]] и другими [[микроконтроллер]]ами. Во-первых, чип [[ATmega328]] может общаться через последовательную коммуникацию [[UART TTL]] (5 вольт), доступную на 0-ом (RX) и 1-ом (TX) цифровых контактах. Чип [[ATmega16U2]] перенаправляет последовательную коммуникацию на [[USB]], а [[ПО]] на [[компьютер]]е видит его, как виртуальным [[COM-порт]]. Прошивка [[ATmega16U2]] использует стандартные [[USB]] [[COM]] драйверы, поэтому никаких внешних драйверов этому чипу не требуется. Однако на [[Windows]] понадобится [https://www.arduino.cc/en/Guide/Windows#toc4 файл формата *.inf]. В [[IDE Arduino]] есть монитор порта, позволяющий отправлять и получать от платы текстовые данные. При передаче данных через чип [[USB-Serial]] и [[USB]]-коммуникацию с [[компьютер]]ом (но не через последовательную коммуникацию на 0-ом и 1-ом контактах) на плате будут загораться [[светодиод]]ы RX и TX. | ||
[[Arduino:Библиотеки/SoftwareSerial|Библиотека SoftwareSerial]] позволяет настроить последовательную коммуникацию на любом из цифровых контактов [[Arduino Uno]] | [[Arduino:Библиотеки/SoftwareSerial|Библиотека SoftwareSerial]] позволяет настроить последовательную коммуникацию на любом из цифровых контактов [[Arduino Uno]]. | ||
Чип [[ATmega328]] | Чип [[ATmega328]] также поддерживает коммуникацию через интерфейсы [[I2C]] ([[TWI]]) и [[SPI]]. Чтобы упростить использование шины [[I2C]], [[IDE Arduino]] использует [[Arduino:Библиотеки/Wire|библиотеку Wire]]. Для коммуникации по [[SPI]] используется [[Arduino:Библиотеки/SPI|библиотека SPI]]. | ||
==Автоматический (программный) сброс== | ==Автоматический (программный) сброс== | ||
Если вы хотите загрузить на [[Arduino Uno]] | Если вы хотите загрузить на [[Arduino Uno]] новый [[скетч]], для этого необязательно нажимать кнопку сброса вручную. Эта модель устроена таким образом, что позволяет выполнить сброс при помощи [[ПО]], которое запущено на [[компьютер]]е, подключенном к [[Arduino]]. Линия [[DTR]] на [[ATmega8U2]]/[[ATmega16U2]], т.е. одна из аппаратных линий на чипе, отвечающих за управление потоками, через 100-нанофарадный конденсатор подключена к линии RESET на [[ATmega328]]. Когда эта линия получает значение [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], значение на линии [[RESET]] падает настолько, что этого хватает для сброса чипа. [[IDE Arduino]] использует эту возможность, чтобы позволить вам загружать код простым нажатием на кнопку загрузки, находящуюся на панели инструментов. Это значит, что у загрузчика будет более короткий таймаут, поскольку передачу на [[DTR]] значения [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]] можно привязать к началу загрузки. | ||
Эта система влияет на работу [[Uno]] | Эта система влияет на работу [[Uno]] и в другом. Когда [[Uno]] подключена к [[компьютер]]у на [[Mac OS X]] или [[Linux]], то сбрасывается каждый раз при настройке соединения между нею и программой (через [[USB]]). Следующие полсекунды на [[Uno]] выполняется запуск загрузчика. Хотя [[Uno]] запрограммирована на игнорирование дефектных данных (то есть всего, что не имеет отношение к загрузке нового кода), она все же перехватит несколько байт, отправленных ей после открытия соединения. Таким образом, если первом запуске скетча плата получает разовую конфигурацию или другие данные, сделайте так, чтобы программа, с которой он коммуницирует, перед отправкой этих данных подождала примерно секунду. | ||
На плате [[Uno]] | На плате [[Uno]] есть линия, обрезав которую, можно отключить автосброс. Чтобы снова его включить, нужно припаять друг к другу контактные площадки, находящиеся по обе стороны этой линии. Эта линия называется [[RESET-EN]]. Кроме того, автоматический сброс можно отключить, подключив 110-омовый [[резистор]]{{Admitad|Товар=Резистор}} между контактом 5V и линией [[RESET]]. Более подробно читайте в [http://forum.arduino.cc/index.php/topic,22974.0.html этом посте на форуме Arduino]. | ||
==Версии== | ==Версии== | ||
Плата [[Arduino Uno]] | Плата [[Arduino Uno]] ''версии 3.0'' имеет следующие функции: | ||
* | * Распиновка 1.0. Добавлены контакты [[SDA]] и [[SCL]], которые находятся рядом с контактом [[AREF]], два новых контакта, расположенных рядом с контактом [[RESET]], и контакт [[IOREF]], который позволяет ''«[[шилд]]у»'' адаптировать напряжение, идущее от платы. В будущем ''«[[шилд]]ы»'' будут совместимы и с платами на [[AVR]], которые работают на 5 вольтах, и с [[Arduino Due]], которая работает на 3,3 вольтах. Второй контакт ни к чему не подключен, он зарезервирован для использования в будущем. | ||
* Более стабильная [[RESET]]-цепь | * Более стабильная [[RESET]]-цепь | ||
* Вместо [[ATmega8U2]] | * Вместо [[ATmega8U2]] теперь стоит [[ATmega16U2]] | ||
=См.также= | =См.также= | ||
Строка 146: | Строка 154: | ||
<references /> | <references /> | ||
{{Навигационная таблица/ | {{Навигационная таблица/Портал/Arduino}} | ||
}} | |||
[[Категория:Продукты Arduino]] | |||
[[Категория:Arduino продукты]] | |||
[[Категория:Плата Arduino]] |
Текущая версия от 19:15, 1 января 2024
Содержание | Знакомство с 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 контакты – 14 (на 6 есть ШИМ)
- Цифровые I/O контакты с поддержкой ШИМ – 6
- Входные аналоговые контакты – 6
- Максимальная сила тока на один I/O контакт – 20 миллиампер
- Максимальная сила тока на контакт 3.3V – 50 миллиампер
- Flash-память – 32 Кб (ATmega328P), из которых 0,5 Кб используются загрузчиком
- SRAM – 2 Кб (ATmega328P)
- EEPROM – 1 Кб (ATmega328P)
- Тактовая частота – 16 МГц
- Встроенный светодиод (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 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Есть ссылки Admitad
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Продукты Arduino
- Arduino продукты
- Плата Arduino