Работа схемы
В этом проекте мы напишем программу мигания светодиодом каждые 1000 мс. Для этого мы подсоединим светодиод к контакту PIN13 платы при помощи ограничивающего резистора 220 Ом.
Теперь загрузите программу в плату при помощи нажатия на кнопку Upload Button, находящуюся в верхнем левом углу экрана.
После того как вы успешно загрузили программу в плату в нижнем левом углу экрана должна появиться надпись ’DONE UPLOADING’ и светодиод должен начать мигать.
Важно помнить, что контакты ввода/вывода общего назначения платы Arduino Due имеют предел (ограничение) напряжения в 3.3V. Поэтому мы сможем подать (с помощью платы) на любой из этих контактов напряжение не более 3.3 В
Также не следует подавать на эти контакты внешнее напряжение более 3.3 В потому что это может повредить плату.
Начало использования Arduino
Если вы никогда ранее не программировали, и это ваш первый опыт, то программирование микроконтроллеров Arduino пойдёт куда проще, если вы начнёте с основ.
Конечно, когда в планах у вас нет никаких сложных проектов, можете работать на готовых библиотеках и параллельно разбирать, из чего состоят их функции. Это один из хороших способов обучения, но тогда стоит искать наборы функций, которые писались профессионалами, чтобы быть уверенным в их правильности.
Иначе вы можете увидеть неправильное решение задачи и, в результате, применять те в своих проектах.
Но куда лучше начать с основ и посвятить хотя бы неделю освоению алгоритмизации и научиться разбивать свои проекты на блоки, а те – уже на конкретные шаги. Подобное построение блок-схем вам не раз пригодится в будущем.
Когда вы изучите весь базис, можно переходить к практике и самообучению на С++, подойдут любые простейшие проекты или заготовленные в интернете задачи.
На этом этапе вашей целью станет понять основные парадигмы и научиться их использовать, а также изучить возможности языка, чтобы вы чётко знали, что он может, и могли здраво оценить реализуемость ваших проектов.
Настройка навыка «Домовёнок Кузя»
Перейдите на сайт навыка и авторизуйтесь там через Яндекс. Далее жмите на Добавить правило HTTP (GET). Перед вами откроется форма настройки правила.
Активационная фраза — название запроса, которое будет отображаться в списке (например «свет на кухне, включение»). Если вы не планируете контролировать умный дом конкретно изнутри навыка, то больше фраза нигде не понадобится. Поле Ответ Кузи тоже оставляйте пустым. В поле URL вставляете соответствующий веб-хук на включение света (виртуального порта). Остальные параметры можно не изменять. После этого нужно сделать идентичное правило на выключение света.
Пример настройки правила на включение света
Дальше нужно перейти во вкладку виртуальных устройств и добавить устройство «Лампа». Тут нужно дать название устройству, по которому его будет идентифицировать Алиса. Например: свет, бра, подсветка, лампа или торшер. Место расположения — комната, в которой будет установлено устройство. Это нужно на тот случай, если в нескольких комнатах будут одинаковые по названию элементы. К тому же, одной голосовой командой можно включать и выключать все устройства в определённой комнате.
В Правило на включение/выключение из списка выбираете соответствующие запросы. В лампе имеется возможность управления яркостью. Для этого нужно создать ещё одно правило, но значение параметра установить как . Тогда в запрос будет подставляться число от 0 до 100, которое будет обозначать требуемую яркость. Вам лишь остаётся обработать это значение в скетче.
Пример настройки виртуального устройства
Примечание Если вы планируете изменять яркость, то параметр value в веб-хуке на включение нужно изменить с 1 на 100.
Минусы плат
Но столько хвалебных высказываний о МК – это лишь одна сторона медали, новичку же стоит быть готовым и к противоположной.
Низкое качество кода, который находится в сети
Низкий порог вхождения и необходимость в знаниях основ программирования на СИ, и вообще любом языке строгой типизации – вещи несовместимые.
Вот и большинство библиотек в русском комьюнити пишутся людьми, которые захотели попробовать свои силы, и просто накидали обрывки чужого кода, кое-как расшифровав его содержание.
Естественно, оптимизация таких библиотек минимальна, поэтому система может лагать, крашиться, а утечка памяти – и вовсе обыденный баг. Единственное решение – пользоваться англоязычной частью форумов, где качество контента на порядок выше, ведь контролируется куда строже.
Производительность
Здесь всё, опять же, познается в сравнении. Взяв болванку с базовыми инструкциями и написав собственную библиотеку под неё, программист докажет вам, что Ардуино тупит на 2-3 миллисекунды, что совершенно непростительно для микропроцессоров.
Естественно, здесь стоит иметь в виду, что вы такими извращениями заниматься не будете, да и подобная вычурность свойственна не каждому.
Однако недостаток присутствует и может серьезно аукнуться в системах, требующих обработки больших массивов информации. А учитывая предыдущий пункт, на вас свалится снежный ком, который не всегда можно будет разгрести.
Но пока вы реализуете лишь проекты для Аrduino uno для начинающих, старайтесь изучать эту сторону вопроса, ведь лучше быть готовым заранее.
Различие стандартов, воспринимаемых системой
Это уже будет важно тем, кто берет систему, как основу для практического кодинга, а не удобный конструктор под реализацию идей. Имейте в виду, что Аrduino uno r3 проекты для начинающих не будут включать поддержку стандарта С99, а вот обычная планка Ардуино – будет
Имейте в виду, что Аrduino uno r3 проекты для начинающих не будут включать поддержку стандарта С99, а вот обычная планка Ардуино – будет.
Соответственно, скакать между двумя стандартами синтаксиса и библиотеками – не самое приятное занятие. Говорить об отсутствии поддержки сколь-нибудь высокого уровня абстракции и вовсе не стоит.
Но необходимо понимать, что это программирование микропроцессоров, и здесь с++ будет столь же бесполезен, сколь и java при написании ОС.
Библиотеки в Arduino Web Editor
К настоящему времени сообществом Arduino написано более 700 библиотек, которые вы можете включить в ваши скетчи в Arduino Web Editor даже не устанавливая их. Вы можете посмотреть их все в менеджере библиотек (Library Manager) и отметить из них те, которые вам понравились больше всего. Из менеджера библиотек все эти библиотеки легко (автоматически) интегрируются в вашу программу без необходимости их установки.
Поскольку все эти библиотеки располагаются на серверах официального сайта Arduino, то если вы предоставите доступ к вашему скетчу кому то еще, то он в Arduino Web Editor просто может скопировать его код к себе также не утруждая себя какими либо действиями по установке и использованию данных библиотек.
Если в обычных условиях (в оффлайн Arduino IDE) предоставление доступа к своему скетчу со всеми используемыми им библиотеками может быть весьма утомительной задачей, то Arduino Web Editor может значительно упростить и ускорить данный процесс. К примеру, можете протестировать скетч Thermostat Bot с большим количеством используемых им библиотек.
Но что делать если вы хотите использовать строго определенную версию библиотеки? Для этого найдите эту библиотеку в менеджере библиотек и отметьте ее звездочкой – то есть добавьте ее в избранные. После этого она появится во вкладке «избранное» (Favorite) на панели библиотек (Libraries panel). И здесь вы уже можете указать нужную версию данной библиотеки и включить ее в ваш скетч. Сервис Arduino Web Editor добавляет в скетч специальные метаданные с номером версии библиотеки, поэтому компилятор (Arduino Builder) подключит в ваш скетч именно ту версию библиотеки, которая вам нужна. Во время компиляции скетча в этом онлайн редакторе сначала учитываются кастомные (custom) библиотеки, затем те библиотеки, которые вы добавили к себе в избранное, и затем встроенные (built-in) библиотеки Arduino.
Если вы добавили библиотеку к себе в избранные вы можете посмотреть примеры ее использования (related examples), получить подробную информацию по ней и также ссылку на сервис GitHub, откуда вы можете ее скачать.
Если вы хотите импортировать в свой скетч пак (сборник) определенных библиотек, то вам необходимо заархивировать их все в виде единого zip файла и затем импортировать его в сервис.
Источник статьи
Монитор последовательной связи (Serial Monitor)
В Arduino Web Editor монитор последовательной связи Serial Monitor доступен в боковой панели.
Монитор последовательной связи считывает данные с платы, которая в данный момент выбрана в списке плат. Если вы хотите сменить плату (например, у вас к компьютеру подсоединено несколько плат), то просто выберите необходимую плату в списке плат. При смене платы автоматически обновится и используемый последовательный порт.
Если хотите протестировать работу монитора последовательной связи, можете открыть пример Examples > 03.Analog > AnalogInOutSerial. Загрузите код этого примера в плату и после этого вы увидите результат его работы.
В то время когда код программы будет загружаться панель будет серого цвета как показано на следующем рисунке.
Если в это время никакой платы к компьютеру не подсоединено высветится сообщение о том, что последовательный порт недоступен.
Если этот же самый порт используется и другими программами (например, Processing или десктопными приложениями), появится предупреждающее сообщение о том, что порт используется другим программным обеспечением.
Если вы хотите освободить этот порт для работы других приложений просто нажмите кнопку Disconnect (разъединиться) на панели.
Что умеет Ардуино
С технической точки зрения, Ардуино умеет принимать и отправлять сигналы в соответствии с инструкциями в прошивке. Звучит весьма скромно, но на практике это позволяет получать и обрабатывать информацию с сенсоров и передавать команды исполнительным механизмам или другим устройствам. Например: микроконтроллер может получать данные с датчиков температуры, давления, влажности и выводить сводную информацию на дисплей.
Этих возможностей хватает для реализации сложных устройств, таких как беспилотные летательные аппараты, 3D-принтеры, роботизированные манипуляторы, радиоуправляемые машинки, лодки, вездеходы и т. д. Возможности Ардуино ограничены только воображением. Если вам будет не хватать возможностей Ардуино, то существуют более мощные микроконтроллеры такие как Ардуино Мега, NodeMCU, STM32, Wemos, Raspberry Pi, Orange Pi.
Первый запуск Arduino IDE
Запустите «Arduino IDE», кликнув два раза на файл arduino.exe. Вы увидите такое окно:
Именно в этом окне мы и будем создавать и отправлять в микроконтроллер все программы. Однако, прежде чем мы напишем первую программу, мы должны установить еще две вещи.
Блок питания 0…30 В / 3A
Набор для сборки регулируемого блока питания…
Подробнее
В меню «Инструменты — Плата» выберите версию Arduino, которая у вас уже есть (например, Arduino UNO):
а в «Инструменты — Порт» выберите порт, к которому подключена плата Arduino (это тот порт, который нужно было запомнить во время установки драйверов).
На этом все, теперь мы можем уже перейти к программированию
Что такое Arduino
К сожалению некоторые начинающие радиолюбители считают Arduino микроконтроллером, но это не совсем так. Давайте попробуем разобраться что же это.
Arduino представляет собой платформу разработки с открытым исходным кодом, которая состоит из простого в использовании оборудования и среды программирования. Наиболее распространенным типом оборудования является Arduino UNO, а среда программирования называется Arduino IDE. Кроме Arduino UNO существует еще достаточно много аналогичных плат — Arduino Mega, nano, mini, но в данной статье в целях обучения мы будем использовать именно Arduino UNO. А Arduino IDE – это как раз та программная среда, с помощью которой мы будем программировать плату Arduino UNO.
Какие бывают платы
По производителю
Существуют как официальные версии плат Arduino, так и платы от сторонних производителей. Оригинальные платы отличаются высоким качеством продукта, но и цена тоже выше. Они производятся только в Италии и США, о чём свидетельствует надпись на самой плате.
На примере самой популярной платы Arduino UNO:
-
Оригинальная плата. Поставляется только в фирменной коробке, имеет логотип компании, на портах платы — маркировка. Цена от производителя 20 €.
-
Плата от стороннего производителя. Качество хуже, однако цена начинается от 150 рублей. Качество платы может отразиться на её работоспособности в дальнейшем. Хоть это и редкость, но плата и вовсе может не работать «из коробки» — всё зависит от добросовестности изготовителя и продавца. Для работы с подобными платами требуется драйвер CH340, который находится в свободном доступе. Во всём остальном процесс разработки идентичен процессу разработки на оригинальных платах.
По назначению
У платы UNO достаточно портов для реализации большинства проектов. Однако иногда возможностей UNO может быть недостаточно, а иногда — избыточно. По этой причине как оригинальный, так и сторонние производители выпускают большое количество плат, различающихся характеристиками микроконтроллера, количеством портов и функциональным назначением.
Различные платы Arduino. Источник
Самые популярные из них:
- Arduino Nano — различие с UNO только в конструктивном исполнении. Nano меньше.
- Arduino Mega — плата на базе мощного микроконтроллера. Имеет большое количество портов.
- Arduino Micro — имеет встроенную поддержку USB-соединения, а потому может использоваться как HID-устройство (клавиатура, мышь, MIDI-устройство).
- Arduino Ethernet — имеет возможность подключения к сети через Ethernet-провод. На плате также расположен слот для microSD карточки.
- Arduino Mini — по характеристикам немного уступает UNO. Преимуществом платы является её миниатюрное исполнение.
- Arduino Due — плата на базе 32-разрядного ARM микроконтроллера. Имеет преимущество в производительности по сравнению с остальными.
- Arduino LilyPad — форм-фактор позволяет использовать плату в предметах одежды и текстиля.
- Arduino Yún — «нужно было ставить линукс…». Имеет поддержку дистрибутива Linux, встроенную поддержку Ethernet и Wi-Fi, слот для microSD. Как и Micro, имеет встроенную поддержку USB-соединения.
4
4Использование библиотеки ArduinoThreadдля создания параллельных потоков
Чтобы решить поставленную задачу, воспользуемся замечательной библиотекой ArduinoThread, которая позволяет с лёгкостью создавать псевдо-параллельные процессы. Она работает похожим образом, но позволяет не писать код по проверке времени – нужно выполнять задачу в этом цикле или не нужно. Благодаря этому сокращается объём кода и улучшается читаемость скетча. Давайте проверим библиотеку в действии.
Библиотека ArduinoThread
Первым делом скачаем с официального сайта архив библиотеки и разархивируем его в директорию libraries/ среды разработки Arduino IDE. Затем переименуем папку ArduinoThread-master в ArduinoThread.
Схема подключений останется прежней. Изменится лишь код программы.
#include <Thread.h> // подключение библиотеки ArduinoThread const int soundPin = 3; // переменная с номером пина пьезоэлемента const int ledPin = 13; // переменная с номером пина светодиода Thread ledThread = Thread(); // создаём поток управления светодиодом Thread soundThread = Thread(); // создаём поток управления сиреной void setup() { pinMode(soundPin, OUTPUT); // объявляем пин 3 как выход. pinMode(ledPin, OUTPUT); // объявляем пин 13 как выход. ledThread.onRun(ledBlink); // назначаем потоку задачу ledThread.setInterval(1000); // задаём интервал срабатывания, мсек soundThread.onRun(sound); // назначаем потоку задачу soundThread.setInterval(20); // задаём интервал срабатывания, мсек } void loop() { // Проверим, пришло ли время переключиться светодиоду: if (ledThread.shouldRun()) ledThread.run(); // запускаем поток // Проверим, пришло ли время сменить тональность сирены: if (soundThread.shouldRun()) soundThread.run(); // запускаем поток } // Поток светодиода: void ledBlink() { static bool ledStatus = false; // состояние светодиода Вкл/Выкл ledStatus = !ledStatus; // инвертируем состояние digitalWrite(ledPin, ledStatus); // включаем/выключаем светодиод } // Поток сирены: void sound() { static int ton = 100; // тональность звука, Гц tone(soundPin, ton); // включаем сирену на "ton" Гц if (ton }
В программе мы создаём два потока – ledThread и soundThread, каждый выполняет свою операцию: один мигает светодиодом, второй управляет звуком сирены. В каждой итерации цикла для каждого потока проверяем, пришло ли время его выполнения или нет. Если пришло – он запускается на исполнение с помощью метода run(). Главное – не использовать оператор delay(). В коде даны более подробные пояснения.
Параллельное выполнение потоков на Arduino
Загрузим код в память Ардуино, запустим. Теперь всё работает в точности так, как надо!
Характеристики Arduino
Как я уже говорил, существует множество типов плат Arduino, но самая популярная из них — это Arduino Uno, именно на ней мы остановимся в этой статье. Вот ее характеристики:
- Процессор: ATmega16U2 16 МГц;
- Флеш память: 32 Кб;
- Оперативная память 2 Кб;
- Рабочее напряжение: 5 Вольт;
- Входное напряжение: 7-12 Вольт;
- Количество аналоговых входов: 6;
- Количество цифровых входов/выходов: 14;
- Количество выходов ШИМ: 6.
Спецификации могут показаться ничтожными по сравнению с характеристиками ПК, но помните, что Arduino — это всего лишь микроконтроллер, предназначенный для обработки намного меньшего количества информации, чем компьютер. Таких характеристик вполне достаточно для многих проектов электроники. Еще одна отличная особенность Arduino — это возможность использовать платы расширений. Например, вы можете даже добавить экран.
Библиотеки Arduino
Библиотеки Arduino представляют собой коллекции функций, которые позволят вам управлять устройствами. Вот некоторые из наиболее широко используемых библиотек:
- – чтение и запись в «постоянно» хранилище;
- – для подключения к интернету, используя плату Arduino Ethernet Shield;
- – для связи с приложениями на компьютере, используя стандартный последовательный протокол;
- – для подключения к сети GSM/GRPS с помощью платы GSM;
- – для управления жидкокристаллическими дисплеями (LCD);
- – для чтения и записи SD карт;
- – для управления сервоприводами;
- – для связи с устройствами, используя шину SPI;
- – для последовательной связи через любые цифровые выводы;
- – для управления шаговыми двигателями;
- – для отрисовки текста, изображений и фигур Arduino TFT экранах;
- – для подключения к интернету, используя плату Arduino WiFi shield;
- – двухпроводный интерфейс (TWI/I2C) для передачи и приема данных через сеть устройств или датчиков.
Настройка Алисы
В приложении Яндекс перейдите в раздел Устройства→Управление устройствами. Нажмите на кнопку «Добавить»→«Другое устройство». В открывшемся списке найдите навык «Домовёнок Кузя».
Авторизуйтесь в нём. Возможно, нужно будет ввести код объединения устройств, указанный в панели управления умным домом. Потом нажмите на Обновить список устройств.
На этом этом этапе вы уже создали умный дом своими руками. Теперь система полностью готова к голосовому контролю. К ней имеет доступ лишь ваш аккаунт. В настройках виртуальных устройств можно расширить доступ на другие аккаунты.
— Алиса, включи свет.
Установка 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 с минимумом кода внутри него – см. рисунок.
Способы управления через Blynk
На данный момент есть два варианта управлять пином:
С помощью вебхуков
- https://blynk-cloud.com/<ваш_токен>/update/V0?value=1 — для замыкания реле
- https://blynk-cloud.com/<ваш_токен>/update/V0?value=0 — для размыкания реле
С помощью мобильного приложения blynk
- Вернёмся к созданному ранее проекту и добавим простую кнопку с помощью иконки «+» в верхнем правом углу приложения.
- Выберем в открывшемся меню «Button» и разместим, где удобней.
- Зададим виртуальный пин, управлять которым мы будем этой кнопкой. Для этого просто тапнем по созданной кнопке.
- По желанию называем кнопки, задаём цвет и текст, для включенного и выключенного состояний.
- Тип «Push<>Switch» (кнопка или переключатель). Push — нажали и отпустили, пин выключился. Switch — нажали и отпустили, пин запомнил состояние.
Монитор последовательной связи (Serial Monitor)
В Arduino Web Editor монитор последовательной связи Serial Monitor доступен в боковой панели.
Монитор последовательной связи считывает данные с платы, которая в данный момент выбрана в списке плат. Если вы хотите сменить плату (например, у вас к компьютеру подсоединено несколько плат), то просто выберите необходимую плату в списке плат. При смене платы автоматически обновится и используемый последовательный порт.
Если хотите протестировать работу монитора последовательной связи, можете открыть пример Examples > 03.Analog > AnalogInOutSerial. Загрузите код этого примера в плату и после этого вы увидите результат его работы.
В то время когда код программы будет загружаться панель будет серого цвета как показано на следующем рисунке.
Если в это время никакой платы к компьютеру не подсоединено высветится сообщение о том, что последовательный порт недоступен.
Если этот же самый порт используется и другими программами (например, Processing или десктопными приложениями), появится предупреждающее сообщение о том, что порт используется другим программным обеспечением.
Если вы хотите освободить этот порт для работы других приложений просто нажмите кнопку Disconnect (разъединиться) на панели.
Платы и модули, раскрывающие функционал Arduino
Платы Ардуино различаются в частоте процессора, объемах памяти и поддерживаемых архитектурах. Можно выделить следующие модели:
- Arduino Uno. Хорошее решение для начинающих пользователей и простых проектов. Поддерживает работу с Windows, Linux и MacOS. Встроенный микропроцессор работает на частоте 16 МГц, обладает 32 Кб встроенной памяти. Включается в комплекты для начинающих;
- Arduino Yun. Комплект с встроенным портом Ethernet и модулем WiFi. Оптимизирован для работы с семейством Linux. Подойдёт для работы как с любительскими, так и промышленными проектами;
- Arduino ADK. Устройство оптимизировано для работы с платформой Android. Хорошая совместимость и уникальный программный комплект позволяют создать проект, управляемый с мобильного телефона;
- Arduino Due. Улучшенная версия, работающая на мощном 32 битном ARM процессоре с тактовой частотой 84 МГц. В плату установлено 96 Кб SRAM и 512 Кб флеш-памяти.
- Arduino Nano. Одна из самых миниатырных, но очень полезных и популярных плат особенностью которой является разъем USB.
Это далеко не вся линейка плат. Существуют и другие модификации, созданные для выполнения разнообразных целей. Перед приобретением платы нужно заранее продумать будущий проект и выявить требующиеся технические характеристики. Полностью раскрыть потенциал Arduino позволяют дополнительные модули, подключающиеся к PIN-слотам центральной платы. Наиболее интересные и популярные модули расширения, они же шилды:
- 3D-джойстик. Своеобразный программируемый 3D-стик, способный стать способом управления спроектированного механизма или робота;
- Bluetooth-модуль. Даёт возможность управления механизмом или обменом данными через Bluetooth;
- EasyVR Shield 3.0. Разработка, служащая для распознавания голосовых команд;
- Espruino Pico. Контролер, позволяющий выполнять Java-скрипты, расширяя варианты применения платы;
- GPRS Shield. Расширение, позволяющее принимать и отправлять голос, SMS и GPRS-данные;
- Motor Shield. Подключаемый модуль, позволяющий программно управлять двумя моторчиками;
- Power Bank. Аккумулятор для переносных компактных модулей на 2000 МАч.
Рассмотрев список выше, вы уже представили множество вариантов применения дополнительных модулей. Это далеко не весь список, а лишь популярные и распространённые устройства. Существуют разнообразные подключаемые картридеры, акселерометры, передатчики и модули для разнообразных сфер жизнедеятельности. Andruino начинает эффективно применяться даже в медицине.
Шилды присоединяются друг к другу методом постройки башни. Нужные платы кладутся друг на друга, что положительно сказывается на компактности устройства и отсутствию потребности в дополнительных проводах и пайке.
Аналоговые входы Arduino
Как мы уже знаем, цифровые пины могут быть как входом так и выходом и принимать/отдавать только 2 значения: HIGH и LOW. Аналоговые пины могут только принимать сигнал. И в отличии от цифровых входов аналоговые измеряют напряжение поступающего сигнала. В большинстве плат ардуино стоит 10 битный аналогово-цифровой преобразователь. Это значит что 0 считывается как 0 а 5 В считываются как значение 1023. То есть аналоговые входы измеряют, подаваемое на них напряжение, с точностью до 0,005 вольт. Благодаря этому мы можем подключать разнообразные датчики и резисторы (терморезисторы, фоторезисторы) и считывать аналоговый сигнал с них.
Для этих целей в Ардуино есть функция analogRead(). Для примера подключим фоторезистор к ардуино и напишем простейший скетч, в котором мы будем считывать показания и отправлять их в монитор порта. Вот так выглядит наше устройство:
Подключение фоторезистора к Ардуино
В схеме присутствует стягивающий резистор на 10 КОм. Он нужен для того что бы избежать наводок и помех. Теперь посмотрим на скетч:
Вот так из двух простейших элементов и четырех строк кода мы сделали датчик освещенности. На базе этого устройства мы можем сделать умный светильник или ночник. Очень простое и полезное устройство.
Вот мы и рассмотрели основы работы с Arduino. Теперь вы можете сделать простейшие проекты. Что бы продолжить обучение и освоить все тонкости, я советую прочитать книги по ардуино и пройти бесплатный обучающий курс. После этого вы сможете делать самые сложные проекты, которые только сможете придумать.
Микроконтроллеры, модули и сенсоры
Микроконтроллеров Arduino существует несколько вариантов. Большинство плат ардуино мы собрали на этой странице. Там есть вся необходимая информация о конкретных моделях плат Arduino. Еще вы найдете требования к питанию, характеристики, назначения контактов конкретной платы ардуино. Самая распространенная ардуино — микроконтроллер Arduino Uno.
Arduino Uno
Arduino Uno
Подробное описание характеристик этого микроконтроллера вы сможете найти здесь. Эта плата прекрасно подходит для большинства задач, в том числе для обучения. Именно для этой платы создано большинство плат расширения (Shield). Они помогают с легкостью расширить функционал платы микроконтроллера ардуино. Характеристик самой Arduino Uno достаточно для большинства проектов. Для создания законченных устройств лучше подходят более маленькие представители семейства Ардуино. Это такие платы как Arduino Nano или Arduino Pro Mini.
All-Arduino
Программирование микроконтроллеров Arduino осуществляется на языке программирования C++. Этот язык является низкоуровневым, поэтому считается сложным и имеет высокий порог вхождения. Но для программирования Arduino используется упрощенная версия этого языка программирования.
Этот сайт содержит уроки для обучения новичков. Здесь собранны уроки по Arduino для начинающих. Так же будут уроки и по более сложным аспектам программирования ардуино.
Почти все уроки содержат видео для наглядного получения информации, а также текстовую интерпретацию, ссылки на необходимые компоненты и архив с исходниками урока. Так вы сможете не только посмотреть и послушать урок, но и без труда повторить его для приобретения практических навыков.
После прохождения курса вы сможете реализовать проекты любой сложности. Курс по работе с arduino для новичков рассчитан на 8 часов.
Язык программирования Ардуино
Как я уже написал выше все программы создаются на базе языков программирования C/C++.
Если вы знаете C++, то Arduino откроет вам двери в фантастический мир создания роботов и различных устройств.
Приведу пример программы одного из самых простых устройств — мигание светодиода, подключенного к плате:
void setup () { pinMode (13, OUTPUT); // Назначение порта 13 в качестве выходного порта } void loop () { digitalWrite (13, HIGH); // Установка порта 13 в состояние «1», светодиод загорается delay (1000); // Задержка на 1000 миллисекунд digitalWrite (13, LOW); // Установка порта 13 в состояние «0», светодиод гаснет delay (1000); // Задержка на 1000 миллисекунд }
Программы для плат Ардуино пишутся в специальной программе с которой мы познакомимся ниже, но никто не мешает вам использовать тот редактор кода который вам нравится или к которому вы привыкли.