Arduino:Продукты/Продукты Arduino/Плата Arduino Uno: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
(не показано 38 промежуточных версий 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]]'''{{Admitad|Товар=Arduino Uno}} – это микроконтроллерная плата на базе [[ATmega328P]]{{Admitad|Товар=ATmega328P}}. У нее 14 цифровых I/O контактов (из которых 6 можно использовать для выходной [[ШИМ]]), 6 входных аналоговых контактов, [[кварцевый кристалл]] на '''16 МГц''', [[USB]]-соединение, разъем для питания, [[ICSP-гребешок]] и кнопка сброса. Она оснащена всем, что необходимо для поддержки [[микроконтроллер]]а. То есть, чтобы начать, достаточно просто подключить ее к [[компьютер]]у (при помощи [[USB-кабеля]]) или запитать от адаптера, конвертирующего переменный ток в постоянный, или от батарейки. Работая с этой платой, можно почти не беспокоиться о том, что вы можете сделать что-то не так. В самом худшем случае вам надо будет просто поменять кристалл, который стоит всего несколько долларов, после чего можно будет снова приступить к работе.
Arduino Uno – это микроконтроллерная плата на базе [[ATmega328P]]. У нее 14 цифровых I/O контактов (из которых 6 можно использовать для выходной [[ШИМ]]), 6 входных аналоговых контактов, [[кварцевый кристалл]] на 16 МГц, [[USB]]-соединение, разъем для питания, [[ICSP-гребешок]] и кнопка сброса. Она оснащена всем, что необходимо для поддержки [[микроконтроллер]]а. То есть, чтобы начать, достаточно просто подключить ее к [[компьютер]]у (при помощи [[USB-кабеля]]) или запитать от адаптера, конвертирующего переменный ток в постоянный, или от батарейки. Работая с этой платой, можно почти не беспокоиться о том, что вы можете сделать что-то не так. В самом худшем случае вам надо будет просто поменять кристалл, который стоит всего несколько долларов, после чего можно будет снова приступить к работе.
   
   
«[[Uno]]»{{Admitad|Товар=Arduino Uno}} на итальянском значит ''«один»'', и это название было выбрано, чтобы обозначить релиз [[IDE Arduino 1.0]]. Модель [[Uno]]{{Admitad|Товар=Arduino Uno}} и [[IDE Arduino версии 1.0]] были базисными версиями [[Arduino]], за которыми последовали усовершенствованные версии. [[Плата Uno]]{{Admitad|Товар=Arduino Uno}} – первая из серии [[USB]]-плат [[Arduino]] и базисная модель платформы [[Arduino]]. Расширенный список действующих, старых и устаревших плат [[Arduino]] смотрите [https://www.arduino.cc/en/Main/Products здесь].
«[[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]]{{Admitad|Товар=Arduino Uno}} можно создать множество различных проектов, а руководства по их созданию можно найти [https://create.arduino.cc/projecthub/products/arduino-uno-genuino-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]]{{Admitad|Товар=ATmega328P}}
* '''[[Микроконтроллер]]''' – ATmega328P
* '''Рабочее напряжение''' – [[Рабочее напряжение::5 вольт]]
* '''Рабочее напряжение''' – 5 вольт
* '''Входное напряжение (рекомендуемое)''' – [[Входное напряжение (рекомендуемое)::7-12 вольт]]
* '''Входное напряжение (рекомендуемое)''' – 7-12 вольт
* '''Входное напряжение (лимит)''' – [[Входное напряжение (лимит)::6-20 вольт]]
* '''Входное напряжение (лимит)''' – 6-20 вольт
* '''Цифровые I/O контакты''' – [[Цифровые I/O контакты::14 (на 6 есть ШИМ)]]
* '''Цифровые I/O контакты''' – 14 (на 6 есть ШИМ)
* '''Цифровые I/O контакты с поддержкой ШИМ''' – [[Цифровые I/O контакты с поддержкой ШИМ::6]]
* '''Цифровые I/O контакты с поддержкой ШИМ''' – 6
* '''Входные аналоговые контакты''' – [[Входные аналоговые контакты::6]]
* '''Входные аналоговые контакты''' – 6
* '''Максимальная сила тока на один I/O контакт''' – [[Максимальная сила тока на один I/O контакт::20 миллиампер]]
* '''Максимальная сила тока на один I/O контакт''' – 20 миллиампер
* '''Максимальная сила тока на контакт 3.3V ''' – [[Максимальная сила тока на контакт 3.3V ::50 миллиампер]]
* '''Максимальная сила тока на контакт 3.3V''' – 50 миллиампер
* '''Flash-память''' – [[Flash-память::32 Кб (ATmega328P), из которых 0,5 Кб используются загрузчиком]]{{Admitad|Товар=ATmega328P}}
* '''[[Flash-память]]''' – 32 Кб (ATmega328P), из которых 0,5 Кб используются загрузчиком
* '''SRAM''' – [[SRAM::2 Кб (ATmega328P)]]{{Admitad|Товар=ATmega328P}}
* '''[[SRAM]]''' – 2 Кб (ATmega328P)
* '''EEPROM''' – [[EEPROM::1 Кб (ATmega328P)]]{{Admitad|Товар=ATmega328P}}
* '''[[EEPROM]]''' – 1 Кб (ATmega328P)
* '''Тактовая частота''' – [[Тактовая частота::16 МГц]]
* '''Тактовая частота''' – 16 МГц
* '''Встроенный светодиод ([[Arduino:Справочник языка Arduino/Константы/LED BUILTIN|LED_BUILTIN]])''' [[Встроенный светодиод (LED_BUILTIN)::13-ый]]
* '''Встроенный [[светодиод]]''' ([[Arduino:Справочник языка Arduino/Константы/LED BUILTIN|LED_BUILTIN]]) – 13-ый
* '''Длина''' – [[Длина::68,6 мм.]]
* '''Длина''' – 68,6 мм.
* '''Ширина''' – [[Ширина::53,4 мм.]]
* '''Ширина''' – 53,4 мм.
* '''Вес''' –  [[Вес::25 грамм]]
* '''Вес''' –  25 грамм
 
==Распиновка==
 
[[File:arduino_uno_pinout1.jpg|center]]


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


[[Arduino Uno]]{{Admitad|Товар=Arduino Uno}} – это устройство, распространяемое по принципу ''«[[open-source]]»''. Вы можете создать собственную плату, используя следующие файлы:
[[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]]{{Admitad|Товар=Arduino Uno}} можно программировать через [[IDE Arduino]] (среду разработки [[Arduino]]). Зайдите в нее, а потом кликните на '''Инструменты > Плата > Arduino/Genuino Uno (Tools > Board > Arduino/Genuino Uno)''', чтобы [[IDE Arduino]] понимала, с каким [[микроконтроллер]]ом ей придется иметь дело. О языке программирования [[Arduino]] читайте [[Arduino:Справочник_языка_Arduino|тут]], а о руководствах – [[Arduino:Примеры|тут]].
Плату [[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]] на 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] или похожее устройство. Более подробно читайте [https://www.arduino.cc/en/Hacking/Programmer тут].
Впрочем, загрузчик можно обойти и программировать [[микроконтроллер]] при помощи [[ICSP-коннектор]]а, использующего [https://www.arduino.cc/en/Main/ArduinoISP Arduino ISP] или похожее устройство. Более подробно читайте [[Arduino:Хакинг/Программатор|тут]].


На репозитории [[Arduino]] можно скачать прошивку для [[ATmega16U2]]{{Admitad|Товар=ATmega16U2}} (или [[8U2|ATmega8U2]]{{Admitad|Товар=ATmega8U2}} для плат '''rev1''' и '''rev2'''). Чип [[ATmega16U2]]{{Admitad|Товар=ATmega16U2}}/[[8U2|ATmega8U2]]{{Admitad|Товар=ATmega8U2}} загружается с помощью загрузчика [[DFU]], который можно активировать:  
На репозитории [[Arduino]] можно скачать прошивку для [[ATmega16U2]](или [[8U2|ATmega8U2]] для плат rev1 и rev2). Чип [[ATmega16U2]]/[[8U2|ATmega8U2]] загружается с помощью загрузчика [[DFU]], который можно активировать:  
* '''На платах rev1''': припаяв перемычку на задней стороне платы (рядом с картой [[Италии]]), а затем сбросив [[8U2|ATmega8U2]]{{Admitad|Товар=ATmega8U2}}
* '''На платах rev1:''' припаяв перемычку на задней стороне платы (рядом с картой [[Италии]]), а затем сбросив [[8U2|ATmega8U2]]
* '''На платах rev2 и новее''': при помощи [[резистор]]а притянув линию '''HWB''' (от '''«hardware bootloader»''', что значит ''«аппаратный загрузчик»'') на [[ATmega16U2]]]{{Admitad|Товар=ATmega16U2}}/[[8U2|ATmega8U2]]{{Admitad|Товар=ATmega8U2}} к '''«земле»''', тем самым упрощая переход в режим '''DFU'''
* '''На платах rev2 и новее:''' при помощи [[резистор]]а притянув линию HWB (от ''«hardware bootloader»'', что значит ''«аппаратный загрузчик»'') на [[ATmega16U2]]]/[[8U2|ATmega8U2]] к ''«земле»'', тем самым упрощая переход в режим DFU.


Чтобы загрузить новую прошивку, можно воспользоваться либо [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 этом пользовательском руководстве].
Чтобы загрузить новую прошивку, можно воспользоваться либо [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]]{{Admitad|Товар=Arduino Uno}} оснащена восстанавливаемым предохранителем, защищающим [[USB-порт]]ы вашего [[компьютер]]а от коротких замыканий и энергетических перегрузок. Хотя у [[компьютер]]ов, как правило, есть собственная защита от этих напастей, предохранитель на [[Uno]]{{Admitad|Товар=Arduino Uno}} добавляет этой защите еще один слой. Если сила тока на [[USB-порт]] превысит '''500 миллиампер''', предохранитель автоматически прервет соединение, пока короткое замыкание или перегрузка не будут устранены.
Модель [[Arduino Uno]]/[[Genuino Uno]] оснащена восстанавливаемым предохранителем, защищающим [[USB-порт]]ы вашего [[компьютер]]а от коротких замыканий и энергетических перегрузок. Хотя у [[компьютер]]ов, как правило, есть собственная защита от этих напастей, [[предохранитель]] на [[Uno]] добавляет этой защите еще один слой. Если сила тока на [[USB-порт]] превысит 500 миллиампер, [[предохранитель]] автоматически прервет соединение, пока короткое замыкание или перегрузка не будут устранены.


==Отличия от других плат==
==Отличия от других плат==


Модель [[Uno]]{{Admitad|Товар=Arduino Uno}} отличается от предшественников в том, что не использует чип для [[FTDI-драйвер]]а, конвертирующий [[USB]] в последовательные данные. Вместо этого он использует [[ATmega16U2]]{{Admitad|Товар=ATmega16U2}} (или [[ATmega8U2]]{{Admitad|Товар=ATmega8U2}} на версиях '''до rev2'''), запрограммированный как устройство, конвертирующее [[USB]] в последовательные данные.
Модель [[Uno]] отличается от предшественников в том, что не использует чип для [[FTDI-драйвер]]а, конвертирующий [[USB]] в последовательные данные. Вместо этого он использует [[ATmega16U2]] (или [[ATmega8U2]] на версиях до rev2), запрограммированный как устройство, конвертирующее [[USB]] в последовательные данные.


==Питание==
==Питание==


Плату [[Arduino Uno]]{{Admitad|Товар=Arduino Uno}} можно запитать через [[USB]]-соединение или внешний источник питания. Источник питания выбирается автоматически.
Плату [[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 вольт'''.  
Плата может работать от внешнего источника питания, дающего напряжение 6-20 вольт.  Впрочем, если на плату будет подаваться менее 7 вольт, то 5-вольтовый контакт, возможно, будет получать менее 5 вольт, из-за чего работа платы может быть нестабильной. Но если подать на плату более 12 вольт, регулятор напряжения может перегреться и повредить плату. Поэтому мы рекомендуем подавать на плату от 7 до 12 вольт.  


Контакты коннектора [[POWER]] (т.е. коннектора, через который на плату подается питание):
Контакты коннектора [[POWER]] (т.е. коннектора, через который на плату подается питание):
* [[Vin]] – контакт для подачи на [[Arduino Uno]]{{Admitad|Товар=Arduino Uno}} входного напряжения, когда используется внешний источник питания (в противовес '''5 вольтам''' от [[USB]]-соединения или другого регулированного источника питания). Вы можете подать напряжение на этот контакт напрямую, либо через разъем для питания, который имеет доступ к этому контакту.
* '''[[Vin]]''' – контакт для подачи на [[Arduino Uno]] входного напряжения, когда используется внешний источник питания (в противовес 5 вольтам от [[USB]]-соединения или другого регулированного источника питания). Вы можете подать напряжение на этот контакт напрямую, либо через разъем для питания, который имеет доступ к этому контакту.
* [[5V]] – дает отрегулированные '''5 вольт''' от регулятора платы. Плату можно питать либо от [[DC-разъем]]а для питания ('''7-12 вольт'''), либо через [[USB-коннектор]] ('''5 вольт'''), либо через [[Vin]]-контакт ('''7-12 вольт'''). Подача напряжения через '''5-вольтовый''' и '''3,3-вольтовый контакты''' идет в обход регулятора и может повредить плату. Делать это не рекомендуется.
* '''[[5V]]''' – дает отрегулированные 5 вольт от регулятора платы. Плату можно питать либо от [[DC-разъем]]а для питания (7-12 вольт), либо через [[USB-коннектор]] (5 вольт), либо через [[Vin]]-контакт (7-12 вольт). Подача напряжения через 5-вольтовый и 3,3-вольтовый контакты идет в обход регулятора и может повредить плату. Делать это не рекомендуется.
* [[3V3]] – напряжение в '''3,3 вольт''', генерируемое встроенным регулятором платы. Максимальное потребление тока – '''50 миллиампер'''.
* '''[[3V3]]''' – напряжение в 3,3 вольт, генерируемое встроенным регулятором платы. Максимальное потребление тока – 50 миллиампер.
* [[GND]] – контакты для ''«земли»''.
* '''[[GND]]''' – контакты для ''«земли»''.
* [[IOREF]] – этот контакт является источником эталонного напряжения, необходимого для работы [[контроллер]]а. Правильно настроенный ''«[[шилд]]»'' может прочитать напряжение на этом контакте и выбрать нужный источник питания или включить на выходных устройствах преобразователи, позволяющие работать либо с '''5''', либо с '''3,3 вольтами'''.
* '''[[IOREF]]''' – этот контакт является источником эталонного напряжения, необходимого для работы [[контроллер]]а. Правильно настроенный ''«[[шилд]]»'' может прочитать напряжение на этом контакте и выбрать нужный источник питания или включить на выходных устройствах преобразователи, позволяющие работать либо с 5, либо с 3,3 вольтами.


==Память==
==Память==


Чип [[ATmega328]]{{Admitad|Товар=ATmega328}} имеет '''32 Кб''' памяти, из которой '''0,5 Кб''' занято загрузчиком. Кроме того, на плате есть '''2 Кб''' памяти [[SRAM]] и '''1 Кб''' памяти [[EEPROM]] (запись и чтение с этой памяти осуществляется с помощью [[Arduino:Библиотеки/EEPROM|библиотеки EEPROM]]).
Чип [[ATmega328]] имеет 32 Кб памяти, из которой 0,5 Кб занято загрузчиком. Кроме того, на плате есть 2 Кб памяти [[SRAM]] и 1 Кб памяти [[EEPROM]] (запись и чтение с этой памяти осуществляется с помощью [[Arduino:Библиотеки/EEPROM|библиотеки EEPROM]]).


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


Распиновку между контактами [[Arduino]] и портами [[ATmega328P]]{{Admitad|Товар=ATmega328P}} смотрите [[Media:atmega168328-arduinopinmapping.PNG|тут]]. Чипы [[ATmega8]]{{Admitad|Товар=ATmega8}}, [[ATmega168]]{{Admitad|Товар=ATmega168}} и [[ATmega328]]{{Admitad|Товар=ATmega328}} имеют одну и ту же распиновку.
Распиновку между контактами [[Arduino]] и портами [[ATmega328P]] смотрите [[Media:atmega168328-arduinopinmapping.PNG|тут]]. Чипы [[ATmega8]], [[ATmega168]] и [[ATmega328]] имеют одну и ту же распиновку.


Любой из '''14''' цифровых контактов [[Uno]]{{Admitad|Товар=Arduino Uno}} можно использовать и как входной, и как выходной контакт – при помощи функций [[Arduino:Справочник языка Arduino/Функции/Цифровой ввод/вывод/pinMode()|pinMode()]], [[Arduino:Справочник языка Arduino/Функции/Цифровой ввод/вывод/digitalWrite()|digitalWrite()]] и [[Arduino:Справочник языка Arduino/Функции/Цифровой ввод/вывод/digitalRead()|digitalRead()]]. Они работают на '''5 вольтах'''. Рекомендуется, чтобы каждый из этих контактов получал/отдавал '''не более 20 миллиампер'''. Кроме того, у каждого контакта имеется встроенный подтягивающий резистор '''на 20-50 кОм''' (по умолчанию отключен). Максимальная сила тока, которую можно использовать на контакте – это '''40 миллиампер''', т.к. если ее превысить, это может привести к необратимому повреждению микроконтроллера.
Любой из 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'''-данных. Эти контакт подключены к соответствующим контактам на чипе {{Admitad|Товар=ATmega8U2}}, конвертирующем [[USB]]-данные в '''TTL'''-данные.
* '''Последовательная передача данных''': 0-ой (RX) и 1-ый (TX) контакты. Используются для получения (RX) и передачи (TX) последовательных TTL-данных. Эти контакт подключены к соответствующим контактам на чипе , конвертирующем [[USB]]-данные в TTL-данные.
* '''Внешние прерывания''': '''2-ой''' и '''3-ий''' контакты. Эти контакты можно настроить на запуск прерывания при переключении на значение [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], нарастающем/убывающем фронте импульса или изменении значения. Более подробно читайте в статье о [[Arduino:Справочник_языка_Arduino/Функции/Внешние_прерывания/attachInterrupt()|функции attachInterrupt()]].
* '''Внешние прерывания''': 2-ой и 3-ий контакты. Эти контакты можно настроить на запуск прерывания при переключении на значение [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], нарастающем/убывающем фронте импульса или изменении значения. Более подробно читайте в статье о [[Arduino:Справочник_языка_Arduino/Функции/Внешние_прерывания/attachInterrupt()|функции attachInterrupt()]].
* '''[[Интерфейс SPI]]''': '''10-ый ([[SS]])''', '''11-ый ([[MOSI]])''', '''12-ый ([[MISO]])''' и '''13-ый ([[SCK]])''' контакты. Они поддерживают [[SPI-коммуникацию]] при помощи [[Arduino:Библиотеки/SPI|библиотеки 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]], то выключится.
* '''Встроенный [[светодиод]]''': 13-ый контакт. Это [[светодиод]], по умолчанию встроенный в плату [[Arduino]] и управляемый 13-ым цифровым контактом. Если на этот контакт подано значение [[Arduino:Справочник языка Arduino/Константы/HIGH|HIGH]], то [[светодиод]] включится, а если [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], то выключится.
* '''[[Интерфейс TWI]]''': '''4-ый (SDA)''' и '''5-ый (SCL)''' аналоговые контакты. Они поддерживают [[TWI-коммуникацию]] при помощи [[Arduino:Библиотеки/Wire|библиотеки Wire]].  
* '''[[Интерфейс TWI]]''': 4-ый ([[SDA]]) и 5-ый ([[SCL]]) аналоговые контакты. Они поддерживают [[TWI-коммуникацию]] при помощи [[Arduino:Библиотеки/Wire|библиотеки Wire]].  


Плата [[Arduino Uno]]{{Admitad|Товар=Arduino Uno}} также обладает 6 аналоговыми контактами, названными '''от A0 до A5''' и имеющими '''10-битное разрешение''' (т.е. они позволяют работать с данными в диапазоне '''от 1 до 1024'''). По умолчанию вольтовый диапазон составляет '''0-5 вольт''', однако верхнюю границу диапазона можно поменять при помощи контакта [[AREF]] и функции [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogReference()|analogReference()]].
Плата [[Arduino Uno]] также обладает 6 аналоговыми контактами, названными от A0 до A5 и имеющими 10-битное разрешение (т.е. они позволяют работать с данными в диапазоне от 1 до 1024). По умолчанию вольтовый диапазон составляет 0-5 вольт, однако верхнюю границу диапазона можно поменять при помощи контакта [[AREF]] и функции [[Arduino:Справочник языка Arduino/Функции/Аналоговый ввод/вывод/analogReference()|analogReference()]].


Вот еще несколько специализированных контактов [[Arduino Uno]]{{Admitad|Товар=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]]{{Admitad|Товар=Arduino Uno}} есть множество средств для коммуникации с [[компьютер]]ом, другими платами [[Arduino]] и другими [[микроконтроллер]]ами. Во-первых, чип [[ATmega328]]{{Admitad|Товар=ATmega328}} может общаться через последовательную коммуникацию '''[[UART TTL]] (5 вольт)''', доступную на '''0-ом (RX)''' и '''1-ом (TX)''' цифровых контактах. Чип [[ATmega16U2]]{{Admitad|Товар=ATmega16U2}} перенаправляет последовательную коммуникацию на [[USB]], а [[ПО]] на [[компьютер]]е видит его, как виртуальным [[COM-порт]]. Прошивка [[ATmega16U2]]{{Admitad|Товар=ATmega16U2}} использует стандартные [[USB]] [[COM]] драйверы, поэтому никаких внешних драйверов этому чипу не требуется. Однако на [[Windows]] понадобится [https://www.arduino.cc/en/Guide/Windows#toc4 файл формата *.inf]. В [[IDE Arduino]] есть монитор порта, позволяющий отправлять и получать от платы текстовые данные. При передаче данных через чип [[USB-Serial]] и [[USB]]-коммуникацию с [[компьютер]]ом (но не через последовательную коммуникацию на '''0-ом''' и '''1-ом''' контактах) на плате будут загораться [[светодиод]]ы '''RX''' и '''TX'''.
На [[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]]{{Admitad|Товар=Arduino Uno}}.
[[Arduino:Библиотеки/SoftwareSerial|Библиотека SoftwareSerial]] позволяет настроить последовательную коммуникацию на любом из цифровых контактов [[Arduino Uno]].


Чип [[ATmega328]]{{Admitad|Товар=ATmega328}} также поддерживает коммуникацию через интерфейсы [[I2C]] ([[TWI]]) и [[SPI]]. Чтобы упростить использование шины [[I2C]], [[IDE Arduino]] использует [[Arduino:Библиотеки/Wire|библиотеку Wire]]. Для коммуникации по [[SPI]] используется [[Arduino:Библиотеки/SPI|библиотека SPI]].
Чип [[ATmega328]] также поддерживает коммуникацию через интерфейсы [[I2C]] ([[TWI]]) и [[SPI]]. Чтобы упростить использование шины [[I2C]], [[IDE Arduino]] использует [[Arduino:Библиотеки/Wire|библиотеку Wire]]. Для коммуникации по [[SPI]] используется [[Arduino:Библиотеки/SPI|библиотека SPI]].


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


Если вы хотите загрузить на [[Arduino Uno]]{{Admitad|Товар=Arduino Uno}} новый [[скетч]], для этого необязательно нажимать кнопку сброса вручную. Эта модель устроена таким образом, что позволяет выполнить сброс при помощи [[ПО]], которое запущено на [[компьютер]]е, подключенном к [[Arduino]]. Линия [[DTR]] на [[ATmega8U2]]{{Admitad|Товар=ATmega8U2}}/[[ATmega16U2]]{{Admitad|Товар=ATmega8U2}}, т.е. одна из аппаратных линий на чипе, отвечающих за управление потоками, через '''100-нанофарадный конденсатор''' подключена к линии '''RESET''' на [[ATmega328]]. Когда эта линия получает значение [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], значение на линии [[RESET]] падает настолько, что этого хватает для сброса чипа. [[IDE Arduino]] использует эту возможность, чтобы позволить вам загружать код простым нажатием на кнопку загрузки, находящуюся на панели инструментов. Это значит, что у загрузчика будет более короткий таймаут, поскольку передачу на [[DTR]] значения [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]] можно привязать к началу загрузки.
Если вы хотите загрузить на [[Arduino Uno]] новый [[скетч]], для этого необязательно нажимать кнопку сброса вручную. Эта модель устроена таким образом, что позволяет выполнить сброс при помощи [[ПО]], которое запущено на [[компьютер]]е, подключенном к [[Arduino]]. Линия [[DTR]] на [[ATmega8U2]]/[[ATmega16U2]], т.е. одна из аппаратных линий на чипе, отвечающих за управление потоками, через 100-нанофарадный конденсатор подключена к линии RESET на [[ATmega328]]. Когда эта линия получает значение [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], значение на линии [[RESET]] падает настолько, что этого хватает для сброса чипа. [[IDE Arduino]] использует эту возможность, чтобы позволить вам загружать код простым нажатием на кнопку загрузки, находящуюся на панели инструментов. Это значит, что у загрузчика будет более короткий таймаут, поскольку передачу на [[DTR]] значения [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]] можно привязать к началу загрузки.


Эта система влияет на работу [[Uno]]{{Admitad|Товар=Arduino Uno}} и в другом. Когда [[Uno]] подключена к [[компьютер]]у на [[Mac OS X]] или [[Linux]], то сбрасывается каждый раз при настройке соединения между нею и программой (через [[USB]]). Следующие полсекунды на [[Uno]]{{Admitad|Товар=Arduino Uno}} выполняется запуск загрузчика. Хотя [[Uno]]{{Admitad|Товар=Arduino Uno}} запрограммирована на игнорирование дефектных данных (то есть всего, что не имеет отношение к загрузке нового кода), она все же перехватит несколько байт, отправленных ей после открытия соединения. Таким образом, если первом запуске скетча плата получает разовую конфигурацию или другие данные, сделайте так, чтобы программа, с которой он коммуницирует, перед отправкой этих данных подождала примерно секунду.  
Эта система влияет на работу [[Uno]] и в другом. Когда [[Uno]] подключена к [[компьютер]]у на [[Mac OS X]] или [[Linux]], то сбрасывается каждый раз при настройке соединения между нею и программой (через [[USB]]). Следующие полсекунды на [[Uno]] выполняется запуск загрузчика. Хотя [[Uno]] запрограммирована на игнорирование дефектных данных (то есть всего, что не имеет отношение к загрузке нового кода), она все же перехватит несколько байт, отправленных ей после открытия соединения. Таким образом, если первом запуске скетча плата получает разовую конфигурацию или другие данные, сделайте так, чтобы программа, с которой он коммуницирует, перед отправкой этих данных подождала примерно секунду.  


На плате [[Uno]]{{Admitad|Товар=Arduino Uno}} есть линия, обрезав которую, можно отключить автосброс. Чтобы снова его включить, нужно припаять друг к другу контактные площадки, находящиеся по обе стороны этой линии. Эта линия называется [[RESET-EN]]. Кроме того, автоматический сброс можно отключить, подключив '''110-омовый [[резистор]]''' между контактом '''5V''' и линией [[RESET]]. Более подробно читайте в [http://forum.arduino.cc/index.php/topic,22974.0.html этом посте на форуме Arduino].
На плате [[Uno]] есть линия, обрезав которую, можно отключить автосброс. Чтобы снова его включить, нужно припаять друг к другу контактные площадки, находящиеся по обе стороны этой линии. Эта линия называется [[RESET-EN]]. Кроме того, автоматический сброс можно отключить, подключив 110-омовый [[резистор]]{{Admitad|Товар=Резистор}} между контактом 5V и линией [[RESET]]. Более подробно читайте в [http://forum.arduino.cc/index.php/topic,22974.0.html этом посте на форуме Arduino].


==Версии==
==Версии==


Плата [[Arduino Uno]]{{Admitad|Товар=Arduino Uno}} ''версии 3.0'' имеет следующие функции:
Плата [[Arduino Uno]] ''версии 3.0'' имеет следующие функции:
* '''Распиновка 1.0.''' Добавлены контакты [[SDA]] и [[SCL]], которые находятся рядом с контактом [[AREF]], два новых контакта, расположенных рядом с контактом [[RESET]], и контакт [[IOREF]], который позволяет ''«[[шилд]]у»'' адаптировать напряжение, идущее от платы. В будущем ''«[[шилд]]ы»'' будут совместимы и с платами на [[AVR]], которые работают на '''5 вольтах''', и с [[Arduino Due]]{{Admitad|Товар=Arduino Due}}, которая работает на '''3,3 вольтах'''. Второй контакт ни к чему не подключен, он зарезервирован для использования в будущем.
* Распиновка 1.0. Добавлены контакты [[SDA]] и [[SCL]], которые находятся рядом с контактом [[AREF]], два новых контакта, расположенных рядом с контактом [[RESET]], и контакт [[IOREF]], который позволяет ''«[[шилд]]у»'' адаптировать напряжение, идущее от платы. В будущем ''«[[шилд]]ы»'' будут совместимы и с платами на [[AVR]], которые работают на 5 вольтах, и с [[Arduino Due]], которая работает на 3,3 вольтах. Второй контакт ни к чему не подключен, он зарезервирован для использования в будущем.
* Более стабильная [[RESET]]-цепь  
* Более стабильная [[RESET]]-цепь  
* Вместо [[ATmega8U2]]{{Admitad|Товар=ATmega8U2}} теперь стоит [[ATmega16U2]]{{Admitad|Товар=ATmega8U2}}
* Вместо [[ATmega8U2]] теперь стоит [[ATmega16U2]]


=См.также=
=См.также=
Строка 146: Строка 154:
<references />
<references />


{{Навигационная таблица/Arduino продукты}}
{{Навигационная таблица/Портал/Arduino}}
{{SEO
|Заголовок статьи=Плата Arduino Uno / Онлайн справочник - wikihandbk.com
|Ключевые слова=arduino uno, плата arduino uno, фквгштщ гтщ, описание arduino uno, характеристики arduino uno, uno, характеристики uno, гтщ
|Описание статьи=Arduino Uno – это микроконтроллерная плата на базе ATmega328P. У нее 14 цифровых I/O контактов (из которых 6 можно использовать для выходной ШИМ), 6 входных аналоговых контактов, кварцевый кристалл на 16 МГц, USB-соединение, разъем для питания, ICSP-гребешок и кнопка сброса. Она оснащена всем, что необходимо для поддержки микроконтроллера. То есть, чтобы начать, достаточно просто подключить ее к компьютеру (при помощи USB-кабеля) или запитать от адаптера, конвертирующего переменный ток в постоянный, или от батарейки. Работая с этой платой, можно почти не беспокоиться о том, что вы можете сделать что-то не так. В самом худшем случае вам надо будет просто поменять кристалл, который стоит всего несколько долларов, после чего можно будет снова приступить к работе.
|Изображение статьи для Open Graph=http://wikihandbk.com/ruwiki/images/c/c6/A000066_iso_both.jpg
|Адрес страницы для schemaNewsArticle=<nowiki>http://wikihandbk.com/wiki/Arduino:Продукты/Продукты Arduino/Плата Arduino Uno</nowiki>
|Изображение статьи для schemaNewsArticle=<nowiki>http://wikihandbk.com/ruwiki/images/c/c6/A000066_iso_both.jpg</nowiki>
|Высота изображения статьи для schemaNewsArticle=534
|Ширина изображения статьи для schemaNewsArticle=800
|Дата публикации для schemaNewsArticle=2016-10-23
|Автор=Мякишев Е.А.
|Издатель=myagkij
|Логотип издателя для schemaNewsArticle=<nowiki>http://wikihandbk.com/ruwiki/images/6/61/Tech_geek_logo_1x.jpg</nowiki>
|Ширина логотипа издателя для schemaNewsArticle=60
|Высота логотипа издателя для schemaNewsArticle=45
}}
{{ИнфоОСтр
|Название=Плата Arduino Uno
|Метки=Arduino Uno, arduino uno, uno, плата arduino uno, плата uno, Плата Arduino Uno, плата Arduino Uno, плата arduino Uno, плата arduino uno, фквгштщ гтщ, гтщ, Плата Uno
|Описание=
[[File:A000066_iso_both.jpg|center]]


'''[[Название платы::Arduino Uno]]'''{{Admitad|Товар=Arduino Uno}} – это микроконтроллерная плата на базе [[ATmega328P]]{{Admitad|Товар=ATmega328P}}. У нее 14 цифровых I/O контактов (из которых 6 можно использовать для выходной [[ШИМ]]), 6 входных аналоговых контактов, кварцевый кристалл на '''16 МГц''', '''USB'''-соединение, разъем для питания, [[ICSP-гребешок]] и кнопка сброса. Она оснащена всем, что необходимо для поддержки микроконтроллера. То есть, чтобы начать, достаточно просто подключить ее к компьютеру (при помощи '''USB'''-кабеля) или запитать от адаптера, конвертирующего переменный ток в постоянный, или от батарейки. Работая с этой платой, можно почти не беспокоиться о том, что вы можете сделать что-то не так. В самом худшем случае вам надо будет просто поменять кристалл, который стоит всего несколько долларов, после чего можно будет снова приступить к работе.
[[Категория:Продукты Arduino]]
}}
[[Категория:Arduino продукты]]
[[Категория:Плата Arduino]]

Текущая версия от 19:15, 1 января 2024

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


Рис. 1. Фото плат Arduino Uno и Genuino Uno
Рис. 1. Фото плат Arduino Uno и Genuino Uno

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 (Купить Arduino Uno на Aliexpress)

С чего начать

На базе 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

См.также

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