Перейти к содержимому

Как программировать ардуино нано

  • автор:

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

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

Операторы

Управляющие операторы
Синтаксис
  • ; (точка с запятой)
  • <> (фигурные скобки)
  • // (одностроковый коментарий)
  • /* */ (многостроковый коментарий)
  • #define
  • #include
Арифметические операторы
  • = (оператор присваивания)
  • + (сложение)
  • — (вычитание)
  • * (умножение)
  • / (деление)
  • % (остаток от деления)

Getting Started with the Arduino Nano

The Arduino Nano is a small, complete, and breadboard-friendly board based on the ATmega328P. It offers the same connectivity and specs of the UNO board in a smaller form factor.

The Arduino Nano is programmed using the Arduino Software (IDE), our Integrated Development Environment common to all our boards and running both online and offline. For more information on how to get started with the Arduino Software visit the Getting Started page.

Use your Arduino Nano on the Arduino Web IDE

All Arduino boards, including this one, work out-of-the-box on the Arduino Web Editor, you only need to install Arduino Create Agent to get started.

The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this simple guide to start coding on the browser and upload your sketches onto your board.

Use your Arduino Nano on the Arduino Desktop IDE

If you want to program your Arduino Nano while offline you need to install the Arduino Desktop IDE To connect the Arduino Nano to your computer, you’ll need a Mini-B USB cable. This also provides power to the board, as indicated by the blue LED (which is on the bottom of the Arduino Nano 2.x and the top of the Arduino Nano 3.0).

Open your first sketch

Open the LED blink example sketch: File > Examples > 01.Basics > Blink.

Select your board type and port

Select Tools > Board > Arduino AVR Boards > Arduino Nano.

NOTE: We have updated the Nano board with a fresh bootloader. Boards sold by us from January 2018 have this new bootloader, while boards manufactured before that date have the old bootloader. First, check that Tools > Board > Boards Manager shows you have the Arduino AVR Boards 1.16.21 or later installed. Then, to program the NEW Arduino NANO boards you need to chose Tools > Processor > ATmega328P. To program old boards you need to choose Tools > Processor > ATmega328P (Old Bootloader). If you get an error while uploading or you are not sure which bootloader you have, try each Tools > Processor menu option until your board gets properly programmed.

Nano Bootloader

Upload and Run your first Sketch

To upload the sketch to the Arduino Nano, click the Upload button in the upper left to load and run the sketch on your board:

UNO Upload

Wait a few seconds — you should see the RX and TX LEDs on the board flashing. If the upload is successful, the message «Done uploading.» will appear in the status bar.

Learn more on the Desktop IDE

See this tutorial for a generic guide on the Arduino IDE with more info on the Preferences, the Boards Manager, and the Library Manager.

Tutorials

Now that you have set up and programmed your Arduino Nano board, you may find inspiration in our Project Hub tutorial platform.

For more details on the Arduino Nano, see the hardware page.

The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the guide are released into the public domain.

Arduino для начинающих

Этот раздел сайта предназначен для обучения новичков. Здесь будут собранны уроки по Arduino для начинающих. Так же будут уроки и по более сложным аспектам программирования ардуино. Почти все уроки будут содержать видео для наглядного получения информации, а так же текстовую интерпретацию, ссылки на необходимые компоненты и архив с исходниками урока. Так вы сможете не только посмотреть и послушать урок, но и без труда повторить его для приобретения практических навыков. После прохождения курса вы сможете реализовать проекты любой сложности. Курс по работе с arduino для новичков рассчитан на 8 часов.

Мощность резистора

Мощность резистора

Что такое мощность резисторов. Как ее рассчитать, и как узнать мощность рассеивания резистора. Таблица мощности SMD резисторовЧитать дальше

2 марта 2022 151

Онлайн калькулятор маркировки SMD резистора

Онлайн калькулятор маркировки SMD резистора

Определяем номинал SMD резисторов. Определение мощности резисторов. Разберем на примерах расшифровку SMD резисторов: 4R7, 103, 0805, 100, 102, 1R0, 1206Читать дальше

1 марта 2022 301

RGB светодиод и Arduino

RGB светодиод и Arduino

Подключение и управление RGB светодиодом с помощью Arduino. Схемы и кодЧитать дальше
2 февраля 2022 271

Подключение светодиода к Arduino

Подключение светодиода к Arduino

Подключение светодиода к Arduino Nano V3 и к Arduino Uno R3. Разберемся с принципом работы светодиода, его выводами, рассчитаем резистор и напишем скетч.Читать дальше

2 марта 2022 337

Цветовая маркировка резисторов

Цветовая маркировка резисторов

Онлайн калькулятор цветовой маркировки резисторов, а также таблицы маркировки помогут вам определить параметры вашего резистора.Читать дальше

4 февраля 2022 0 630

Резисторы

Резисторы

Разберемся что такое резистор, для чего он нужен, какие резисторы бывают, как их отличить друг от друга, и даже рассчитаем номинал резистора для светодиода.Читать дальше

2 марта 2022 2 565

Arduino. Урок 15. SD карта.

Arduino. Урок 15. SD карта.

Сегодня речь пойдет об использовании SD и micro SD карт в Arduino. Мы разберемся как можно подключить SD карты к Ардуино, как записывать и считывать информацию. Использование дополнительной памяти может. Читать дальше

30 апреля 2020 1 1558

Ардуино для начинающих. Урок 14. Прерывания.

Ардуино для начинающих. Урок 14. Прерывания.

В этом уроке мы поговорим о прерываниях. Как понятно из названия, прерывание это событие, которое приостанавливает выполнение текущих задач и передает управление обработчику прерывания. Обработчик прерывания — это функция.Читать дальше

30 апреля 2020 1 1792

Ардуино для начинающих. Урок 13. Беспроводная связь.

Ардуино для начинающих. Урок 13. Беспроводная связь.

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

30 апреля 2020 1 1016

Ардуино для начинающих. Урок 12. Интерфейс SPI.

Ардуино для начинающих. Урок 12. Интерфейс SPI.

В данном уроке рассмотрим SPI интерфейс. Данный способ связи схож с I2C, рассмотренном в прошлом уроке. SPI — это формат последовательной передачи данных от Ведущего устройства (master) к ведомым (slave).Читать дальше

30 апреля 2020 0 827

Ардуино для начинающих. Урок 11. Интерфейс I2C.

Ардуино для начинающих. Урок 11. Интерфейс I2C.

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

30 апреля 2020 9 5407

Ардуино для начинающих. Урок 10. Serial и processing

Ардуино для начинающих. Урок 10. Serial и processing

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

30 апреля 2020 5 1873

Ардуино для начинающих. Урок 9. Моторы и транзисторы

Ардуино для начинающих. Урок 9. Моторы и транзисторы

Сегодня мы поговорим о транзисторах и подключении нагрузки к Arduino. Сама Ардуино не может выдать напряжение выше 5 вольт и ток больше 40 мА с одного пина. Этого достаточно для. Читать дальше

30 апреля 2020 5 1813

Ардуино для начинающих. Урок 8. Аналоговые входы

В этом уроке мы поговорим об аналоговых входах Arduino. Аналоговые пины измеряют напряжение поступающего сигнала с точностью до 0,005 вольт. Благодаря этому мы можем подключать разнообразные датчики и резисторы (термо. Читать дальше

30 апреля 2020 1 1301

Ардуино для начинающих. Урок 7. Основы схемотехники

Ардуино для начинающих. Урок 7. Основы схемотехники

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

30 апреля 2020 7 1895

Ардуино для начинающих. Урок 6. Дребезг контактов

Ардуино для начинающих. Урок 6. Дребезг контактов

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

30 апреля 2020 2 902

Ардуино для начинающих. Урок 5. Кнопки, ШИМ, функции

Ардуино для начинающих. Урок 5. Кнопки, ШИМ, функции

В этом уроке мы узнаем: как подключить кнопку к ардуино, как подавить дребезг контактов, как в прошивке обработать нажатие на кнопку, как послать ШИМ сигнал, как создать свою функцию и. Читать дальше

30 апреля 2020 24 5383

Ардуино для начинающих. Урок 4. Макетная плата BREADBOARD

Ардуино для начинающих. Урок 4. Макетная плата BREADBOARD

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

30 апреля 2020 0 911

Ардуино для начинающих. Урок 3. Первые шаги

Ардуино для начинающих. Урок 3. Первые шаги

Это первое обучающее видео из цикла уроков по arduino для начинающих. В этом уроке мы узнаем: как подключить ардуино к компьютеру, как загрузить прошивку на микроконтроллер. А так же мы. Читать дальше

30 апреля 2020 0 2223

Ардуино для начинающих. Урок 2. Как устроена плата Ардуино

Ардуино для начинающих. Урок 2. Как устроена плата Ардуино

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

26 апреля 2020 1 1865

Ардуино для начинающих. Урок 1. Введение.

Ардуино для начинающих. Урок 1. Введение.

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

30 апреля 2020 2 4426

Железо

Стартовый набор с Arduino Mega и RFID

Стартовый набор с Arduino Mega и RFID Это расширенный стартовый набор. В комплект входит Arduino Mega R3, макетные платы, множество датчиков, управляемые механизмы и необходимые радиоэлектронные компоненты. Полный список.

Плата Arduino Uno R3

Плата Arduino Uno R3 Arduino Uno — плата на базе микроконтроллера ATmega328P с частотой 16 МГц. На плате есть все необходимое для удобной и быстрой работы.

Аrduino для начинающих

В этой статье я решал собрать полное пошаговое руководство для начинающих 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. Теперь вы можете сделать простейшие проекты. Что бы продолжить обучение и освоить все тонкости, я советую прочитать книги по ардуино и пройти бесплатный обучающий курс. После этого вы сможете делать самые сложные проекты, которые только сможете придумать.

19 комментариев
  1. Владимир 2019-01-29 16:31:50

Добрый день, господа!
Очень интересный сайт. Много полезной информации и подача материала спокойная.
Мне нравиться.
Вопрос у меня. Чую попал на грамотных спецов.
Приобрел я на Али китайскую чудо технику — лазерный гравировщик-выжигатель (2 Ватт.).
Плата управления Arduino Nano, драйвера на двигатели на красных платках.
Как водится описание слабое, информация. да все по-китайски. Начал разбираться.
Собрал, заработала машина, задымила. Поправил конфигурацию, на одной оси сделал инверсию.
Самое отвратительное — это ПО. Только зайчиков выжигать. Решил сменить.
Залил GRBL v1.1, программу взял LaserGRBL (версия из последних).
Программа увидела девайс, подключилась на СОМ, ожила, тут бы обрадоваться, да нет.
G-код готовится правильно, но команды включения М3 и выключения М5 лазера, которые прописаны в коде, не выполняются.
Лазер включается при включении девайса, и находится включенным все время, даже в остановленном состоянии (G-код еще не запущен, передвижения нет). При быстром передвижении лазера по рисунку он не выключается и все время жгет, рисуя за собой прожженную черту.
Подскажите, пожалуйста, как заставить лазер отключаться согласно G-коду? Как заставить девайс выполнять команды G-кода М3 и М5? Пробовал в конфигурации ставить и $32=1, и $32=0 — никак не реагирует. Жгет без остановки. Перепрошивал v1.1 — бесполезно.
Мне уже 65 отроду. Некогда досконально изучать Arduino. Говорят, что не поступают команды на лазер.
Да тут и ежику понятно. Как это можно исправить? В настройках галочку с ШИМ снял.
Подскажите, пожалуйста.
С уважением Владимир

  • Евгений 2019-12-02 09:02:15

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *