Подключение и программирование Ардуино для начинающих
Изучeниe микрoкoнтрoллeрoв кaжeтся чeм-тo слoжным и нeпoнятным? Дo пoявлeния Aрудинo – этo былo дeйствитeльнo нe лeгкo и трeбoвaлo oпрeдeлeнный нaбoр прoгрaммaтoрoв и прoчeгo oбoрудoвaния.
Чтo тaкoe Arduino?
Этo свoeгo рoдa элeктрoнный кoнструктoр. Изнaчaльнaя зaдaчa прoeктa – этo пoзвoлить людям лeгкo oбучaться прoгрaммирoвaнию элeктрoнныx устрoйств, возле этoм удeляя минимaльнoe врeмя элeктрoннoй чaсти.
Сбoркa слoжнeйшиx сxeм и сoeдинeниe плaт мoжeт oсущeствляться бeз пaяльникa, a с пoмoщью пeрeмычeк с рaзъёмными сoeдинeниями «пaпa» и «мaмa». Тaк мoгут пoдключaться кaк нaвeсныe элeмeнты, тaк и плaты рaсширeния, кoтoрыe нa лeксикoнe aрдуинщикoв зoвут прoстo «Шилды» (shield).
Кaкую пeрвую плaту Arduino откупить нoвичку?
Бaзoвoй и сaмoй пoпулярнoй плaтoй считaeтся Arduino Uno. Этa плaтa рaзмeрoм нaпoминaeт крeдитную кaрту. Дoвoльнo крупнaя. Бoльшинствo шилдoв кoтoрыe eсть в прoдaжe идeaльнo пoдxoдят к нeй. Нa плaтe в (видах пoдключeния внешних устройств расположены гнезда.
В отечественных магазинах сверху 2017 год её валюта порядка 4-5 долларов. Сверху современных моделях её сердцем является Atmega328.
Копия платы ардуино и расшифровка функций каждого вывода, Arduino UNO pinout
Микроконтроллер возьми данной плате сие длинна микросхема в корпусе DIP28, что-что говорит о том, чисто у него 28 ножек.
Следующая по части популярности плата, имеет смысл почти в двое меньше предыдущей – 2-3 доллара. Сие плата Arduino Nano. Актуальные платы построены фолиант же Atmega328, функционально они аналогичны с UNO, различия в размерах и решении согласования с USB, об этом спустя время подробнее. Еще одним отличием является ведь, что для подключения к плате устройств предусмотрены штекера, в виде иголок.
Намолот пинов (ножек) этой платы совпадает, да вы можете приглядывать что микроконтроллер выполнен в больше компактном корпусе TQFP32, в корпусе добавлены ADC6 и ADC7, часть две «лишних» ножки дублируют шину питания. Её размеры поёб) да хуй под мышку компактные – приблизительно, как большой большой вашей руки.
Aruino Nano pinout
Третья объединение популярности плата – сие Arduino Pro Mini, бери ней нет USB порта чтобы подключения к компьютеру, по образу осуществляется связь я расскажу чуточку позже.
Сравнение размеров Arduino Nano и Pro Mini
Сие самая маленькая магазинаж из всех рассмотренных, в остальном симпатия аналогична предыдущим две, а её сердцем является согласно-прежнему Atmega328. Некоторые люди платы рассматривать никак не будем, так наподобие это статья в целях начинающих, да и приравнивание плат – сие тема отдельной статьи.
Arduino Pro Mini pinout, в верхней части изложение подключения USB-UART, пин «GRN» — разведен для цепь сброса микроконтроллера, может именоваться по иному, для того чего это нужно ваша милость узнаете далее.
Итоги:
Делать что UNO удобна для макетирования, в таком случае Nano и Pro Mini удобны про финальных версий вашего проекта, ибо что занимают один-другой места.
Как ввести Arduino к компьютеру?
Arduino Uno и Nano подключаются к компьютеру объединение USB. При этом несть аппаратной поддержки USB порта, после этого применено схемное определение преобразования уровней, естественно называемое USB-to-Serial иначе USB-UART (rs-232). Близ этом в микроконтроллер прошит подготовленный Arduino загрузчик, кто позволяет прошиваться в области этим шинам.
В Arduino Uno реализована каста вязь на микроконтроллере с поддержкой USB – ATmega16U2 (AT16U2). Из этого явствует такая ситуация, а дополнительный микроконтроллер возьми плате нужен исполнение) прошивки основного микроконтроллера.
В Arduino Nano сие реализовано микросхемой FT232R, либо — либо её аналогом CH340. Сие не микроконтроллер — сие преобразователь уровней, данный факт облегчает сборку Arduino Nano с нуля своими руками.
В большинстве случаев драйвера устанавливаются механически при подключении платы Arduino. Одначе, когда я купил китайскую копию Arduino Nano, звено было опознано, только оно не работало, возьми преобразователе была наклеена круглая ценник с данными о дате выпуска, безлюдный (=малолюдный) знаю нарочно ли сие было сделано, хотя отклеив её я увидел маркировку CH340.
Предварительно этого я не сталкивался с таким и думал, ровно все USB-UART преобразователи собраны держи FT232, пришлось считать драйвера, их без памяти легко найти согласно запросу «Arduino ch340 драйвера». Дальше простой установки – целое заработало!
Через данный же USB порт может и насыщаться микроконтроллер, т.е. если вас подключите его к адаптеру ото мобильного телефона – ваша прием будет работать.
Какими судьбами делать если держи моей плате вышел USB?
Плата Arduino Pro Mini имеет меньшие параметры. Это достигли тем что-нибудь убрали USB разъём интересах прошивки и тот самый USB-UART выпрямитель. Поэтому его нужно докупить врозь. Простейший преобразователь держи CH340 (самый бо), CPL2102 и FT232R, продаётся нужно от 1 доллара.
Около покупке обратите первый план на какое нервотрепка рассчитан этот переводник. Pro mini бывает в версиях 3.3 и 5 В, держи преобразователях часто расположен джампер исполнение) переключения напряжения питания.
Близ прошивке Pro Mini, сам перед её началом нужно нажимать на RESET, но в преобразователях с DTR это чинить не нужно, конфигурация подключения на рисунке вверх.
Стыкуются они специальными клеммами «Мамуша-Мама» (female-female).
Строго говоря, все соединения только и можно сделать с помощью таких клемм (Dupont), они бывают словно с двух сторон с гнездами, таково и со штекерами, неизвестно зачем и с одной стороны источник, а с другой штекер.
Во вкусе писать программы к Arduino?
Для работы со скетчами (номинация прошивки на языке ардуинщиков), (за)грызть специальная интегрированная общество для разработки Arduino IDE, списать бесплатно её хоть с официального сайта другими словами с любого тематического ресурса, с установкой проблем в большинстве случаев не возникает.
Этак выглядит интерфейс программы. Чиркать программы можно возьми специально разработанном про ардуино упрощенном языке C AVR, до сути это сверток библиотек, который называют Wiring, а вот и все на чистом C AVR. Эксплуатация которого облегчает адрес и ускоряет его работу.
В верхней части окна присутствует привычное карта, где можно изобличить файл, настройки, присмотреть плату, с которой ваш брат работаете (Uno, Nano и отбою)-много других) а как и открыть проекты с готовыми примерами стих. Ниже расположен ассортимент кнопок для работы с прошивкой, цель клавиш вы увидите бери рисунке ниже.
В нижней части окна – ветвь для вывода информации о проекте, о состоянии стих, прошивки и наличии ошибок.
Основания программирования в Arduino IDE
В начале стих нужно объявить переменные и присоединить. Ant. выключить дополнительные библиотеки, кабы они имеются, делается сие следующим образом:
#include biblioteka.h; // подключаем библиотеку с названием “Biblioteka.h”
#define peremennaya 1234; // Объявляем переменную со значением 1234
Одиннадцать надежд Define дают компилятору самому поднять тип переменной, так вы можете его дать по шапке вручную, например, цельночисленный int, или с плавающей точкой float.
int led = 13; // создали переменную “led” и присвоили ей цена «13»
Список может определять фрустрация пина, как 1 иначе 0. 1 –сие логическая единица, в случае если пин 13 равен 1, в таком случае напряжение на его физической ножке перестаньте равняться напряжению питания микроконтроллера (исполнение) ардуино UNO и Nano – 5 В)
Писание цифрового сигнала осуществляется командой digitalWrite (пин, масштаб), например:
digitalWrite(led, high); //уравнение единицы в пин 13(наша сестра его объявили сверх) лог. Единицы.
Т. е. вы могли разгадать обращение к портам добро по нумерации бери плате, соответствующей цифрой. Вона пример аналогичного предыдущему коду:
digitalWrite (13, high); // устанавливаем резюме 13 в едиицу
Учащенно востребованная функция задержки времени вызывается командой delay(), смысл которой задаётся в миллисекундах, микросекунды достигаются с через
delayMicroseconds() Delay (1000); //микроконтроллер хорошенького понемножку ждать 1000 мс (1 момент)
Настройки портов возьми вход и выход задаются в функции void setup{}, командой:
void setup() {
pinMode(NOMERPORTA, OUTPUT/INPUT); // доводы – название переменной или — или номер порта, портал или выход нате выбор
}
Void loop{}
Понимаем первую программу «Blink»
В качестве своеобразного «Hello, world» к микроконтроллеров является интерпретатор мигания светодиодом, давайте разберем её шифр:
В начале командой pinMode автор этих строк сказали микроконтроллеру влепить порт со светодиодом нате выход. Вы сейчас заметили, что в коде в помине (заводе) нет объявления переменной “LED_BUILTIN”, предприятие в том, что в платах Uno, Nano и других с завода к 13 выводу подключен вделанный светодиод и он распаян возьми плате. Он может браться использован вами интересах индикации в ваших проектах иль для простейшей проверки ваших программ-мигалок.
Следом мы установили следствие к которому подпаян светодиод в единицу (5 В), следующая строчка заставляет МК помедлить 1 секунду, а затем устанавливает пин LED_BUILTIN в серьезность нуля, ждет подожди и программа повторяется в соответствии с кругу, таким образом, иным часом LED_BUILTIN равен 1 – светодиод(отлично и любая другая задание подключенная к порту) включен, идеже в – выключен.
Целое работает и всё вестимо? Тогда идём следом!
Читаем значение с аналогового порта и используем прочитанные показатели
Микроконтроллер AVR Atmega328 имеет замонтированный 10 битный аналогово числовой преобразователь. 10 битный АЦП позволяет считывать спица в колеснице напряжение от по 5 вольт, с шагом в 1/1024 через всего размаха амплитуды сигнала (5 В).
С тем было понятнее рассмотрим ситуацию, скажем значение напряжения нате аналоговом входе 2.5 В, знать микроконтроллер прочитает вес с пина «512», даже если напряжение равно – «0», а делать что 5 В – (1023). 1023 – потому как что счёт лады с 0, т.е. 0, 1, 2, 3 и т.д. раньше 1023 – лишь 1024 значения.
Чисто как это выглядит в коде, бери примере стандартного скетча «analogInput»
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
sensorValue = analogRead(sensorPin);
digitalWrite(ledPin, HIGH);
delay(sensorValue);
digitalWrite(ledPin, LOW);
delay(sensorValue);
}
Сценарий подключения потенциометра к Arduino, соответственно аналогии центральный суд вы можете присоединить. Ant. выключить к любому аналоговому входу.
Объявляем переменные:
-
Ledpin – единолично назначаем пин со встроенным светодиодом держи выход и даём индивидуальное наименование;
-
sensorPin – аналоговый ход, задаётся соответственно маркировке получай плате: A0, A1, A2 и т.д.;
-
sensorValue – аргумент для хранения целочисленного прочитанного значения и дальнейшей работы с ним.
Адрес работает так: sensorValue сохраняем прочитанное с sensorPin аналоговое смысл (команда analogRead). – тут. Ant. там работа с аналоговым сигналом заканчивается, тогда всё как в предыдущем примере.
Записываем единицу в ledPin, светодиод включается и ждем наши дни равное значению sensorValue, т.е. с до 1023 миллисекунд. Выключаем светодиод и вдругорядь ждем этот этап времени, после что такое? код повторяется.
Таким образом положением потенциометра пишущий эти строки задаем частоту миганий светодиода.
Тотиент map для Арудино
Неважный (=маловажный) все функции для того исполнительных механизмов (ми ни одной неважный (=маловажный) известно) в качестве аргумента поддерживают «1023», взять, сервопривод ограничен домиком поворота, т.е на половая принадлежность оборотоа (180 градуов) (секс оборота) сервомоторчика наивысший аргумент функции равен «180»
Теперича о синтаксисе: map (значение которое ты да я переводим, минимальная габариты входного, максимальная количество входного, минимальная выходного, максимальная выходного значения).
В коде сие выглядит так:
(map(analogRead(pot), 0, 1023, 0, 180));
Наша сестра считываем значение с потенциометра (analogRead(pot))через до 1023, а получи и распишись выходе получаем числа ото до 180
Значения игра в карты величин:
-
0=0;
-
1023=180;
На практике применим сие к работе коду того-но сервопривода, взгляните возьми код с Arduino IDE, если бы вы внимательно читали предыдущие разделы, в таком случае он пояснений маловыгодный требует.
И схема подключения.
Выводы Ардуино – беда удобное средство исполнение) обучения работы с микроконтроллерами. А коли использовать чистый C AVR, аль как его время от времени называют «Pure C» — вам значительно уменьшите тяжесть кода, и его значительнее поместиться в память микроконтроллера, в результате ваша милость получите отличную отладочную плату заводского исполнения с возможностью прошивки соответственно USB.
Мнение автора:
Ми нравится ардуино. Досада берет, что её многие опытные программисты микроконтроллеров без малейшего основания ругают, что симпатия слишком упрощена. Упрощен, в принципе, один язык, но последняя спица в колеснице не заставляет черпать именно им, достоинство вы можете выметать микроконтроллер через ICSP разъединение, и залить туда оный код, который вас хочется, без всяких ненужных Вы бутлоадеров.
Для тех, который хочет проиграться с электроникой, по образу продвинутый конструктор – заништяк подойдёт, а для опытных программистов что плата, не требующая сборки, равным образом станет полезной!
До сего часа больше информации для Ардуино и особенности его использования в различных схемах как угодно в электронной книге — Ардуино к чайников. Иллюстрированное практическое шефмонтаж.
Алексей Бартош
Любите умные гаджеты и DIY? Станьте специалистом в сфере Internet of Things и создайте бредень умных гаджетов!
Записывайтесь в онлайн-учреждение от GeekBrains:
Журфак Интернет вещей
Ваша милость сможете:
-
Изучить C, машины отладки и программирования микроконтроллеров;
-
Настричь опыт работы с реальными проектами, в команде и самодостаточно;
-
Получить удостоверение и письменное удостоверение, подтверждающие полученные запас знаний.
Starter box для первых экспериментов в взятка!
После прохождения курса в вашем портфолио кончай: метостанция с функцией часов и встроенной игрой, распределенная путы устройств, устройства регулирования температуры (ПИД-сигнализатор), устройство контроля влажности воздуха, теория умного полива растений, звено контроля протечки воды…
Вам получите диплом о профессиональной переподготовке и электронный документ, которые можно прибавить в портфолио и показать работодателю.
Подробнее тогда:
Интернет вещей и современные встраиваемые системы