Микроконтроллер arduino: описание платы, применение

Важные страницы

  • Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
  • Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
  • Полная документация по языку Ардуино, все встроенные функции и макро, все доступные типы данных
  • Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
  • Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
  • Поддержать автора за работу над уроками
  • Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ()

5 / 5 ( 7 голосов )

Платы и модули для функционала

Существует много плат Arduino, описание которых говорит о различиях в объеме памяти, портах, питании, тактовой частоте и др. Одни предназначены для решения простых задач, другие — для решения более сложных.

К популярным платам относятся следующие виды:

  1. Arduino Uno. Наиболее распространенная плата. Есть большой выбор уроков. Плата допускает замену контроллера. Оснащена 14 цифровыми вводами-выводами (6 ШИМ), 6 аналоговыми входами, флеш-памятью 32 Кб (ATmega328), из которых 0,5 Кб использует загрузчик.
  2. Arduino Mega 2560. Создана на базе микроконтроллера ATmega2560. Флеш-память — 256 Кб, из которых 8 Кб использует загрузчик. Имеет 54 цифровых вводов-выводов (14 ШИМ), 16 аналоговых входов, 8 Кб оперативной памяти. Среди всех плат «Ардуино» у этой самый большой размер.
  3. Arduino Due. Оснащена 54 цифровыми вводами-выводами (12 ШИМ), 12 аналоговыми входами (2 выходами). Создана на базе микроконтроллера AT91SAM3X8E с рабочим напряжением 3,3 В и флеш-памятью 512 Кб.
  4. Arduino Pro Mini 3.3V. Самая миниатюрная плата в семействе Arduino. Напряжение — 3,3 В. Требует использования внешнего программатора. Память данных составляет 2 Кб. Создана на базе микроконтроллера ATmega328P. Количество цифровых выводов — 14 линий (6 из которых — ШИМ), аналоговых — 6.
  5. Arduino Pro Mini 5V. Аналог предыдущей модели с напряжением 5 В.
  6. Arduino Nano V3.0. Создана на базе ATmega328. Сдержит 32 Кб памяти, из которых 2 Кб использует загрузчик. Имеет 14 цифровых вводов-выводов (6 ШИМ), 6 аналоговых входов, встроенный порт USB. Напряжение — 5 В.
  7. Arduino Micro. Разновидность платы c возможностью имитировать различные USB-устройства при подключении к ПК. Оснащена 20 цифровыми вводами-выводами (7 ШИМ), 12 аналоговыми входами.

Кроме того, существуют дополнительные модули и датчики с нужными ответвлениями:

  1. Датчики. Системы, считывающие, отправляющие и обрабатывающие информацию. Расширяют аппаратные функции проекта.
  2. Модули. Дополнения, которые позволяют расширить вычислительные мощности проекта. К ним относят карты памяти, вспомогательные процессы.

Датчики можно разделить на категории:

  1. Устройства получения информации. Датчики и сканеры, позволяющие получить сведения об окружающей среде: давлении, температуре, влажности, расстоянии до объектов. Есть возможность вводить параметры, зависящие от этих показаний. С помощью датчика расстояния можно создавать роботы-пылесосы, которые передвигаются по комнате, избегая препятствий.
  2. Устройства обработки информации. Реализуются отдельно или совместно с предыдущими датчиками. Используются для совершения промежуточных операций.
  3. Устройства вывода информации. Это ЖК-экраны, светодиодные индикаторы, сенсорные экраны, динамики и т. д.

Среди наиболее популярных модулей «Ардуино» можно выделить:

  1. Ультразвуковой дальномер HC-SR04. Датчик, позволяющий с помощью ультразвука измерить расстояние от 2 см до 4 м.
  2. Инфракрасный дальномер Sharp. Измеряет расстояние от 20 см до 1,5 м посредством инфракрасного излучения.
  3. Модуль температуры и влажности DHT11. Измеряет температуру в диапазоне от 0 до +50°C и влажность от 20 до 90%. Используется для теплиц или в качестве комнатного термометра. Часто приобретается для умного дома.
  4. Датчик влажности почвы FC-28. Измеряет влажность почвы или другой среды. Нужен для автоматизированного полива растений.
  5. Bluetooth HC-06. Помогает организовать беспроводную связь с другими устройствами.

Из чего состоит плата Arduino?

Выпускаются различные модели Arduino. Каждая из них «заточена» для различных задач. Некоторые платы принципиально отличаются от приведенной на рисунке ниже. Но большинство из них имеют следующие одинаковые узлы:

Разъем питания (USB / разъем для адаптера)

Каждая плата Arduino должна подключаться к источнику питания. Arduino Uno может запитываться от USB кабеля от вашего персонального компьютера Или от отдельного адаптера, который подключается к предусмотренному на плате разъему. На рисунке соединение через USB отмечено (1), а разъем для внешнего источника питания — (2).

USB также используется для загрузки вашей программы (скетча) на плату.

Примечание! Не используйте источник питания с напряжением на выходе более 20 вольт. Это может привести к тому, что ваша плата перегорит. Рекомендуемое напряжение питания для Arduino — от 6 до 12 вольт.

Разъемы (пины) (5V, 3.3V, GND, Analog, Digital, PWM, AREF)

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

  • GND (3): сокращение от ‘Ground’ — ‘Земля’. На платах несколько пинов GND, каждый из которых может использоваться для заземления вашей электрической цепи.
  • 5V (4) и 3.3V (5): как вы могли уже догадаться — питы, которые на выходе обеспечивают питание 5 вольт и 3.3 вольт соответственно. Большинство компонентов, которые подключаются к Arduino, благополучно питаются именно от 5 или 3.3 вольт.
  • Analog (6): на участке, который подписан ‘Analog In’ (от A0 до A5 на Arduino Uno) расположены аналоговые входы. Эти пины позволяют считывать сигналы от аналоговых датчиков (например, датчик температуры) и преобразовывать их в цифровые значения, которыми мы в дальнейшем оперируем.
  • Digital (7): напротив аналоговых пинов находятся цифровые пины (от 0 до 13 на Arduino Uno). Эти пины используются для цифровых входящих (input) сигналов (например, нажатие кнопки) и для генерации цифровых исходящих (output) сигналов (например, питание светодиода).
  • PWM (8): вы наверное заметили знак (~) рядом с некоторыми цифровыми пинами (3, 5, 6, 9, 10, и 11 на UNO). Эти пины работаю как в обычном цифровом режиме, так и в режиме ШИМ-модуляции (PWM). Если объяснить вкратце — эти пины могут имитировать аналоговый выходной сигнал (например, для постепенного затухания светодиода).
  • AREF (9): Этот пин используется достаточно редко. В некоторых случаях это подключают в схему для установки максимального значения напряжения на аналоговых входах (от 0 до 5 вольт).

Кнопка сброса (Reset Button)

Как и на оригинальных Nintendo, на Arduino есть кнопка сброса (reset) (10). При нажатии на нее контакт сброса замыкается с землей и код, загруженный на Arduino начинает отрабатывать заново. Полезная опция, если ваш код отрабатывает без повторов, но вы хотите протестить его работу.

Индикатор питания (Power LED)

Немного справа и ниже надписи “UNO” установлен светодиод, подписанный «on» (11). Этот светодиод должен загореться, когда вы подключили Arduino к источнику питания. Если светодиод не загорелся — плохой знак ;).

Светодиоды TX и RX

TX — сокращение от transmit (передача), RX — от receive (прием). Эти условные обозначения часто встречаются в электронике для обозначения контактов, которые отвечают за серийный обмен данным. На Arduino Uno эти контакты встречаются два раза на цифровых пинах 0 и 1 и в качестве светодиодов TX и RX (12). Эти светодиоды позволяют визуально отслеживать, передает или принимает данные Arduino (например, при загрузке программы на плату).

Главная интегральная микросхема (IC)

Черная деталь с металлическими коннекторами с двух сторон это интегральная микросхема, микропроцессор (IC или Integrated Circuit) (13). Можете смело считать, что это «мозги» нашей Arduino. Этот чип разный в разных моделях Arduino, но обычно он относится к линейке микропроцессоров ATmega от компании ATMEL

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

Для дополнительной информации о вашей микросхеме стоит обратиться к ее даташиту.

Регулятор напряжения

Регулятор напряжения (14) is выполняет функцию, указанную в названии — контролирует напряжение, которое поступает на плату Arduino. Можете его себе представить как охранника, который не пропускает слишком большое напряжение на плату во избежание ее повреждений. Конечно же, у регулятора есть свой предел. Так что питать Arduino напряжением больше 20 вольт нельзя.

Shield, управляющий мощной нагрузкой

Конечно, требовательность коммутируемых устройств здесь не превышает 220В при 5А постоянного тока, но можно подключить к выходам магнитные пускатели, с помощью которых уже управлять гораздо более мощным оборудованием.
Shield, управляющий мощной нагрузкой

Понимание принципов платы расширения и управляющих сигналов Arduino можно определить по схеме устройства:

К сожалению, описанное устройство не может коммутировать сети переменного тока. Для этого используется посредник, подключаемый далее – ICStation 8 Channel EL Escudo Dos Shield for Arduino. Это семисторный вид шилдов Arduino на 8 каналов. Благодаря ему микроконтроллер может управлять шинами переменного тока.
ICStation 8 Channel EL Escudo Dos Shield for Arduino

Для чего нужен String в ардуино

Стандартным способом работы со строками в языке C является использование массива символов. Это все означало необходимость работы с указателями и понимания адресной арифметики. В ардуино и C++ у программистов появилось гораздо больше возможностей. Все “низкоуровневые” операции по работе со строкой выделены в отдельный класс, а для основных операций даже переопределены операторы. Например, для объединения срок мы просто используем хорошо знакомый знак “+”, а не зубодробильные функции типа malloc и strcpy. С помощью String мы работаем со строкой как с целым объектом, а не рассматриваем его как массив символов. Это позволяет сосредоточиться на логике скетча, а не деталях реализации хранения символов в памяти.

Естественно, у любого “упрощения” всегда есть свои подводные камни. String всегда использует больше оперативной памяти и в некоторых случаях функции класса могут медленнее обрабатываться. Поэтому в реальных больших проектах придется тщательно взвешивать все плюсы и минусы и не забывать, что никто не мешает нам работать со строками в стиле С. Все обычные функции обработки массивов char остаются в нашем арсенале и в arduino.

Самый простой проект для начинающих

Рассмотрим несколько простых и интересных проектов Ардуино uno, которые под силу сделать даже новичкам в этом деле — система сигнализации.

Мы уже делали урок по этому проекту — Датчик движения с Arduino, HC-SR04 и светодиодом (LED). Вкратце о то, что делается и как.

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

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

Для этого проекта вам понадобятся:

  1. Ультразвуковой датчик «пинг» – HC-SR04.
  2. Пьезо-зуммер.
  3. Светодиодная лента.
  4. Автомобильное освещение посредством ленты RGB. В этом руководстве по проекту Arduino вы узнаете, как сделать внутреннее освещение автомобиля RGB, используя плату Arduino uno.

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

Вы можете изменить цвет освещения с помощью устройства Android (телефон или планшет) с помощью приложения «Bluetooth RGB Controller» (Dev Next Prototypes), которое вы можете бесплатно загрузить с Android Play Store. Также вы можете найти схему электронной EasyEDA или заказать свою собственную схему на основе Arduino на печатной плате.

Что такое bluetooth модуль и его назначение

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

Таким образом, первичное и главное назначение Ардуино блютуз – связь с вашим ПК и\или Андроидом по соответствующему протоколу. Это позволяет не только управлять разнообразными датчиками на микроконтроллере, но и, в случае необходимости, обновлять прошивку.

Полностью перепрошить устройство с его помощью не получится. Помимо этого, Android Arduino bluetooth может обеспечить связь между несколькими МК и приборами. Естественно, для этого на каждом из них должен быть установлен независимый модуль. HC-05 позволяет проложить несколько мостов по типу USAR-bluetooth-USART. При этом само устройство будет восприниматься в качестве ответного на USART. А организовывать связь уже будет аппаратная часть вашего проекта.

Модуль HC-06

У блютуз модуля под Ардуино, есть несколько преимуществ, перед стандартными дополнениями под другие МК:

  1. Инженеру нет необходимости изучать технологию протокола блютуз, чтобы написать софт или начать использовать уже готовые библиотеки.
  2. Простота использования в целом. Вам не нужно будет паять отдельную плату под распределение мощностей, просто подсоедините устройство к уже готовому МК через пины.
  3. Обширный выбор библиотек. Так как Ардуино имеет низкий порог вхождения, под все его модули можно найти большое количество библиотек, разного назначения. Но стоит отметить, что весомая их часть – бесполезны, ибо не работают или работают крайне плохо. Ведь пишет их сообщество, которое не изучало основы алгоритмизации и, в большинстве своём, в принципе, плохо разбирается в программировании. Из-за этого, во многих ситуациях, просто модифицировать чужой софт – не лучшее решение, и значительно проще написать свой.

Сфера же применения RC car Arduino bluetooth – огромна и ограничена лишь вашей фантазией. Например, вы можете купить обычную китайскую гарнитуру, припаять к ней пару модулей под Ардуино, так как они могут функционировать и без МК, и загрузить одну из готовых библиотек. После таких манипуляций наушники можно будет использовать в беспроводном режиме и исчезнет проблема с запутывающимися или гнущимися проводами. Это одна из банальных проблем реализации данного протокола в проекте, на деле их тысячи.

Предназначается bluetooth аудио модуль для бытового и коммерческого применения, чему способствуют его характеристики. Также стоит учитывать, что если вы собираетесь в дальнейшем связываться по одноимённому протоколу с ПК, то на большинстве современных устройств необходимо будет докупить блютуз по USB. Но вы можете также спаять его из МК, создав собственный bluetooth модуль для компьютера. Естественно, это не относится к ноутбукам, где поголовно устанавливаются одноимённые передатчики, и никак модифицировать их уже не требуется.

Плюсы Ардуино

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

На платах Ардуино сделаны удобные контакты, которые можно соединять удобными перемычками с любыми сторонними модулями, дисплеями, сенсорами и многим другим.

Пример сборки устройства с помощью перемычек

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

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

  1. Плата обладает встроенным программатором (не нужен компилятор);
  2. Использование языка программирования близкого к C/C++, что делает её простой в использовании и изучении;
  3. Наличие множества библиотек для модулей, сенсоров, дисплеев и т.п., доступных для свободного использования;
  4. Для сбора устройства не требуется пайка, компоненты соединяются при помощи специальной макетной платы, перемычек и проводов;
  5. Возможность автономной работы, т.е. использование батареек или аккумуляторов;
  6. Наличие версии для работы с популярной мобильной операционной системой Android;
  7. Огромное количество различных модулей, сенсоров, дисплеев, датчиков и т.п..
  8. Наличие большого количества плат расширения — shields или «шилды».

Есть еще один очень существенный плюс Arduino — просто невероятно огромное сообщество любителей этих плат и любителей посоздавать различные устройства на ее основе своими руками.

Также замечу, что можно создать устройство как стационарным, так и автономным или переносным.

Наличие портативных аккумуляторов и беспроводных источников передачи данных способствуют созданию ряда интересных проектов.

Установка 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. В окне опций установки отметьте все галочки (см. рисунок).

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

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

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

Популярность устройства

Она дает возможность делать это:

  • без глубоких знаний в области программирования;
  • без создания печатной платы;
  • без необходимости пайки;
  • без создания сложных драйверов управления и преобразования аналогового сигнала.

Составные элементы Ардуино. Подобная система подходит:

  • всем, кто интересуется робототехникой;
  • студентам и преподавателям в технических вузах и училищах;
  • специалистам для возобновления утраченных навыков.

Работа с «Ардуино» помогает непрофессионалу создать умную систему управления домом, самостоятельно сконструировать робота, быстро изучить основы программирования, а студентам — создать дипломный проект.

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

37 датчиков за $37 для Arduino и Raspberry Pi

Какие бывают датчики для Arduino и Raspberry Pi? Сколько они стоят? Предлагаем обзор интересного дешевого набора из 37 датчиков за $37.

Разные датчики. Фото с DX.com

Изучая Arduino или Raspberry Pi, самое интересное, что можно сделать (после мигания светодиодами, подключения потенциометра, кнопки, двигателя и др.) — это, конечно, использование датчиков. Датчики позволяют определять, что происходит во внешней среде, и действовать на основе этой информации. Датчики, наверное, можно назвать органами чувств робота.

Какие бывают датчики для Arduino и Raspberry Pi?

Датчиков, называемых также сенсорами, существует огромное множество и в первую очередь они имеют разное назначение.

Разные датчики. Фото с DX.com

Основные датчики (по назначению):

  • Датчик давления — используется для обнаружения физического давления, например, при щипках, сжимании, толчках.
  • Фотоэлементы — используется для измерения уровня освещенности, обнаружения простого объекта по принципу светлый/темный
  • Датчик температуры — используется для определения температуры окружающей среды или, например, жидкости
  • Датчик вибрации — используется для обнаружения движения / вибрации и ориентации
  • Датчик движения — используется для обнаружения двигательной активности, таких как животных или людей
  • Термопары — используется для измерения температуры, как правило,  выше 150°C.
  • ИК-приемники — используется для обнаружения  инфракрасных-сигналов от пульта дистанционного управления.

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

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

Датчики отличаются по типу сигнала на выходе: аналоговый или цифровой.

Выбирая датчики, можно заметить, что чаще всего упоминается совместимость с Arduino и не упоминается совместимость с Raspberry Pi.

Если же датчик выдает аналоговый сигнал, то подключить напрямую такой датчик к Raspberry Pi можно только с помощью аналого-цифрового преобразователя (АЦП), который часто включают в платы расширения Raspberry Pi.

Набор из 37 датчиков для Arduino

Доставка в обоих магазинах бесплатная.

Набор из 37 датчиков. Фото с Aliexpress

Этот набор содержит датчики и другие модули, позволяющие реализовать  практически любую идею начинающего изучать Arduino, и является хорошим дополнением к наборам Arduino Starter Kit (о том, как выбрать Arduino начинающему и о наборах Arduino Starter Kit мы писали в статье).

Click To Tweet

Подробнее про входящие в этот набор датчики мы напишем отдельно. А сейчас приводим список компонентов, входящий в набор:

  1. Пассивный зуммер KY-006
  2. Активный зуммер KY-012
  3. Двухцветный светодиод KY-029
  4. Трехцветный светодиод KY-011
  5. Трехцветный светодиод KY-009
  6. Трехцветный светодиод KY-016
  7. Семицветный светодиод KY-034
  8. Датчик удара KY-031
  9. Вибровыключатель KY-002
  10. Фоторезистор KY-018
  11. Фоторезистор-выключатель KY-010
  12. Кнопка KY-004
  13. Датчик наклона KY-020
  14. Датчик наклона KY-017
  15. Датчик инфракрасного излучения KY-005
  16. Инфракрасный датчик KY-022
  17. Датчик температуры KY-013
  18. Датчик температуры KY-028
  19. Датчик температуры KY-001
  20. Датчик температуры и влажности KY-015 (сенсор DHT11. Схема подключения здесь)
  21. Датчик звука KY-037
  22. Датчик металла KY-036
  23. Датчик сердцебиения KY-039
  24. Датчик пламени KY-026
  25. Геркон KY-021
  26. Магнитный датчик KY-003
  27. Магнитный датчик KY-035
  28. Датчик магнитного поля KY-025
  29. Датчик магнитного поля KY-024
  30. Датчик магнитного поля KY-033
  31. Модуль световых эффектов «магическая чашка» KY-027
  32. Датчик угла поворота (энкодер) KY-040
  33. Датчик для избегания препятствий KY-032
  34. Датчика звука KY-038
  35. Лазерный модуль KY-008
  36. Реле KY-019
  37. Джойстик KY-023

Все цены приведены по состоянию на день выхода статьи.

Создание строк в ардуино с помощью String

В ардуино у нас есть несколько способов создать строку, приведем основные:

  • char myCharStr = “Start”;  – массив типа char с завершающим пустым символом;
  • String myStr = “Start”; – объявляем переменную, создаем экземпляр класса String и записываем в него константу-строку.
  • String myStr = String(“Start”); – аналогичен предыдущему: создаем строку из константы
  • String myStr(myCharStr); – создаем объект класса String с помощью конструктра, принимающего на вход массив типа char и создающего из char String.
  • String myStr = String(50); – создаем строку из целого числа (преобразование int to string).
  • String myStr = String(30, H); – создаем строку – представление числа в 16-чной системе (HEX to String)
  • String myStr = String(16, B); – создаем строку – представление числа в двоичной системе (Byte to String).

Каждый раз, когда мы объявляем в коде строку с использованием двойных кавычек, мы создаем неявный объект класса String, являющийся константой. При этом обязательно использование именно двойных кавычек: “String” – это строка. Одинарные кавычки нужны для обозначения отдельных символов. ‘S’ – это символ.

Функции

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

Для программистов, работающих с BASIC, функции в Arduino позволяют использовать подпрограммы (GOSUB в BASIC).

Разделения кода на функции имеет ряд преимуществ:

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

Существуют две обязательные функции в скетчах Arduino setup() и loop(). Другие функции должны создаваться за скобками этих функций. В следующем примере будет создана простая функция умножения двух чисел.

Пример

Для вызова функции умножения ей передаются параметры данных:

void loop(){
   int i = 2;
   int j = 3;
   int k;

   k = myMultiplyFunction(i, j); // k содержит 6
}

Созданную функцию необходимо задекларировать вне скобок любой другой функции, таким образом «myMultiplyFunction()» может стоять выше или ниже функции «loop()».

Весь скетч будет выглядеть следующим образом:

void setup(){
  Serial.begin(9600);
}

void loop(){
  int i = 2;
  int j = 3;
  int k;

  k = myMultiplyFunction(i, j); // k содержит 6
  Serial.println(k);
  delay(500);
}

int myMultiplyFunction(int x, int y){
  int result;
  result = x * y;
  return result;
}

Еще один пример

Следующая функция будет считывать данные с датчика функцией analogRead() и затем рассчитывать среднее арифметическое. Затем созданная функция будет масштабировать данные по 8 битам (0-255) и инвертировать их. // датчик подключен к выводу 0

int ReadSens_and_Condition(){
  int i;
  int sval;

  for (i = 0; i < 5; i++){
    sval = sval + analogRead(0);    // сенсор на аналоговом входе 0
  }

  sval = sval / 5;    // среднее
  sval = sval / 4;    // масштабирование по 8 битам (0 - 255)
  sval = 255 - sval;  // инвертирование выходного значения
  return sval;
}

Вызов функции осуществляется присвоением ее переменной.

int sens;

sens = ReadSens_and_Condition();

ITrobo

Курс по Ардуино включает в себя:

Основы работы с Arduino: установка, структура программы, подключение светодиодов, проверка датчиков, создание сигнализации.

Мобильные роботы с Ардуино: motor shild, повороты, движение по линии, управление с телефона, перевороты.

Подключение датчиков и устройств: сервопривод, реле, радиомодуль, клавиатура, ЖК-дисплей, фоторезистор, датчики движения, влажности и света.

Уроки предоставляются бесплатно. Оформлены доступным текстом и иллюстрациями — уроки будут понятны и детям, и взрослым.

Как прошить Arduino UNO на примере Blink.

Запустить приложение Arduino IDE (подойдет любая версия).

Во вкладке Инструменты/Плата: выберите пункт “Arduino/Genuino Uno”

Подключите Arduino UNO к компьютеру с помощью USB кабеля.

Используйте для прошивки короткий кабель, который идет в комплект с платой! Потому что при использовании кабеля длинной более 30 сантиметров могут возникать помехи, из-за чего загрузка скетчей будет не возможна!

Во вкладке Инструменты выбрать порт, к которому подключена плата Arduino UNO.

В моем случае это COM7, у вас может быть другой! Выберите тот который появился при подключении платы!

Теперь откройте тестовый скетч во вкладке Файл/Примеры/Basics/Blink

Или скопируйте этот скетч и вставьте его в чистое окно редактирования приложения Arduino IDE.

В скетче прописана задержка 1 секунда delay(1000); между командами включить и выключить светодиод, можете отредактировать его на свое усмотрение, и нажмите загрузить.

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