Как написать скетч для ардуино
Перейти к содержимому

Как написать скетч для ардуино

  • автор:

Что такое Arduino

Arduino Mega электронная плата

Arduino – это электронные платы с собственным процессором и памятью, к которым можно подсоединять различные датчики, двигатели, экраны и много других электронных компонентов. Плата Ардуино будет управлять этими компонентами с помощью программы, который вы в нее загрузите. Самые популярные платы для начинающих – это Arduino Uno, Arduino Mega, Arduino Nano и Arduino Leonardo. Кроме этого есть множество других вариантов, подходящих для конкретных случаев.

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

Программы для Arduino пишутся на обычном C++, дополненным простыми и понятными функциями для управления вводом/выводом на контактах.

Для удобства работы с Arduino существует бесплатная официальная среда программирования «Arduino IDE», работающая под Windows, Mac OS и Linux.

Arduino IDE

Принцип бутерброда

Ещё одной отличительной особенностью Arduino является наличие плат расширения, так называемых shields или просто «шилдов». Это дополнительные платы, которые ставятся подобно слоям бутерброда поверх Arduino, чтобы дать ему новые возможности. Так например, существуют платы расширения для подключения к локальной сети и интернету (Ethernet Shield), для управления мощными моторами (Motor Shield), для получения координат и времени со спутников GPS (модуль GPS) и многие другие.

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

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

2. Установка и настройка Arduino IDE

Установка Arduino IDE

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

Шаг 1

Выберите версию среды в зависимости от операционной системы.

Шаг 2

Нажмите на кнопку «JUST DOWNLOAD» для бесплатной загрузки Arduino IDE.

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

Запустите среду программирования Arduino IDE.

Соедините Arduino с компьютером по USB-кабелю. На плате загорится светодиод «ON» и начнёт мигать светодиод «L». Это значит, что на плату подано питание и микроконтроллер начал выполнять прошитую на заводе программу «Blink».

Для настройки Arduino IDE на работу с конкретной платой Arduino — узнайте какой номер COM-порта присвоил компьютер данной платформе. Зайдите в «Диспетчер устройств» Windows и раскройте вкладку «Порты (COM и LPT)».

Операционная система распознает плату Arduino как COM-порт и назначит ей номер. Если вы подключите к компьютеру другую плату Arduino, операционная система назначит ей другой номер. Если у вас несколько плат Arduino, очень важно не запутаться в номерах COM-портов.

Настройка Arduino IDE

Для настойки среды Arduino IDE с конкретной платформой Arduino — необходимо выбрать название модели Arduino и номер присвоенного плате COM-порта.

Для установки модели платы Arduino зайдите в меню: Инструменты Плата и выберете плату «Arduino Uno».
Для выбора номера COM-порта перейдите в меню: Инструменты Порт и выберете нужный порт.

3. Скетч

Загрузка первого скетча

Sketch — это название программ для Arduino. Это единичный проект, который загружается и выполняется платой.

Arduino IDE содержит большой список готовых примеров в которых можно быстро подсмотреть решение какой-либо задачи. Выберем самый распространенный пример — «Blink».

Загрузите скетч в Arduino и проверьте.

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

4. Библиотеки

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

Подключение библиотек

Библиотеки в составе Arduino IDE

Очень много библиотек идет в составе Arduino IDE. Добавить библиотеку в свой код можно из меню Эскиз Импорт библиотек… Название библиотеки :

После выбора пункта «Servo» Arduino IDE сама вставит в код нужные строчки:

#include void setup() < // установочный код, выполняется один раз >void loop() < // основной код, выполняется циклично после установочного кода >

Конечно, если вы знаете название нужной библиотеки, можно просто написать в самом верху скетча #include — результат будет тем же самым.

Чтобы посмотреть пример работы с библиотекой, идущей в составе Arduino IDE необходимо выбрать в меню Файл Образцы Название библиотеки Название примера

Сторонние библиотеки

Библиотек для Arduino действительно очень много. И только незначительная часть из них входит в состав Arduino IDE. Многие библиотеки можно найти на сайте GitHub.

Давайте попробуем добавить в свой проект библиотеку для работы с четырёхразрядным индикатором. Ссылка на библиотеку для работы с ним есть на странице описания товара. Если зайти на страницу библиотеки, можно увидеть множество файлов библиотеки и примеры работы с ней. Но нас пока будет интересовать только кнопка Download ZIP : После нажатия на неё начнётся загрузка .zip-архива со всеми файлами библиотеки. В данном случае это будет файл QuadDisplay-master.zip . Название библиотеки может состоять только из латинских букв и цифр, при этом название не может начинаться с цифры, поэтому давайте сразу переименуем наш архив. Теперь он будет называться QuadDisplay.zip .

После загрузки архива нужно зайти в Arduino IDE и выполнить импорт библиотеки в вашу рабочую папку Sketchbook/libraries , в которой должны находится все сторонние библиотеки. Сделать это можно прямо из Arduino IDE, в меню Эскиз Импорт библиотек… Добавить библиотеку… : Откроется диалоговое окно, в котором необходимо выбрать наш архив QuadDisplay.zip и нажать кнопку Open . Готово. Теперь библиотеки можно добавлять в код. Примеры работы с библиотекой доступны в меню Файл Sketchbook libraries Название библиотеки Название примера

В Arduino 1.6.7 и выше: Файл Примеры Название библиотеки Название примера

Создание библиотеки

Обычно, при создании библиотеки создаются два файла: заголовочный файл и файл с кодом библиотеки. Давайте попробуем написать библиотеку, которая бы позволяла нам посчитать площадь круга. Создадим в директории %Sketchbook%\Arduino\libraries папку с названием нашей библиотеки (название может состоять только из латинских букв и цифр, при этом не может начинаться с цифры). Давайте назовём нашу библиотеку circleArea. Перейдём в созданную нами папку %Sketchbook%\Arduino\libraries\circleArea и создим там два файла:

circleArea.h — заголовочный файл
circleArea.cpp — файл с кодом библиотеки.

Код circleArea.h будет таким:

#include // пригодится, мы будем использовать числовые типы #define PI 3.14 // два знака после запятой — достаточная точность. //Объявляем нашу библиотечную функцию, ради которой все и затевалось float circleArea(float radius);

Код circleArea.cpp будет таким:

#include // пригодится, мы будем использовать числовые типы #include // функцию pow() мы возьмём отсюда #include // в заголовочном файле находится PI и объявление функции //Реализуем нашу библиотечную функцию, ради которой все и затевалось float circleArea(float radius)

Использование библиотеки в скетче будет таким:

5. Breadboard

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

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

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

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

Беспаечные монтажные платы используют как для создания простеньких электросхем, так и для сложных прототипов.

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

Так откуда появилось это название — breadboard? Много лет назад, когда электронные компоненты были большими и неуклюжими, многие «самодельщики» в своих «гаражах» собирали схемы с использованием подставок для нарезки хлеба

breadboard

Макетная плата для монтажа без пайки имеет пластиковое основание с множеством отверстий (стандартное расстояние между ними составляет 2,54 мм). Внутри конструкции расположены ряды металлических пластин. На каждой пластине имеются клипсы (5 в ряду), которые спрятаны в пластиковой части установки. Включение проводов выполняется именно в эти клипсы. При подключении проводника к одному из отдельных отверстий, контакт одновременно подключается и ко всем остальным контактам отдельного ряда.

Некоторые макетные платы включают также по две линии питания с каждой из сторон. Обычно «красная линия» используется для подачи «+» напряжения, «синяя» — для «-». За счет наличия двух шин питания на плату могут подаваться два различных уровня напряжения.

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

breadboard3

Внимание! Беспаечные макетные платы абсолютно недопустимо использовать с напряжением 220В!

Arduino для начинающих. Часть 1

Доброго времени суток, Хабр. Запускаю цикл статей, которые помогут Вам в знакомстве с Arduino. Но это не значит, что, если Вы не новичок в этом деле – Вы не найдёте ничего для себя интересного.

Введение

Было бы не плохо начать со знакомства с Arduino. Arduino – аппаратно-программные средства для построения систем автоматики и робототехники. Главным достоинством есть то, что платформа ориентирована на непрофессиональных пользователей. То есть любой может создать своего робота вне зависимости от знаний программирования и собственных навыков.

Начало

Создание проекта на Arduino состоит из 3 главных этапов: написание кода, прототипирование (макетирование) и прошивка. Для того, чтоб написать код а потом прошить плату нам необходима среда разработки. На самом деле их есть немало, но мы будем программировать в оригинальной среде – Arduino IDE. Сам код будем писать на С++, адаптированным под Arduino. Скачать можно на официальном сайте. Скетч (набросок) – программа, написанная на Arduino. Давайте посмотрим на структуру кода:

main() < void setup()< >void loop() < >>

Важно заметить, что обязательную в С++ функцию main() процессор Arduino создаёт сам. И результатом того, что видит программист есть:

void setup() < >void loop()

Давайте разберёмся с двумя обязательными функциями. Функция setup() вызывается только один раз при старте микроконтроллера. Именно она выставляет все базовые настройки. Функция loop() — циклическая. Она вызывается в бесконечном цикле на протяжении всего времени работы микроконтроллера.

Первая программа

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

int Led = 13; // объявляем переменную Led на 13 пин (выход) void setup() < pinMode(Led, OUTPUT); // определяем переменную >void loop()< digitalWrite(Led, HIGH); // подаём напряжение на 13 пин delay(1000); // ожидаем 1 секунду digitalWrite(Led, LOW); // не подаём напряжение на 13 пин delay(1000); // ожидаем 1 секунду >

Принцип работы этой программы достаточно простой: светодиод загорается на 1 секунду и тухнет на 1 секунду. Для первого варианта нам не понадобиться собирать макет. Так как в платформе Arduino к 13 пину подключён встроенный светодиод.

Прошивка Arduino

Для того, чтоб залить скетч на Arduino нам необходимо сначала просто сохранить его. Далее, во избежание проблем при загрузке, необходимо проверить настройки программатора. Для этого на верхней панели выбираем вкладку «Инструменты». В разделе «Плата», выберете Вашу плату. Это может быть Arduino Uno, Arduino Nano, Arduino Mega, Arduino Leonardo или другие. Также в разделе «Порт» необходимо выбрать Ваш порт подключения (тот порт, к которому вы подключили Вашу платформу). После этих действий, можете загружать скетч. Для этого нажмите на стрелочку или во вкладке «Скетч» выберете «Загрузка» (также можно воспользоваться сочетанием клавиш “Ctrl + U”). Прошивка платы завершена успешно.

Прототипирование/макетирование

Для сборки макета нам необходимы следующие элементы: светодиод, резистор, проводки (перемычки), макетная плата(Breadboard). Для того, чтоб ничего не спалить, и для того, чтоб всё успешно работало, надо разобраться со светодиодом. У него есть две «лапки». Короткая – минус, длинная – плюс. На короткую мы будем подключать «землю» (GND) и резистор (для того, чтоб уменьшить силу тока, которая поступает на светодиод, чтоб не спалить его), а на длинную мы будем подавать питание (подключим к 13 пину). После подключения, загрузите на плату скетч, если вы ранее этого не сделали. Код остаётся тот же самый.

На этом у нас конец первой части. Спасибо за внимание.

Скетчи для Arduino

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

Давайте поговорим об основных нюансах, которые связаны с библиотеками и прошивкой – и вы поймете, насколько это интересно и увлекательно. Последний этап можно разделить на 2 основные шага:

  • применение интегрированных, уже имеющихся примеров;
  • написание отдельных кодов самостоятельно.

Первый вариант является наиболее простым и самым распространенным. Ничего искать и скачивать из сети не нужно. Просто открываем среду Arduino IDE, заходим в меню, выбираем Файл, затем пункт Примеры, иподпункт Basics. Кликаем на один из самых простых примеров:

применение интегрированных примеров

Запускаем его и работаем.

Панель управления

Обратите внимание на Панель управления софта (мы незаслуженно обходили ее стороной, исправляемся). Она имеет несколько клавиш.

Напомним их предназначение:

Кнопки

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

Ну и поговорим немного о сторонних скетчах, которые вы наверняка заметили в каждом нашем материале и схеме подключения на конкретных проектах. Если описывать наглядно, как выглядит методология их применения, то получится так. Сначала вы копируете скетч, вставляете его в соответствующее окно в утилите, кликаете на кнопку Компиляция, дожидаетесь ее окончания. Просто, не так ли?

Добавление скетча

Мы часто предлагали и будем это делать далее готовые скетчи для Arduino Uno. Так вот — многие из них подойдут и под другие контроллеры: Arduino Nano или Arduino Mega, об этом ищите указания в статьях. Это важно!

Фраза «Залить скетч» означает то, что его следует скопировать и вставить в форму для компиляции. Она часто встречается – потому будьте внимательны!

Ну и напоследок отметим, скачать скетчи для Arduino можно на нашем веб-сайте в данном разделе. Выбирайте тот файл, что вам нужен и дерзайте!

А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 не будет опубликован. Обязательные поля помечены *