Руководство ардуино уно

Arduino Uno — флагманская платформа для разработки на языке программирования С++.

Uno выполнена на микроконтроллере ATmega328P с тактовой частотой 16 МГц. На плате предусмотрены 20 портов входа-выхода для подключения внешних устройств, например плат расширения или датчиков.

Видеообзор

Подключение и настройка

Шаг 1

Подключите плату к компьютеру по USB. Для коммуникации используйте кабель USB (A — B).

Шаг 2

Установите и настройте интегрированную среду разработки Arduino IDE.

Что-то пошло не так?

Пример работы

В качестве примера повторим первый эксперимент «Маячок» из набора Матрёшка. На плате уже есть встроенный пользовательский светодиод L, подключенный к 13 пину микроконтроллера.

blink.ino
void setup() {
  // Устанавливаем пин светодиода в режим выхода.
  // Используем определение LED_BUILTIN,
  // которое содержит в себе пин светодиода
  pinMode(LED_BUILTIN, OUTPUT);
}
 
void loop() {
  // Включаем светодиод
  digitalWrite(LED_BUILTIN, HIGH);
  // Ждём пол секунды
  delay(500);
  // Выключаем светодиод                       
  digitalWrite(LED_BUILTIN, LOW);
  // Ждём пол секунды   
  delay(1000);                       
}

После загрузки программы встроенный светодиод L начнёт мигать раз в секунду.

Это значит, всё получилось, и можно смело переходить к другим экспериментам на Ардуино.

Элементы платы

Микроконтроллер ATmega328P

Сердцем платформы Arduino Uno является 8-битный микроконтроллер фирмы Microchip — ATmega328P на архитектуре AVR с тактовой частотой 16 МГц.
Контроллер обладает тремя видами памяти:

  • 32 КБ Flash-памяти, из которых 0,5 КБ используются загрузчиком, который позволяет прошивать Uno с обычного компьютера через USB. Flash-память постоянна и её предназначение — хранение программ и сопутствующих статичных ресурсов.

  • 2 КБ RAM-памяти, которые предназначены для хранения временных данных, например переменных программы. По сути, это оперативная память платформы. RAM-память энергозависимая, при выключении питания все данные сотрутся.

  • 1 КБ энергонезависимой EEPROM-памяти для долговременного хранения данных, которые не стираются при выключении контроллера. По своему назначению это аналог жёсткого диска для Uno.

Микроконтроллер ATmega16U2

Микроконтроллер ATmega328P не содержит USB интерфейса, поэтому для прошивки и коммуникации с ПК на плате присутствует дополнительный микроконтроллер ATmega16U2 с прошивкой USB-UART преобразователя. При подключении к ПК Arduino Uno определяется как виртуальный COM-порт.

Микроконтроллер ATmega328P общается с ПК через сопроцессор ATmega16U2 по интерфейсу UART используя сигналы RX и TX, которые параллельно выведены на контакты 0 и 1 платы Uno. Во время прошивки и отладки программы, не используйте эти пины в своём проекте.

Светодиодная индикация

Имя светодиода Назначение
ON Индикатор питания платформы.
L Пользовательский светодиод на 13 пине микроконтроллера. Используйте определение LED_BUILTIN для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.
RX и TX Мигают при прошивке и обмене данными между Uno и компьютером. А также при использовании пинов 0 и 1.

Порт USB Type-B

Разъём USB Type-B предназначен для прошивки и питания платформы Arduino. Для подключения к ПК понадобится кабель USB (A — B).

Разъём питания DC

Коннектор DC Barrel Jack для подключения внешнего источника напряжения в диапазоне от 7 до 12 вольт.

Понижающий регулятор 5V

Понижающий линейный преобразователь NCP1117ST50T3G обеспечивает питание микроконтроллера и другой логики платы при подключении питания через разъём питания DC или пин Vin. Диапазон входного напряжения от 7 до 12 вольт. Выходное напряжение 5 В с максимальным выходным током 1 А.

Понижающий регулятор 3V3

Понижающий линейный преобразователь LP2985-33DBVR обеспечивает напряжение на пине 3V3. Регулятор принимает входное напряжение от линии 5 вольт и выдаёт напряжение 3,3 В с максимальным выходным током 150 мА.

Кнопка сброса

Кнопка предназначена для ручного сброса прошивки — аналог кнопки RESET обычного компьютера.

ICSP-разъём ATmega328P

ICSP-разъём выполняет две полезные функции:

  1. Используется для передачи сигнальных пинов интерфейса SPI при подключении Arduino Shield’ов или других плат расширения. Линии ICSP-разъёма также продублированы на цифровых пинах SS/10, MOSI/11, MISO/12 и SCK/13.

  2. Предназначен для загрузки прошивки в микроконтроллер ATmega328P через внешний программатор. Одна из таких прошивок — Bootloader для Arduino Uno, который позволяет прошивать платформу по USB.

А подробности распиновки читайте в соответствующем разделе.

ICSP-разъём ATmega16U2

ICSP-разъём предназначен для программирования микроконтроллера ATmega16U2. А подробности распиновки читайте в соответствующем разделе.

Распиновка

Пины питания

  • VIN: Входной пин для подключения внешнего источника напряжения в диапазоне от 7 до 12 вольт.

  • 5V: Выходной пин от стабилизатора напряжения с выходом 5 вольт и максимальным током 1 А. Регулятор обеспечивает питание микроконтроллера и другой обвязки платы.

  • 3V3: Выходной пин от стабилизатора напряжения с выходом 3,3 вольта и максимальным током 150 мА.

  • IOREF: Вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В нашем случае рабочее напряжение платформы 5 вольт.

  • AREF: Пин для подключения внешнего опорного напряжения АЦП относительно которого происходят аналоговые измерения при использовании функции analogReference() с параметром «EXTERNAL».

  • GND: Выводы земли.

Порты ввода/вывода

  • Пины общего назначения: 20 пинов: 019
    Логический уровень единицы — 5 В, нуля — 0 В. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.

  • АЦП: 6 пинов: 1419 / A0A5
    Позволяет представить аналоговое напряжение в виде цифровом виде. Разрядность АЦП не меняется и установлена в 10 бит. Диапазон входного напряжения от 0 до 5 В, при подаче большего напряжения микроконтроллер может выйти из строя.

  • ШИМ: 6 пинов: 3, 5, 6 и 911
    Позволяет выводить аналоговое напряжение в виде ШИМ-сигнала из цифровых значений. Разрядность ШИМ не меняется и установлена в 8 бит.

    • I²C: пины SDA/18/A4 и SCL0/19/A5

    • SPI: пины MOSI/11, MISO/12 и SCK/13

    • Serial: пины TX1/1 и RX1/0. Контакты также соединены с соответствующими выводами сопроцессора ATmega16U2 для общения платы по USB. Во время прошивки и отладки программы через ПК, не используйте эти пины в своём проекте.

Принципиальная и монтажная схемы

Габаритный чертёж

Характеристики

  • Микроконтроллер: ATmega328P

  • Ядро: 8-битный AVR

  • Тактовая частота: 16 МГц

  • Flash-память: 32 КБ

  • RAM-память: 2 КБ

  • EEPROM-память: 1 КБ

  • Пины ввода-вывода: 20

  • Пины с прерыванием: 2

  • Пины с АЦП: 6

  • Разрядность АЦП: 10 бит

  • Пины с ШИМ: 6

  • Разрядность ШИМ: 8 бит

  • Аппаратные интерфейсы: 1× UART, 1× I²C, 1× SPI

  • Напряжение логических уровней: 5 В

  • Входное напряжение питания:

    • через USB: 5 В

    • через DC-разъём или пин Vin: 7,5–12 В

  • Максимальный выходной ток пина 3V3: 150 мА

  • Максимальный выходной ток пина 5V: 1 А

  • Размеры: 69×53 мм

Ресурсы

Название Arduino является в настоящее время этаким «модным» словом для большинства радиолюбителей и всех, кто мало-мальски знаком с электроникой, поскольку данная платформа позволяет создавать электронные устройства быстро и дешево. Наличие обширного онлайн сообщества данной платформы делает ее идеальным выбором для тех, кто только начал свое знакомство с электроникой и программированием. Даже людям, не имеющим технического образования (а именно для таких она и была первоначально создана), освоить Arduino будет достаточно просто.

Как начать работу с Arduino Uno: простейшая схема

Почему так актуальна эта платформа? Как начать работу с ней? Как она может улучшить ваш стиль жизни? Все эти вопросы будут рассмотрены в данной статье. Для этого мы познакомимся с установкой среды Arduino IDE на ваш компьютер и загрузим в нее небольшую программу, реализующую мигание светодиода, который мы подключим к Arduino с использованием макетной платы.

К сожалению некоторые начинающие радиолюбители считают Arduino микроконтроллером, но это не совсем так. Давайте попробуем разобраться что же это.

Arduino представляет собой платформу разработки с открытым исходным кодом, которая состоит из простого в использовании оборудования и среды программирования. Наиболее распространенным типом оборудования является Arduino UNO, а среда программирования называется Arduino IDE. Кроме Arduino UNO существует еще достаточно много аналогичных плат — Arduino Mega, nano, mini, но в данной статье в целях обучения мы будем использовать именно Arduino UNO. А Arduino IDE – это как раз та программная среда, с помощью которой мы будем программировать плату Arduino UNO.

Установка Arduino IDE

Прежде чем начать работу с Arduino необходимо установить среду программирования Arduino IDE на ваш компьютер/ноутбук. Все описанные далее шаги по установке данной программной среды будут ориентированы на операционную систему Windows, для остальных операционных систем последовательность действий будет примерно такой же. Если возникнут проблемы с другими системами, то помощь можно найти по следующим ссылкам – для пользователей Mac и пользователей Linux. Перед началом установки Arduino IDE убедитесь что вы обладаете правами администратора на вашем компьютере – это облегчит установку.

Шаг 1. Загрузите Arduino IDE с официального сайта — https://www.arduino.cc/download_handler.php.

Шаг 2. Запустите скачанный exe файл.

Шаг 3. В открывшемся окне кликните на “I Agree” чтобы согласиться с условиями лицензии Arduino.

Шаг 4. В окне опций установки отметьте все галочки (см. рисунок).

Опции установки Arduino IDE

Шаг 5. На этом шаге необходимо выбрать место установки Arduino IDE. По умолчанию стоит путь установки в Program files на диске C – крайне рекомендуется оставить именно этот путь.

Выбор каталога для установки Arduino IDE

Шаг 6. На этом шаге вы можете наблюдать как Arduino IDE устанавливается на ваш компьютер (см. рисунок). После того как установка будет завершена нажмите кнопку “completed”.

Процесс установки Arduino IDE

Шаг 7. После завершения установки запустите на выполнение файл Arduino.exe. Откроется окно IDE с минимумом кода внутри него – см. рисунок.

Окно Arduino IDE с начальным кодом

Подключение вашей платы Arduino к компьютеру

После того как вы установили Arduino IDE на свой компьютер следующим логичным шагом будет подключение платы Arduino UNO к компьютеру. Чтобы сделать это просто используйте кабель для программирования (синего цвета) и соедините его с платой Arduino и USB портом вашего компьютера.

Синий кабель для программирования может выполнять следующие три функции:

  1. Он запитывает плату Arduino UNO, то есть чтобы обеспечить выполнение программ на ней необходимо просто запитать ее с помощью USB кабеля.
  2. Через него программируется микроконтроллер ATmega328, находящийся на плате Arduino UNO. То есть код программы пересылается из компьютера в микроконтроллер именно по этому кабелю.
  3. Он может функционировать в качестве кабеля для последовательной связи, то есть с его помощью можно передавать данные с Arduino UNO в компьютер – это полезно для целей отладки программы.

После того как вы подадите питание на плату Arduino UNO на ней загорится маленький светодиод – это свидетельствует о том, что на плату подано питание. Также вы можете заметить как мигает другой светодиод – это результат работы программы по управлению миганием светодиода, которая по умолчанию загружена в вашу плату ее производителем.

Поскольку вы подключаете плату Arduino в первый раз к компьютеру необходимо некоторое время чтобы драйвера для нее успешно установились. Чтобы проверить правильно ли все установилось и определилось откройте «Диспетчер устройств (Device manager)» на вашем компьютере.

Поиск диспетчера устройств на вашем компьютере

В диспетчере устройств откройте опцию «Порты» “Ports (COM & LPT)”, кликните на ней и посмотрите правильно ли отображается там ваша плата.

Поиск Arduino в диспетчере устройств

При этом стоит отметить, что не стоит обращать внимание на то, какой номер порта отобразился у вашей платы Arduino – он может, к примеру, выглядеть как CCH450 или что то подобное. Этот номер порта просто определяется производителем платы и больше ни на что не влияет.

Если вы не можете в диспетчере устройств найти опцию “Ports (COM & LPT)”, то это означает, что ваша плата не корректно определилась компьютером. В большинстве случает это означает проблему с драйверами – по какой то причине они автоматически не установились для вашей платы. В этом случае вы должны будете вручную установить необходимые драйверы.

В некоторых случаях в указанной опции диспетчера устройств может отобразиться два COM порта для вашей платы и вы не будете знать какой из них правильный. В этой ситуации отключите и снова подключите плату Arduino к компьютеру – какой из COM портов при этом будет появляться и исчезать, значит тот и правильный порт.

Следует помнить о том, что номер COM порта будет изменяться при каждом новом подключении вашей платы к компьютеру – не пугайтесь, в этом нет ничего страшного.

Загрузка программы мигания светодиода

Теперь загрузим нашу первую программу в плату Arduino при помощи программной среды Arduino IDE, которую мы только недавно установили. Установленная Arduino IDE содержит несколько примеров программ, которые будут весьма полезны для начинающих. Давайте откроем один из этих примеров программ используя следующий путь File -> Examples -> Basics -> Blink (как показано на рисунке).

Загрузка программы управления миганием светодиода

При этом откроется программа Blink – ее цель состоит в том чтобы заставить мигать встроенный светодиод на плате Arduino. После открытия программы нам необходимо выбрать правильную плату Arduino – чтобы сделать это выберите пункт меню Tool -> Boards -> Arduino UNO/Genuino как показано на рисунке ниже.

Выбор платы Arduino UNO

Далее мы должны выбрать правильный порт для нашей платы. Ранее мы увидели, что для нашей платы был определен порт COM13. В вашем случае это может быть другой порт. Но для нашего рассматриваемого случая мы должны выбрать пункт меню Tools -> Port -> COM13.

Проверка того, видит ли Arduino IDE вашу плату Arduino

Если все сделано правильно, то вы должны заметить что номер порта (в нашем случае COM 13) появится внизу экрана. После этого вам необходимо нажать кнопку загрузки программы (подсвечена синим цветом) на плату Arduino как показано на рисунке ниже.

Загрузка программы в плату Arduino

После нажатия этой кнопки вы увидите надпись “Compiling sketch” и затем, если загрузка программы прошла успешно, вы увидите сообщение “Done Uploading” как показано на рисунке ниже.

Загрузка программы на плату Arduino прошла успешно

Если у вас на данном этапе возникают какие либо ошибки, не рассмотренные в данной статье, то вы их можете попробовать найти в статье про 10 самых распространенных ошибок при работе с Arduino.

Теперь попробуем написать программу, которая будет зажигать светодиод при нажатии кнопки.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Кабель для программирования.
  3. Светодиод (любого цвета).
  4. Кнопка.
  5. Резистор 1 кОм.
  6. Макетная плата.
  7. Соединительные провода.

Схема соединений

Представлена на следующем рисунке.

Простейшая схема на плате Arduino

Кнопку подсоединим ко второму контакту Arduino, то есть одним концом кнопка будет подсоединена ко второму контакту Arduino, а вторым – к земле. То есть всегда когда мы будем нажимать кнопку на второй контакт Arduino будет подаваться земля.

Светодиод подсоединен к контакту 3 через резистор 1 кОм. То есть катод светодиода подсоединен к земле, а анод – к контакту 3 Arduino через резистор.

Как начать работу с Arduino Uno: простейшая схема

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

Теперь, когда необходимая нам схема собрана, мы можем начать программирование платы Arduino UNO. Полный текст программы будет приведен в конце статьи, в этом разделе будет дано объяснение некоторых участков кода этой программы.

В каждой программе для Arduino должны обязательно присутствовать две функции – это функции void setup () и void loop (), иногда их называют «абсолютным минимумом», необходимым для написания программы. Все операции, которые мы запишем внутри void setup (), исполнятся только один раз, а операции, которые мы запишем внутри void loop () – будут исполняться снова и снова. Пример этих функций показан в коде ниже – именно в таком виде они создаются когда вы выбираете пункт меню File -> New.

void setup() {

  // put your setup code here, to run once:

}

void loop() {

  // put your main code here, to run repeatedly:

}

Начнем писать программу в функции setup (). Обычно в этой функции объявляются названия пинов (контактов). В нашей программе нам необходимо объявить всего два контакта: контакт 2 в качестве входного контакта и контакт 3 в качестве выходного контакта. Это можно сделать с помощью следующих строчек кода:

pinMode(2,INPUT);

pinMode (3,OUTPUT);

Но здесь необходимо внести небольшое изменение в программу – нам желательно чтобы контакт 2, который мы объявили в качестве входного контакта, никогда не был бы в «плавающем» состоянии. Это означает что входной контакт должен быть всегда подсоединен либо к +5 В, либо к земле. А в нашем случае при нажатии кнопки он будет подсоединен к земле, а при отжатой кнопке он будет находиться в плавающем состоянии. Чтобы исключить это нам необходимо задействовать внутренний подтягивающий резистор, который находится внутри микроконтроллера ATmega 328 (то есть снаружи мы этот резистор не видим). Для его задействования необходимо написать соответствующую строчку кода в программе.

С помощью этой строчки кода контакт 2 будет подключаться через подтягивающий резистор к напряжению +5 В всегда когда он не подсоединен к земле. То есть мы должны в одной из написанных нами строчек кода изменить слово INPUT на слово INPUT_PULLUP как показано ниже.

Теперь, когда мы закончили с функцией setup (), перейдем к функции loop (). В этой функции мы должны проверять не подсоединен ли контакт 2 к земле (то есть на его входе низкий уровень – LOW) и если он подсоединен в земле, то мы должны зажечь светодиод при помощи подачи на контакт 3 высокого уровня (HIGH). А если контакт 2 не подсоединен к земле (то есть кнопка не нажата), то мы должны держать светодиод в выключенном состоянии при помощи подачи на контакт 3 низкого уровня (LOW). В программе это будет выглядеть следующим образом:

  if (digitalRead(2) == LOW)

  {

    digitalWrite(3,HIGH);

  }

  else

  {

    digitalWrite(3,LOW);

  }

В этих строчках кода оператор digitalRead() используется для проверки статуса (состояния) входного контакта. Если контакт подсоединен к земле, то оператор digitalRead() возвратит значение LOW, а если оператор подсоединен к +5 В, то оператор возвратит значение HIGH.

Аналогично, оператор digitalWrite() используется для установки состояния выходного контакта. Если мы установим контакт в состояние HIGH, то на его выходе будет напряжение +5 В, а если мы установим контакт в LOW, то на его выходе будет 0 В.

Таким образом в нашей программе когда мы нажимаем кнопку на контакт 2 будет подана земля и, соответственно, на контакт 3 мы подаем высокий уровень +5 В (HIGH) чтобы зажечь светодиод. Если условие не выполняется – то есть на контакт 2 не подана земля, то мы на контакт 3 подаем низкий уровень 0 В (LOW) чтобы выключить светодиод.

На этом наша программа закончена, теперь загрузим код программы на нашу плату Arduino таким же образом как ранее мы загружали код программы мигания светодиодом.

Проверка работы схемы

После того как мы загрузили программу на нашу плату Arduino самое время проверить корректность ее работы. Схема соединений представлена выше. Чтобы проверить корректность работы программы необходимо нажать кнопку и проверить загорится ли при этом светодиод. Затем, когда мы отпустим кнопку (прекратим ее нажимать), светодиод должен погаснуть.

Проверка работы схемы

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

Полный текст программы выглядит следующим образом:

void setup()

{

pinMode(2,INPUT_PULLUP);

pinMode (3,OUTPUT);

}

void loop() {

   if (digitalRead(2) == LOW)

  {

    digitalWrite(3,HIGH);

  }

  else

  {

    digitalWrite(3,LOW);  

  }

}

Загрузка…

38 981 просмотров

В этой статье я решал собрать полное пошаговое руководство для начинающих Arduino. Мы разберем что такое ардуино, что нужно для начала изучения, где скачать и как установить и настроить среду программирования, как устроен и как пользоваться языком программирования и многое другое, что необходимо для создания полноценных сложных устройств на базе семейства этих микроконтроллеров.

Тут я постараюсь дать сжатый минимум для того, что бы вы понимали принципы работы с Arduino. Для более полного погружения в мир программируемых микроконтроллеров обратите внимание на другие разделы и статьи этого сайта. Я буду оставлять ссылки на другие материалы этого сайта для более подробного изучения некоторых аспектов.

Что такое Arduino и для чего оно нужно?

Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Ардуино состоит из программной и аппаратной части. Программная часть включает в себя среду разработки (программа для написания и отладки прошивок), множество готовых и удобных библиотек, упрощенный язык программирования. Аппаратная часть включает в себя большую линейку микроконтроллеров и готовых модулей для них. Благодаря этому, работать с Arduino очень просто!

С помощью ардуино можно обучаться программированию, электротехнике и механике. Но это не просто обучающий конструктор. На его основе вы сможете сделать действительно полезные устройства.
Начиная с простых мигалок, метеостанций, систем автоматизации и заканчивая системой умного дома, ЧПУ станками и беспилотными летательными аппаратами. Возможности не ограничиваются даже вашей фантазией, потому что есть огромное количество инструкций и идей для реализации.

проекты на Arduino

проекты на Arduino

Стартовый набор Arduino

Для того что бы начать изучать Arduino необходимо обзавестись самой платой микроконтроллера и дополнительными деталями. Лучше всего приобрести стартовый набор Ардуино, но можно и самостоятельно подобрать все необходимое. Я советую выбрать набор, потому что это проще и зачастую дешевле. Вот ссылки на лучшие наборы и на отдельные детали, которые обязательно пригодятся вам для изучения:

Базовый набор ардуино для начинающих: Купить
Большой набор для обучения и первых проектов: Купить
Набор дополнительных датчиков и модулей: Купить
Ардуино Уно самая базовая и удобная модель из линейки: Купить
Беспаечная макетная плата для удобного обучения и прототипирования: Купить
Набор проводов с удобными коннекторами: Купить
Комплект светодиодов: Купить
Комплект резисторов: Купить
Кнопки: Купить
Потенциометры: Купить

Среда разработки Arduino IDE

Для написания, отладки и загрузки прошивок необходимо скачать и установить Arduino IDE. Это очень простая и удобная программа. На моем сайте я уже описывал процесс загрузки, установки и настройки среды разработки. Поэтому здесь я просто оставлю ссылки на последнюю версию программы и на статью с подробной инструкцией.

Язык программирования Ардуино

Когда у вас есть на руках плата микроконтроллера и на компьютере установлена среда разработки, вы можете приступать к написанию своих первых скетчей (прошивок). Для этого необходимо ознакомиться с языком программирования.

Для программирования Arduino используется упрощенная версия языка C++ с предопределенными функциями. Как и в других Cи-подобных языках программирования есть ряд правил написания кода. Вот самые базовые из них:

  • После каждой инструкции необходимо ставить знак точки с запятой (;)
  • Перед объявлением функции необходимо указать тип данных, возвращаемый функцией или void если функция не возвращает значение.
  • Так же необходимо указывать тип данных перед объявлением переменной.
  • Комментарии обозначаются: // Строчный и /* блочный */

Подробнее о типах данных, функциях, переменных, операторах и языковых конструкциях вы можете узнать на странице по программированию Arduino. Вам не нужно заучивать и запоминать всю эту информацию. Вы всегда можете зайти в справочник и посмотреть синтаксис той или иной функции.

Все прошивки для Arduino должны содержать минимум 2 функции. Это setup() и loop().

Функция setup

Функция setup() выполняется в самом начале и только 1 раз сразу после включения или перезагрузки вашего устройства. Обычно в этой функции декларируют режимы пинов, открывают необходимые протоколы связи, устанавливают соединения с дополнительными модулями и настраивают подключенные библиотеки. Если для вашей прошивки ничего подобного делать не нужно, то функция все равно должна быть объявлена. Вот стандартный пример функции setup():

void setup() {
	Serial.begin(9600);	// Открываем serial соединение
	pinMode(9, INPUT);	// Назначаем 9 пин входом
	pinMode(13, OUTPUT); // Назначаем 13 пин выходом
}

В этом примере просто открывается последовательный порт для связи с компьютером и пины 9 и 13 назначаются входом и выходом. Ничего сложного. Но если вам что-либо не понятно, вы всегда можете задать вопрос в комментариях ниже.

Функция loop

Функция loop() выполняется после функции setup(). Loop в переводе с английского значит «петля». Это говорит о том что функция зациклена, то есть будет выполняться снова и снова. Например микроконтроллер ATmega328, который установлен в большинстве плат Arduino, будет выполнять функцию loop около 10 000 раз в секунду (если не используются задержки и сложные вычисления). Благодаря этому у нас есть большие возможности.

Макетная плата Breadbord

Вы можете создавать простые и сложные устройства. Для удобства я советую приобрести макетную плату (Breadbord) и соединительные провода. С их помощью вам не придется паять и перепаивать провода, модули, кнопки и датчики для разных проектов и отладки. С беспаечной макетной платой разработка становится более простой, удобной и быстрой. Как работать с макетной платой я рассказывал в этом уроке. Вот список беспаечных макетных плат:

Макетная плата на 800 точек с 2 шинами питания, платой подачи питания и проводами: Купить
Большая макетная плата на 1600 точек с 4 шинами питания: Купить
Макетная плата на 800 точек с 2 шинами питания: Купить
Макетная плата на 400 точек с 2 шинами питания: Купить
Макетная плата на 170 точек: Купить
Соединительные провода 120 штук: Купить

Первый проект на Arduino

Давайте соберем первое устройство на базе Ардуино. Мы просто подключим тактовую кнопку и светодиод к ардуинке. Схема проекта выглядит так:

Управление яркостью светодиода

Управление яркостью светодиода

Обратите внимание на дополнительные резисторы в схеме. Один из них ограничивает ток для светодиода, а второй притягивает контакт кнопки к земле. Как это работает и зачем это нужно я объяснял в этом уроке.

Для того что бы все работало, нам надо написать скетч. Давайте сделаем так, что бы светодиод загорался после нажатия на кнопку, а после следующего нажатия гас. Вот наш первый скетч:

 // переменные с пинами подключенных устройств
int switchPin = 8;
int ledPin = 11;

// переменные для хранения состояния кнопки и светодиода
boolean lastButton = LOW;
boolean currentButton = LOW;
boolean ledOn = false;

void setup() {
	pinMode(switchPin, INPUT);
	pinMode(ledPin, OUTPUT);
}

// функция для подавления дребезга
boolean debounse(boolean last) {
	boolean current = digitalRead(switchPin);
	if(last != current) {
		delay(5);
		current = digitalRead(switchPin);
	}
	return current;
}

void loop() {
	currentButton = debounse(lastButton);
	if(lastButton == LOW && currentButton == HIGH) {
		ledOn = !ledOn;
	}
	lastButton = currentButton;
	digitalWrite(ledPin, ledOn);
}

В этом скетче я создал дополнительную функцию debounse для подавления дребезга контактов. О дребезге контактов есть целый урок на моем сайте. Обязательно ознакомьтесь с этим материалом.

ШИМ Arduino

Широтно-импульсная модуляция (ШИМ) — это процесс управления напряжением за счет скважности сигнала. То есть используя ШИМ мы можем плавно управлять нагрузкой. Например можно плавно изменять яркость светодиода, но это изменение яркости получается не за счет уменьшения напряжения, а за счет увеличения интервалов низкого сигнала. Принцип действия ШИМ показан на этой схеме:

ШИМ ардуино

ШИМ ардуино

Когда мы подаем ШИМ на светодиод, то он начинает быстро зажигаться и гаснуть. Человеческий глаз не способен увидеть это, так как частота слишком высока. Но при съемке на видео вы скорее всего увидите моменты когда светодиод не горит. Это случится при условии что частота кадров камеры не будет кратна частоте ШИМ.

В Arduino есть встроенный широтно-импульсный модулятор. Использовать ШИМ можно только на тех пинах, которые поддерживаются микроконтроллером. Например Arduino Uno и Nano имеют по 6 ШИМ выводов: это пины D3, D5, D6, D9, D10 и D11. В других платах пины могут отличаться. Вы можете найти описание интересующей вас платы в этом разделе.

Для использования ШИМ в Arduino есть функция analogWrite(). Она принимает в качестве аргументов номер пина и значение ШИМ от 0 до 255. 0 — это 0% заполнения высоким сигналом, а 255 это 100%. Давайте для примера напишем простой скетч. Сделаем так, что бы светодиод плавно загорался, ждал одну секунду и так же плавно угасал и так до бесконечности. Вот пример использования этой функции:

 // Светодиод подключен к 11 пину
int ledPin = 11;

void setup() {
	pinMode(ledPin, OUTPUT);
}

void loop() {
	for (int i = 0; i < 255; i++) {
		analogWrite(ledPin, i);
		delay(5);
	}

	delay(1000);

	for (int i = 255; i > 0; i--) {
		analogWrite(ledPin, i);
		delay(5);
	}
}

Аналоговые входы Arduino

Как мы уже знаем, цифровые пины могут быть как входом так и выходом и принимать/отдавать только 2 значения: HIGH и LOW. Аналоговые пины могут только принимать сигнал. И в отличии от цифровых входов аналоговые измеряют напряжение поступающего сигнала. В большинстве плат ардуино стоит 10 битный аналогово-цифровой преобразователь. Это значит что 0 считывается как 0 а 5 В считываются как значение 1023. То есть аналоговые входы измеряют, подаваемое на них напряжение, с точностью до 0,005 вольт. Благодаря этому мы можем подключать разнообразные датчики и резисторы (терморезисторы, фоторезисторы) и считывать аналоговый сигнал с них.

Для этих целей в Ардуино есть функция analogRead(). Для примера подключим фоторезистор к ардуино и напишем простейший скетч, в котором мы будем считывать показания и отправлять их в монитор порта. Вот так выглядит наше устройство:

Подключение фоторезистора к Ардуино

Подключение фоторезистора к Ардуино

В схеме присутствует стягивающий резистор на 10 КОм. Он нужен для того что бы избежать наводок и помех. Теперь посмотрим на скетч:

int sensePin = 0; // Пин к которому подключен фоторезистор
 
void setup() {
 analogReferense(DEFAULT); // Задаем опорное значение напряжения. Эта строка не обязательна.
 Serial.begin(9600); // Открываем порт на скорости 9600 бод.
}
 
void loop() {
 Serial.println(analogRead(sensePin)); // Считываем значение и выводим в порт
 delay(500); // задержка для того что бы значений было не слишком много
}

Вот так из двух простейших элементов и четырех строк кода мы сделали датчик освещенности. На базе этого устройства мы можем сделать умный светильник или ночник. Очень простое и полезное устройство.

Вот мы и рассмотрели основы работы с Arduino. Теперь вы можете сделать простейшие проекты. Что бы продолжить обучение и освоить все тонкости, я советую прочитать книги по ардуино и пройти бесплатный обучающий курс. После этого вы сможете делать самые сложные проекты, которые только сможете придумать.

Общие сведения

Arduino Uno контроллер построен на ATmega328 (техническое описание, pdf). Платформа имеет 14 цифровых вход/выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера AC/DC или батареи.

В отличие от всех предыдущих плат, использовавших FTDI USB микроконтроллер для связи по USB, новый Ардуино Uno использует микроконтроллер ATmega8U2 (техническое описание, pdf).

«Uno» переводится как один с итальянского и разработчики тем самым намекают на грядущий выход Arduino 1.0. Новая плата стала флагманом линейки плат Ардуино. Для сравнения с предыдущими версиями можно обратиться к полному списку плат Arduino. 

Характеристики

Микроконтроллер

ATmega328

Рабочее напряжение

5 В

Входное напряжение (рекомендуемое)

7-12 В

Входное напряжение (предельное)

6-20 В

Цифровые Входы/Выходы

14 (6 из которых могут использоваться как выходы ШИМ)

Аналоговые входы

6

Постоянный ток через вход/выход

40 мА

Постоянный ток для вывода 3.3 В

50 мА

Флеш-память                                                       

32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика

ОЗУ                                                                         

2 Кб (ATmega328)

EEPROM

1 Кб (ATmega328)

Тактовая частота

16 МГц

Схема и исходные данные

Файлы EAGLE: arduino-duemilanove-reference-design.zip

Принципиальная схема: arduino-duemilanove-schematic.pdf

Питание

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

Внешнее питание (не USB) может подаваться через преобразователь напряжения AC/DC (блок питания) или аккумуляторной батареей. Преобразователь напряжения подключается посредством разъема 2.1 мм с центральным положительным полюсом. Провода от батареи подключаются к выводам Gnd и Vin разъема питания.

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

Выводы питания:

  • VIN. Вход используется для подачи питания от внешнего источника (в отсутствие 5 В от разъема USB или другого регулируемого источника питания). Подача напряжения питания происходит через данный вывод.
  • 5V. Регулируемый источник напряжения, используемый для питания микроконтроллера и компонентов на плате. Питание может подаваться от вывода VIN через регулятор напряжения, или от разъема USB, или другого регулируемого источника напряжения 5 В. 
  • 3V3. Напряжение на выводе 3.3 В генерируемое встроенным регулятором на плате. Максимальное потребление тока 50 мА.
  • GND. Выводы заземления.
Память

Микроконтроллер ATmega328 располагает 32 кБ флэш памяти, из которых 0.5 кБ используется для хранения загрузчика, а также 2 кБ ОЗУ (SRAM) и 1 Кб EEPROM.(которая читается и записывается с помощью библиотеки EEPROM).

Входы и Выходы

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

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

На платформе Uno установлены 6 аналоговых входов (обозначенных как A0 .. A5), каждый разрешением 10 бит (т.е. может принимать 1024 различных значения). Стандартно выводы имеют диапазон измерения до 5 В относительно земли, тем не менее имеется возможность изменить верхний предел посредством вывода AREF и функции analogReference(). Некоторые выводы имеют дополнительные функции:

  • I2C: 4 (SDA) и 5 (SCL). Посредством выводов осуществляется связь I2C (TWI), для создания которой используется библиотека Wire.

Дополнительная пара выводов платформы:

  • AREF. Опорное напряжение для аналоговых входов. Используется с функцией analogReference().
  • Reset. Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.

Обратите внимание на соединение между выводами Arduino и портами ATmega328.

Связь

На платформе Arduino Uno установлено несколько устройств для осуществления связи с компьютером, другими устройствами Arduino или микроконтроллерами. ATmega328 поддерживают последовательный интерфейс UART TTL (5 В), осуществляемый выводами 0 (RX) и 1 (TX). Установленная на плате микросхема ATmega8U2 направляет данный интерфейс через USB, программы на стороне компьютера «общаются» с платой через виртуальный COM порт. Прошивка ATmega8U2 использует стандартные драйвера USB COM, никаких стороних драйверов не требуется, но на Windows для подключения потребуется файл ArduinoUNO.inf.  Мониторинг последовательной шины (Serial Monitor) программы Arduino позволяет посылать и получать текстовые данные при подключении к платформе. Светодиоды RX и TX на платформе будут мигать при передаче данных через микросхему FTDI или USB подключение (но не при использовании последовательной передачи через выводы 0 и 1). 

Библиотекой SoftwareSerial возможно создать последовательную передачу данных через любой из цифровых выводов Uno.

ATmega328 поддерживает интерфейсы I2C (TWI) и SPI. В Arduino включена библиотека Wire для удобства использования шины I2C.

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

Платформа программируется посредством ПО Arduino. Из меню Tools > Board выбирается «Arduino Uno» (согласно установленному микроконтроллеру). Подробная информация находится в справочнике и инструкциях.

Микроконтроллер ATmega328 поставляется с записанным загрузчиком, облегчающим запись новых программ без использования внешних программаторов. Связь осуществляется оригинальным протоколом STK500.

Имеется возможность не использовать загрузчик и запрограммировать микроконтроллер через выводы ICSP (внутрисхемное программирование). Подробная информация находится в данной инструкции.

Автоматическая (программная) перезагрузка

Uno разработана таким образом, чтобы перед записью нового кода перезагрузка осуществлялась самой программой Arduino на компьютере, а не нажатием кнопки на платформе. Одна из линий DTR микросхемы ATmega8U2, управляющих потоком данных (DTR), подключена к выводу перезагрузки микроконтроллеру ATmega328 через 100 нФ конденсатор. Активация данной линии, т.е. подача сигнала низкого уровня, перезагружает микроконтроллер. Программа Arduino, используя данную функцию, загружает код одним нажатием кнопки Upload в самой среде программирования. Подача сигнала низкого уровня по линии DTR скоординирована с началом записи кода, что сокращает таймаут загрузчика.

Функция имеет еще одно применение. Перезагрузка Uno происходит каждый раз при подключении к программе Arduino на компьютере с ОС Mac X или Linux (через USB). Следующие полсекунды после перезагрузки работает загрузчик. Во время программирования происходит задержка нескольких первых байтов кода во избежание получения платформой некорректных данных (всех, кроме кода новой программы). Если производится разовая отладка скетча, записанного в платформу, или ввод каких-либо других данных при первом запуске, необходимо убедиться, что программа на компьютере ожидает в течение секунды перед передачей данных.

На Uno имеется возможность отключить линию автоматической перезагрузки разрывом соответствующей линии.   Контакты микросхем с обоих концов линии могут быть соединены с целью восстановления. Линия маркирована «RESET-EN». Отключить автоматическую перезагрузку также возможно подключив резистор 110 Ом между источником 5 В и данной линией.

Токовая защита разъема USB

В Arduino Uno встроен самовостанавливающийся предохранитель (автомат), защищающий порт USB компьютера от токов короткого замыкания и сверхтоков. Хотя практически все компьютеры имеют подобную защиту, тем не менее, данный предохранитель обеспечивает дополнительный барьер. Предохранитель срабатыват при прохождении тока более 500 мА через USB порт и размыкает цепь до тех пока нормальные значения токов не будут востановлены.

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

Длина и ширина печатной платы Uno составляют 6.9 и 5.3 см соответственно. Разъем USB и силовой разъем выходят за границы данных размеров. Четыре отверстия в плате позволяют закрепить ее на поверхности. Расстояние между цифровыми выводами 7 и 8 равняется 0,4 см, хотя между другими выводами оно составляет 0,25 см.

Arduino UNO Manual

  1. Manuals
  2. Brands
  3. Arduino Manuals
  4. Motherboard
  5. uno
  6. Manual

  • Bookmarks

Quick Links

A R D U I N O   U N O   R E V 3  

Code: A000066 

The UNO is the best board to get started with electronics and 

coding. If this is your first experience tinkering with the platform, 

the UNO is the most robust board you can start playing with. The 

UNO is the most used and documented board of the whole Arduino 

family. 

loading

Related Manuals for Arduino UNO

Summary of Contents for Arduino UNO

  • Page 1
                  A R D U I N O   U N O   R E V 3   Code: A000066    The UNO is the best board to get started with electronics and  coding. If this is your first experience tinkering with the platform,  the UNO is the most robust board you can start playing with. The  UNO is the most used and documented board of the whole Arduino  family.     …
  • Page 2: Getting Started

     Arduino Uno is a microcontroller board based on the ATmega328P (datasheet). It  has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog  inputs, a 16 MHz quartz crystal, a USB connection, a power jack, an ICSP header  and a reset button. It contains everything needed to support the microcontroller;  simply connect it to a computer with a USB cable or power it with a AC‐to‐DC  adapter or battery to get started.. You can tinker with your UNO without worring  too much about doing something wrong, worst case scenario you can replace the  chip for a few dollars and start over again.    «Uno» means one in Italian and was chosen to mark the release of Arduino  Software (IDE) 1.0. The Uno board and version 1.0 of Arduino Software (IDE) were  the reference versions of Arduino, now evolved to newer releases. The Uno board  is the first in a series of USB Arduino boards, and the reference model for the  Arduino platform; for an extensive list of current, past or outdated boards see the  Arduino index of boards.    You can find here your board warranty informations.  https://www.arduino.cc/en/Main/warranty  Getting Started  You can find in the Getting Started section all the information you need to  configure your board, use the Arduino Software (IDE), and start tinker with coding  and electronics.  https://www.arduino.cc/en/Guide/HomePage    TECH SPECS    Microcontroller  ATmega328P   Operating Voltage  5V  Input Voltage (recommended)  7‐12V  Input Voltage (limit)  6‐20V  Digital I/O Pins  14 (of which 6 provide PWM output)  PWM Digital I/O Pins  6 …

  • Page 3
    Flash Memory  32 KB (ATmega328P) of which 0.5 KB used by bootloader  SRAM  2 KB (ATmega328P)  EEPROM  1 KB (ATmega328P)  Clock Speed  16 MHz  LED_BUILTIN  13  Length  68.6 mm  Width  53.4 mm  Weight  25 g      OSH: Schematics   Arduino Uno is open‐source hardware! You can build your own board using the  following files:    EAGLE FILES IN .ZIP   https://www.arduino.cc/en/uploads/Main/arduino_Uno_Rev3‐02‐TH.zip  SCHEMATICS IN .PDF   https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3‐schematic.pdf  BOARD SIZE IN .DXF  http://arduino.cc/documents/ArduinoUno.dxf  Programming  The Arduino Uno can be programmed with the (Arduino Software (IDE)). Select  «Arduino/Genuino Uno from the Tools > Board menu (according to the  microcontroller on your board). For details, see the reference and tutorials.    The ATmega328 on the Arduino Uno comes preprogrammed with a bootloader that  allows you to upload new code to it without the use of an external hardware  programmer. It communicates using the original STK500 protocol (reference, C  header files).    You can also bypass the bootloader and program the microcontroller through the …
  • Page 4
    The ATmega16U2 (or 8U2 in the rev1 and rev2 boards) firmware source code is  available in the Arduino repository. The ATmega16U2/8U2 is loaded with a DFU  bootloader, which can be activated by:     On Rev1 boards: connecting the solder jumper on the back of the board (near the map of  Italy) and then rese ing the 8U2.     On Rev2 or later boards: there is a resistor that pulling the 8U2/16U2 HWB line to  ground, making it easier to put into DFU mode.    You can then use Atmel’s FLIP software (Windows) or the DFU programmer (Mac  OS X and Linux) to load a new firmware. Or you can use the ISP header with an  external programmer (overwriting the DFU bootloader). See this user‐contributed  tutorial for more information.  Warnings  The Arduino Uno has a resettable polyfuse that protects your computer’s USB ports  from shorts and overcurrent. Although most computers provide their own internal  protection, the fuse provides an extra layer of protection. If more than 500 mA is  applied to the USB port, the fuse will automatically break the connection until the  short or overload is removed.  Differences with other boards  The Uno differs from all preceding boards in that it does not use the FTDI USB‐to‐ serial driver chip. Instead, it features the Atmega16U2 (Atmega8U2 up to version  R2) programmed as a USB‐to‐serial converter.  Power  The Arduino Uno board can be powered via the USB connection or with an external  power supply. The power source is selected automatically.    External (non‐USB) power can come either from an AC‐to‐DC adapter (wall‐wart) or  battery. The adapter can be connected by plugging a 2.1mm center‐positive plug  into the board’s power jack. Leads from a battery can be inserted in the GND and  Vin pin headers of the POWER connector.    The board can operate on an external supply from 6 to 20 volts. If supplied with  less than 7V, however, the 5V pin may supply less than five volts and the board  may become unstable. If using more than 12V, the voltage regulator may overheat  and damage the board. The recommended range is 7 to 12 volts. …
  • Page 5: Input And Output

       5V.This pin outputs a regulated 5V from the regulator on the board. The board can be  supplied with power either from the DC power jack (7 ‐ 12V), the USB connector (5V), or  the VIN pin of the board (7‐12V). Supplying voltage via the 5V or 3.3V pins bypasses the  regulator, and can damage your board. We don’t advise it.     3V3. A 3.3 volt supply generated by the on‐board regulator. Maximum current draw is 50  mA.     GND. Ground pins.     IOREF. This pin on the Arduino/Genuino board provides the voltage reference with which  the microcontroller operates. A properly configured shield can read the IOREF pin voltage  and select the appropriate power source or enable voltage translators on the outputs to  work with the 5V or 3.3V.  Memory  The ATmega328 has 32 KB (with 0.5 KB occupied by the bootloader). It also has 2  KB of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM  library).  https://www.arduino.cc/en/Reference/EEPROM  Input and Output  See the mapping between Arduino pins and ATmega328P ports. The mapping for  the Atmega8, 168, and 328 is identical.    PIN MAPPING ATmega328P  https://www.arduino.cc/en/Hacking/PinMapping168    Each of the 14 digital pins on the Uno can be used as an input or output,  using pinMode() https://www.arduino.cc/en/Reference/PinMode,  digitalWrite() https://www.arduino.cc/en/Reference/DigitalWrite,  and digitalRead() https://www.arduino.cc/en/Reference/DigitalRead functions.   They operate at 5 volts. Each pin can provide or receive 20 mA as recommended  operating condition and has an internal pull‐up resistor (disconnected by default)  of 20‐50k ohm. A maximum of 40mA is the value that must not be exceeded on any  I/O pin to avoid permanent damage to the microcontroller. …

  • Page 6
       External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a low  value, a rising or falling edge, or a change in value. See the attachInterrupt() function for  details.     PWM: 3, 5, 6, 9, 10, and 11. Provide 8‐bit PWM output with the analogWrite() function.     SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI communication using  the SPI library.     LED: 13. There is a built‐in LED driven by digital pin 13. When the pin is HIGH value, the  LED is on, when the pin is LOW, it’s off.     TWI: A4 or SDA pin and A5 or SCL pin. Support TWI communication using the Wire library.    The Uno has 6 analog inputs, labeled A0 through A5, each of which provide 10 bits  of resolution (i.e. 1024 different values). By default they measure from ground to 5  volts, though is it possible to change the upper end of their range using the AREF  pin and the analogReference() function. There are a couple of other pins on the  board:     AREF. Reference voltage for the analog inputs. Used with analogReference().     Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset  button to shields which block the one on the board.  Communication  Arduino/Genuino Uno has a number of facilities for communicating with a  computer, another Arduino/Genuino board, or other microcontrollers. The  ATmega328 provides UART TTL (5V) serial communication, which is available on  digital pins 0 (RX) and 1 (TX). An ATmega16U2 on the board channels this serial  communication over USB and appears as a virtual com port to software on the  computer. The 16U2 firmware uses the standard USB COM drivers, and no external  driver is needed. However, on Windows, a .inf file is required. The Arduino …
  • Page 7
    A SoftwareSerial library allows serial communication on any of the Uno’s digital  pins.  https://www.arduino.cc/en/Reference/SoftwareSerial    The ATmega328 also supports I2C (TWI) and SPI communication. The Arduino  Software (IDE) includes a Wire library to simplify use of the I2C bus; see  the documentation for details. For SPI communication, use the SPI library.  https://www.arduino.cc/en/Reference/Wire  https://www.arduino.cc/en/Reference/SPI  Automatic (Software) Reset  Rather than requiring a physical press of the reset button before an upload, the  Arduino/Genuino Uno board is designed in a way that allows it to be reset by  software running on a connected computer. One of the hardware flow control lines  (DTR) of the ATmega8U2/16U2 is connected to the reset line of the ATmega328 via  a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line  drops long enough to reset the chip. The Arduino Software (IDE) uses this  capability to allow you to upload code by simply pressing the upload button in the  interface toolbar. This means that the bootloader can have a shorter timeout, as  the lowering of DTR can be well‐coordinated with the start of the upload.    This setup has other implications. When the Uno is connected to either a computer  running Mac OS X or Linux, it resets each time a connection is made to it from  software (via USB). For the following half‐second or so, the bootloader is running  on the Uno. While it is programmed to ignore malformed data (i.e. anything  besides an upload of new code), it will intercept the first few bytes of data sent to  the board after a connection is opened. If a sketch running on the board receives  one‐time configuration or other data when it first starts, make sure that the  software with which it communicates waits a second after opening the connection  and before sending this data.    The Uno board contains a trace that can be cut to disable the auto‐reset. The pads  on either side of the trace can be soldered together to re‐enable it. It’s labeled  «RESET‐EN». You may also be able to disable the auto‐reset by connecting a 110  ohm resistor from 5V to the reset line; see this forum thread for details.  Revisions  Revision 3 of the board has the following new features:     1.0 pinout: added SDA and SCL pins that are near to the AREF pin and two other new pins  placed near to the RESET pin, the IOREF that allow the shields to adapt to the voltage …
  • Page 8
    The second one is a not connected pin, that is reserved for future purposes.     Stronger RESET circuit.     Atmega 16U2 replace the 8U2.                                                                    https://store.arduino.cc/usa/arduino‐uno‐rev3 12‐8‐17 …

Понравилась статья? Поделить с друзьями:
  • Руководство по дачному строительству
  • Gta 5 все по инструкции золото
  • Руководство исо мэк 2 1996
  • Карбамазепин ретард 400 инструкция по применению цена отзывы аналоги
  • Геозон смарт часы инструкция по применению на русском