Как и обещали мы будем публиковать статьи посвященные изучению Arduino, используя купленный нами стартовый набор, подробный обзор которого вы можете посмотреть тут. Сегодня мы разберемся с тем, как подключить ардуино к компьютеру и начать на ней что-то программировать.
Для этого сегодня нам нужны:
- Плата Arduino.
- USB-шнур для подключения к компьютеру.
- Светодиоды одноцветные и RGB-светодиод.
- Резисторы для светодиодов.
- Макетная плата, перемычки, источник питания для макетной платы, крона (можно обойтись и без всего этого, но желательно это иметь).
Подключение и настройка
Есть несколько вариантов плат Arduino, они отличаются не только стоимостью, но и USB-TTL конвертером, он нужен, чтобы программировать главный микроконтроллер платы (ATMEGA328) прямо через USB-порт вашего компьютера без дополнительных программаторов. Например, в моей плате используется для связи с компьютером микроконтроллер типа AT16U2 и драйвера на него установились автоматически. Но часто попадаются дешевые платы, где в этих же целях используется микросхема CH340 (CH341). В этом случае нужно скачать под неё драйвер, он легко находится в сети по запросу «CH340 драйвер windows 7/10», либо воспользоваться драйвером отсюда – https://yadi.sk/d/fJIY45oCld0pzA
Далее с официального сайта скачиваем актуальную версию Arduino IDE и устанавливаем его, кстати, нам предлагают воспользоваться онлайн версией IDE, но проверять её сегодня мы не будем, если интересно — может протестировать в отдельной статье.
На следующей странице предложат отправить донат, если вы не хотите этого делать, то нажмите Just Download. Запускаем установку и соглашаемся со всем, что нам предлагает установщик, ждем пока она закончится.
Ближе к концу нам предложат установить дополнительные драйвера и ПО, также соглашаемся. Я не стал делать скриншоты всех всплывающих окон (их было 3), а просто нажал «Установить» в каждом из них. В конце нажимаем на Close. Подключаем плату Arduino к компьютеру, если нужно — устанавливаем драйвера, о которых говорилось выше, если нет — ждем пока всё установится само. В конечном итоге, в диспетчере устройств должна появится ваша ардуина.
Далее запускаем программу. В меню «Инструменты» должно быть «Порт: «название порта название платы», и в подменю стоять галочка, как на скриншоте ниже, у меня там было пусто, и я поставил. Если у вас не UNO, а nano например — выбирайте соответствующий пункт меню.
При подключении ардуино к компьютеру она начинает мигать желтым светодиодом, он с завода припаян к 13-му пину, а для проверки работоспособности с завода в платы предустанавливается прошивка с мигалкой по 13-му пину, в наборе базовых примеров кода Arduino IDE он есть под названием Blink.
Сегодня мы не будем сильно вдаваться в код, а будем использовать то, что есть и разбирать его отдельные части, решая проблемы по мере поступления. Начнем изменять этот пример, в нижней части предыдущей иллюстрации мы видим набор команд, которые циклично выполняются в процессе работы МК:
Разберем эти команды. digitalWrite – это запись цифрового состояния на указанный пин (здесь это LED_BUILTIN — это и есть 13-й пин платы Ардуино), HIGH – значение, которое записывается, т.е. логическая единица. Результатом выполнения этой команды будет появление на 13-м пине высокого логического уровня, напряжения питания микроконтроллера, в нашем случае это 5 вольт.
Далее идёт функция delay(1000) это задержка, а в скобках её аргумент — время в миллисекундах.
После нее вновь digitalWrite, но уже со значением LOW — это низкий логический уровень, т.е. 0 вольт. После чего опять задержка.
В конце каждой команды должна стоять точка с запятой — это важно.
Таким образом, светодиод включается и выключается с задержкой в 1 секунду, если мы поставим вместо 1000, в аргумент delay, например, 200 и 1000 (в первом и втором случае), то у нас светодиод будет вспыхивать на 1/5 секунды, а потом выключаться и вновь вспыхивать через 1 секунду.
Но что, если нам нужно подключить несколько светодиодов к разным пинам? Всё просто, по подобию пишем вот такой код:
Первое из изменений, на которые следует обратить внимание, это часть кода в функции void setup(). Она выполняется 1 раз при включении микроконтроллеры и в ней задаются какие-либо параметры, в нашем случае, указываются номера пинов платы и их функция (работать как вход или как выход), синтаксис здесь следующий pinMode (номер порта, назначение). Номера пинов также нанесены на печатной плате всех ардуино, это очень удобно. Дальше просто по очереди микаем каждым из светодиодов, подключенных к 12, 11, 10. 9 пинам.
Полную распиновку платы, номера выводов и их дополнительные функции вы видите на рисунке ниже.
С обычными светодиодами разобрались, теперь же давайте перейдем к RGB-светодиодам. Что это вообще такое? Фактически это 3 обычных одноцветных кристалла соединены между собой в одном корпусе, существуют две схемы соединения RGB-светодиодов или чего-нибудь подобного (например, семисегментных индикаторов), их вы видите на рисунке ниже.
Чтобы определить как соединены светодиоды в вашем RGB-светодиод, нужен мультиметр и его режим прозвонки диодов, находим общий вывод и по значениям на экране определяем проводимость и соответственно направление подключения. При правильном подключении щупов мультиметра к выводам светодиода, тот загорится соответствующим цветом, а на экране должны появится какие-то значения (у меня было от 1000 до 2000 мВ).
У меня оказался светодиод с общим катодом. Почти переделывая код (удалим лишь всё, что связано с 12 пином и уберем паузу между цветами), изменим схему подключения, теперь через резисторы мы будем подавать сигнал от микроконтроллера.
Чтобы получить цвета, кроме красного, зеленого и синего, нужно подавать сигнал на несколько выводов одновременно, пример того, как это сделать вы видите ниже.
Код для перебора 7 цветов RGB-светодиода
У пинов № 9, 10, 11, есть возможность выдавать ШИМ-сигнал, что это такое и как это работает мы разберем в следующих статьях, а пока я покажу, как это можно применить с RGB-светодиодом. Чтобы цвета не резко менялись, а плавно переходили из одного в другой, нужно использовать команду analogWrite, таким образом, на предназначенных для этого пинах формируется ШИМ-сигнал, с помощью которого можно регулировать яркость светодиодов. Я решил для реализации этого эффекта использовать цикл for, возможно можно его проще реализовать, но я думаю, что для демонстрации подойдет. Скорость перелива задаётся командой задержки (delay), после того как достигается максимум одного цвета, начинает нарастать следующий цвет, после чего первый цвет начинает угасать. За основу я выбрал код плавного мигания светодиодом из набора примеров (fade). Вы можете сами проанализировать приведенный ниже код, там, где написано brightness + fadeamount — там происходит повышение интенсивности свечения цвета, а где цикл с brightness – fadeamount — снижение.
к содержанию ↑