Набор ардуино для начинающих инструкция

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

Тут я постараюсь дать сжатый минимум для того, что бы вы понимали принципы работы с 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. Теперь вы можете сделать простейшие проекты. Что бы продолжить обучение и освоить все тонкости, я советую прочитать книги по ардуино и пройти бесплатный обучающий курс. После этого вы сможете делать самые сложные проекты, которые только сможете придумать.

Наверное, многие слышали о такой замечательной платформе, но из-за плохого знания электроники или программирования многие решат обойти arduino стороной. Да платформа достаточно сложная, но разобраться можно, главное желание. Я сам долго не решался изучить данную платформу, но в один прекрасный день, понял, что она бы могла облегчить мне жизнь…
В интернете очень много информации об arduino, но без практики никакая теория не поможет, по этому я решил купить данный набор, но забегу вперед, что все таки дешевле все компоненты купить самостоятельно, не набором, а архивы с инструкциями и программами (скетчами) я выложил ниже.
Почему я взял данный набор, ведь выбора в Китае много? Раньше ардуино было для меня как что-то заоблачное и не понятное и выбирал только из-за количества уроков, по этому и выбрал данный набор, кстати подобный набор уже обозревал drawde.

Покупал я напрямую с тао:

Набор пришел в пластиковом кейсе, заклеенном скотчем, видимо что бы ничего не вытащили из коробки (скотч я уже порвал):

Что же там в коробке?

Комплектация:

— 1х плата arduino uno, возможно даже оригинал
— 1х LCD дисплей 16 символами на 2 строки с i2c платой

— 15х светодиодов: 5 шт. красного цвета, 5 шт. синего цвета и 5 шт. оранжевого цвета

— 3х фоторезистора
— 1х ИК приемник
— 1х датчик пламени
— 2х датчика вибрации
— 1х термодатчик
— 4х кнопки
— 2х пьезоэлемента

— цифровой светодиодный дисплей на 1 цифру
— цифровой светодиодный дисплей на 4 цифры
— светодиодная матрица 8х8

— 8х постоянный резистор на 220 Ом
— 5х постоянный резистор на 1 кОм
— 5х постоянный резистор на 10 кОм

— 1х резистор переменного сопротивления(потенциометр) на 50 кОм

— 1х большая макетная площадка

— 1x DuPont кабель мама-папа 30 разноцветных проводов

— 30х соединительных проводов для макетной площадки папа-папа

— 1х USB кабель

— 1х RFID плата
— 1х RFID карта
— 1х RFID на ключи

— 1x ИК пульт
— 1x микрофонный модуль
— 1x модель кнопочной площадка 4х4
— 1x реле
— 1x модуль часов
— 1x модуль драйвера для мотора
— 1x модуль датчика температуры и влажности
— 1x модуль джойстика
— 1x модуль RGB светодиода
— 1x модуль датчика влажности
— 1x кабель питания для кроны

— 1x сервопривод
— 1x мотор с редуктором

— 1x сдвиговый регистр 74НС595N
Вот так выглядит все в сборе:

Когда я получил набор, то сразу принялся искать инструкции, но внутри коробки ничего не обнаружил, подумал, что китаец обманул и уже хотел с ним ругаться, но почитал описание лота и там была ссылка со всеми инструкциями и программами: yunpan.cn/cFWkif3FY3cgk (пароль:22cd)
Но китайскими программами лучше не пользоваться, по тому программу для программирования arduino лучше скачать с официального сайта: arduino.cc/en/Main/Software
А вот тут собраны мной инструкции, программы, скетчи найденные в интернете и мои скетчи, которые пригодились в освоении arduino.

Начало

Рекомендую для начала прочитать pdf книгу на русском языке: Руководство по освоению Arduino — 2012, которая лежит на моей сборке. Там много полезного написано и понятным языком, только мало уроков.
В архиве Modkit_Desktop_WIN32_Kickstarter_v2.zip находится программа для визуального программирования.

В архиве Arduino — китайщина.rar находится китайская инструкция, китайские скетчи, библиотеки, но там много ошибок.
В архиве Arduino — программа.rar находится программа arduino с библиотеками, которые мне пригодились в освоении ардуино.
В архиве arduino-master — много уроков.zip имеется достаточно много уроков, схем, библиотек с хорошим описанием на англ. Причем большую часть из этого архива «стянуто» китайцами.
В архиве Мои скетчи.rar находятся мои проекты, хоть их и 34, но не все китайские уроки я выполнял, некоторые подправлял и самый последний проект я сделал самостоятельно. Номера моих скетчей не совпадают с номерами обозреваемых уроков, но все мои скетчи подписаны в транслите и думаю всем будет понятно.
Начинаем!

Урок №1 — мигание светодиода

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

— 2 провода (далее количество проводов я указывать не буду),
— светодиод,
— резистор на 220Ом,
— макетная площадка и плата arduino uno
Подключаем:

И получаем:

Урок №2 — подключение 8 светодиодов — бегущие огни

Для этого урока нужно:
— 8 светодиодов,
— 8 резисторов на 220 Ом,
— провода, макетная площадка и arduino
Я немного не правильно подключил, поставил 1 резистор на массу и подвел ко всем светодиодам:

Результат:

Урок №3 — изменение яркости светодиода с помощью переменного резистора

Нам нужно:
— светодиод,
— переменный резистор,
— резистор на 220Ом,
— провода, макетная площадка и arduino

Решил в этот раз не подключать резистор к светодиоду, но если подключать «на постоянку», то сопротивление на светодиод нужно поставить, иначе светодиод сгорит быстро.

Результат:

Урок №4 — бегущие огни из 6 светодиодов

Необходимо:
— 6 светодиодов,
— резистор на 220Ом
— провода, макетная площадка и arduino

Получилось так:

Результат:

Урок №5 — подключение RGB светодиода

Понадобится:
— модуль RGB
— провода, макетная площадка и arduino

Получилось так:

Результат:

Урок №6 — подключение пьезоэлемента

Детали:
— пьезоэлемент
— провода, макетная площадка и arduino

Получилось так:

Результат:

С музыкой:

Урок №8 — включение светодиода с кнопки

Детали:
— кнопка
— светодиод
— резисторы на 220 Ом и 10 кОм
— провода, макетная площадка и arduino

Получилось так:

Результат:

Урок №8.1 — вкл/выкл. светодиода с кнопки

Детали:
— светодиод
— 2 кнопки
— резистор на 220 Ом
— 2 резистора на 10кОм
— провода, макетная площадка и arduino

Получилось так

Результат:

Урок №8.2 — изменение яркости светодиода с кнопки

Схема подключения идентична уроку 8.1, только скетч другой и результат:

Урок №9 — сервопривод

Детали:
— сервопривод
— провода, макетная площадка и arduino

Получилось так:

Результат:

Урок №10 — подключение сдвигового регистра 74HC595

Детали:
— 8 светодиодов
— сдвиговый регистр 74HC595
— 8 резисторов на 220 Ом
— провода, макетная площадка и arduino

Получилось так:

Урок №11 — изменение яркости светодиода с помощью фоторезитора

Детали:
— фоторезитор
— светодиод
— резитор на 220 Ом и на 10кОм
— провода, макетная площадка и arduino

Получилось так:

Результат:

Урок №12 — вольтметр

Детали:

— батарейка
— резистор 10 кОм
— провода, макетная площадка и arduino
Получилось так:

Результат отображается в «мониторе протра»:

Урок №13 — измерение температуры

Детали:
— датчик температуры
— провода, макетная площадка и arduino
Получилось так:

Результат отображается в «мониторе протра»:

Если нагреть датчик зажигалкой, температура изменяется:

Урок №13.1 — изменение температуры — визуальное отображение

Детали:
— датчик температуры
— 3 светодиода
— резистора 220 Ом
— провода, макетная площадка и arduino
Получилось так:

Результат:

Урок №14 — подключение цифрового светодиодного дисплея

Детали:
— 6 резистров 220 Ом
— цифровой светодиодный дисплей
— провода, макетная площадка и arduino
Получилось так:

Результат китайского скетча:

Результат моего переделанного скетча:

Урок №14 — подключение цифрового светодиодного дисплея на 4 цифры

Детали:
— светодиодная панель на 4 цифры
— провода, макетная площадка и arduino
Получилось так:

Результат — секундомер:

Урок №15 — подключение светодиодной матрицы 8х8

Детали:
— светодиодная матрица 8х8
— провода и arduino
Получилось так:

Результат моего скетча:

Урок №16 — подключение датчика влажности

Детали:
— датчик влажности
— светодиод (я подключил RGB модуль к 1 светодиоду)
— провода и arduino
Получилось так:

Результат:

Урок №17 — измерение температуры и влажности

Детали:
— датчик влажности и температуры
— провода и arduino
Получилось так:

Результат отображается в «мониторе протра»:

Урок №18 — подключение модуля реле

Детали:
— модуль реле
— светодиод
— резистор на 220Ом
— провода, макетная площадка и arduino
Получилось так:

Результат:

Урок №19 — подключение LCD дисплея 16х2

Детали:
— дисплей LCD1602
— провода и arduino
Получилось так:

Результат:

Урок №20 — подключение двигателя

Детали:
— модуль драйвера для мотора
— мотор с редуктором
— провода и arduino
Получилось так:

Результат:

Урок №21 — Включение/выключение светодидодов с помощью пульта

Детали:
— ИК пульт
— ИК приемник
— 6 светодиодов
— 6 резисторов 220Ом
— провода, макетная площадка и arduino

Получилось так:

Результат:

Урок №22 — Подключение джойстика

Детали:
— джойстик
— провода и arduino
Результат отображается в «мониторе протра»:

Урок №23 — Подключение клавиатуры 4х4

Детали:
— клавиатура
— провода и arduino
Результат отображается в «мониторе протра»:

Урок №24 — Подключение RFID

Детали:
— модуль RFID
— провода и arduino
Получилось так:

Результат отображается в «мониторе протра» — чтение дампа карты:

Результат отображается в «мониторе протра» — чтение брелка:

Результат отображается в «мониторе протра» — пытался прочитать УЭК, банковсвкую карту с payWave и транспортную карту:

Уроков у меня получилось всего 24, остальные я не стал освещать в обзоре, хотя сам их собирал и проверял, как мне показалось, они не интересные для обозревания.

Что бы закрепить результат я решил собрать цифровой термометр и написать программу, хотя сначала хотел собрать измеритель влажности и температуры, но из-за неправельного подключения этот модуль я «убил», по этому пришлось сделать только измерение температуры.

Домашнее задание — цифровой термометр

Детали:
— датчик температуры
— LCD дисплей
— провода, макетная площадка и arduino
Получлось так:

Осталось самое сложное объединить 2 скетча и еще что бы все это работало, получился вот такой скетч:

Цифровой термометр

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); 
int potPin = 0;                // пин куда подключен датчик
float dat = 0;                // переменная для температуры

void setup()
{
  lcd.init();
  lcd.backlight(); 
  lcd.begin(16, 2);
  lcd.print("S");
  delay(300);    
  lcd.print("p");
  delay(300); 
  lcd.print("e");
  delay(300); 
  lcd.print("c");
  delay(300); 
  lcd.print("i");
  delay(300); 
  lcd.print("a");
  delay(300);
  lcd.print("l");
  delay(300);  
  lcd.print("l");
  delay(300);                // ждем 0.5 секунды
  lcd.print("y");
  delay(300);                // ждем 0.5 секунды
  lcd.print(" f");
  delay(300);               // ждем 1 секунду
  lcd.print("o");
  delay(300);               // ждем 1 секунду
  lcd.print("r");
  delay(700);  
  lcd.setCursor(0, 1);
  lcd.print("h");
  delay(300); 
lcd.print("t");
  delay(300); 
lcd.print("t");
  delay(300); 
lcd.print("p");
  delay(300); 
lcd.print(":");
  delay(300); 
lcd.print("/");
  delay(300); 
lcd.print("/");
  delay(300); 
lcd.print("m");
  delay(300); 
lcd.print("y");
  delay(300); 
lcd.print("s");
  delay(300); 
lcd.print("k");
  delay(300); 
lcd.print("u");
  delay(300); 
lcd.print(".");
  delay(300); 
lcd.print("r");
  delay(300); 
lcd.print("u");
  delay(300); 
  lcd.clear();               //очистка экрана
  delay(1000); 
  lcd.setCursor(0, 0);
lcd.print("Specially for");
lcd.setCursor(0, 1);
lcd.print("https://mysku.club");
  delay(500);  
  lcd.clear();               //очистка экрана
  delay(300); 
  lcd.setCursor(0, 0);
lcd.print("Specially for");
lcd.setCursor(0, 1);
lcd.print("https://mysku.club");
  delay(500);  
  lcd.clear();               //очистка экрана
  delay(300); 
  lcd.setCursor(0, 0);
lcd.print("Specially for");
lcd.setCursor(0, 1);
lcd.print("https://mysku.club");
  delay(500);  
lcd.clear();
}

void loop()
{
 lcd.init();                 // initialize the lcd 
lcd.clear();               //очистка экрана
  // считываем и вычисляем температуру
  dat = ( 5.0 * analogRead(potPin) * 100.0) / 1024.0;
  
lcd.backlight();  
 lcd.setCursor(0, 0);     // устанавливаем курсор в 0-ом
  // столбце, 1 строке (начинается с 0)
  lcd.print("Temperatura");
  lcd.setCursor(0, 1);
  lcd.print("         ");
  lcd.print(dat);        // выводим текущую температуру
  lcd.print("'C");
  delay(5*500);   // задержка перед повторением измерений

}

Слегка подсматривал тут.
Результат:

Теперь надо проверить погрешность:

Как видно погрешность очень маленькая, хотя возможно метеостанция и моя конструкция оба термометра врут.

Зачем я все это затеял?
Хочу автоматизировать пивоварение, пока все еще в далеком проекте.

+

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

Цена мне кажется великовата
В китайской инструкции очень много ошибок, например урок от одного проекта, скетч совершенно от другого, а схема от третьего

Вывод:

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

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

Спасибо за внимание!

Название Arduino является в настоящее время этаким «модным» словом для большинства радиолюбителей и всех, кто мало-мальски знаком с электроникой, поскольку данная платформа позволяет создавать электронные устройства быстро и дешево. Наличие обширного онлайн сообщества данной платформы делает ее идеальным выбором для тех, кто только начал свое знакомство с электроникой и программированием. Даже людям, не имеющим технического образования (а именно для таких она и была первоначально создана), освоить Arduino будет достаточно просто.

Как начать работу с Arduino Uno: простейшая схема

Почему так актуальна эта платформа? Как начать работу с ней? Как она может улучшить ваш стиль жизни? Все эти вопросы будут рассмотрены в данной статье. Для этого мы познакомимся с установкой среды Arduino IDE на ваш компьютер и загрузим в нее небольшую программу, реализующую мигание светодиода, который мы подключим к Arduino с использованием макетной платы.

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

Arduino представляет собой платформу разработки с открытым исходным кодом, которая состоит из простого в использовании оборудования и среды программирования. Наиболее распространенным типом оборудования является Arduino UNO, а среда программирования называется Arduino IDE. Кроме Arduino UNO существует еще достаточно много аналогичных плат — Arduino Mega, nano, mini, но в данной статье в целях обучения мы будем использовать именно Arduino UNO. А Arduino IDE – это как раз та программная среда, с помощью которой мы будем программировать плату Arduino UNO.

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

Опции установки Arduino IDE

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

Выбор каталога для установки Arduino IDE

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

Процесс установки Arduino IDE

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

Окно Arduino IDE с начальным кодом

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

После того как вы установили Arduino IDE на свой компьютер следующим логичным шагом будет подключение платы Arduino UNO к компьютеру. Чтобы сделать это просто используйте кабель для программирования (синего цвета) и соедините его с платой Arduino и USB портом вашего компьютера.

Синий кабель для программирования может выполнять следующие три функции:

  1. Он запитывает плату Arduino UNO, то есть чтобы обеспечить выполнение программ на ней необходимо просто запитать ее с помощью USB кабеля.
  2. Через него программируется микроконтроллер ATmega328, находящийся на плате Arduino UNO. То есть код программы пересылается из компьютера в микроконтроллер именно по этому кабелю.
  3. Он может функционировать в качестве кабеля для последовательной связи, то есть с его помощью можно передавать данные с Arduino UNO в компьютер – это полезно для целей отладки программы.

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

Поскольку вы подключаете плату Arduino в первый раз к компьютеру необходимо некоторое время чтобы драйвера для нее успешно установились. Чтобы проверить правильно ли все установилось и определилось откройте «Диспетчер устройств (Device manager)» на вашем компьютере.

В диспетчере устройств откройте опцию «Порты» “Ports (COM & LPT)”, кликните на ней и посмотрите правильно ли отображается там ваша плата.

Поиск Arduino в диспетчере устройств

При этом стоит отметить, что не стоит обращать внимание на то, какой номер порта отобразился у вашей платы Arduino – он может, к примеру, выглядеть как CCH450 или что то подобное. Этот номер порта просто определяется производителем платы и больше ни на что не влияет.

Если вы не можете в диспетчере устройств найти опцию “Ports (COM & LPT)”, то это означает, что ваша плата не корректно определилась компьютером. В большинстве случает это означает проблему с драйверами – по какой то причине они автоматически не установились для вашей платы. В этом случае вы должны будете вручную установить необходимые драйверы.

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

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

Загрузка программы мигания светодиода

Теперь загрузим нашу первую программу в плату Arduino при помощи программной среды Arduino IDE, которую мы только недавно установили. Установленная Arduino IDE содержит несколько примеров программ, которые будут весьма полезны для начинающих. Давайте откроем один из этих примеров программ используя следующий путь File -> Examples -> Basics -> Blink (как показано на рисунке).

Загрузка программы управления миганием светодиода

При этом откроется программа Blink – ее цель состоит в том чтобы заставить мигать встроенный светодиод на плате Arduino. После открытия программы нам необходимо выбрать правильную плату Arduino – чтобы сделать это выберите пункт меню Tool -> Boards -> Arduino UNO/Genuino как показано на рисунке ниже.

Выбор платы Arduino UNO

Далее мы должны выбрать правильный порт для нашей платы. Ранее мы увидели, что для нашей платы был определен порт COM13. В вашем случае это может быть другой порт. Но для нашего рассматриваемого случая мы должны выбрать пункт меню Tools -> Port -> COM13.

Проверка того, видит ли Arduino IDE вашу плату Arduino

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

Загрузка программы в плату Arduino

После нажатия этой кнопки вы увидите надпись “Compiling sketch” и затем, если загрузка программы прошла успешно, вы увидите сообщение “Done Uploading” как показано на рисунке ниже.

Загрузка программы на плату Arduino прошла успешно

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

Теперь попробуем написать программу, которая будет зажигать светодиод при нажатии кнопки.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress) (Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158).
  2. Кабель для программирования.
  3. Светодиод (любого цвета).
  4. Кнопка.
  5. Резистор 1 кОм.
  6. Макетная плата.
  7. Соединительные провода.

Схема соединений

Представлена на следующем рисунке.

Простейшая схема на плате Arduino

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

Светодиод подсоединен к контакту 3 через резистор 1 кОм. То есть катод светодиода подсоединен к земле, а анод – к контакту 3 Arduino через резистор.

Как начать работу с Arduino Uno: простейшая схема

Программирование Arduino

Теперь, когда необходимая нам схема собрана, мы можем начать программирование платы Arduino UNO. Полный текст программы будет приведен в конце статьи, в этом разделе будет дано объяснение некоторых участков кода этой программы.

В каждой программе для Arduino должны обязательно присутствовать две функции – это функции void setup () и void loop (), иногда их называют «абсолютным минимумом», необходимым для написания программы. Все операции, которые мы запишем внутри void setup (), исполнятся только один раз, а операции, которые мы запишем внутри void loop () – будут исполняться снова и снова. Пример этих функций показан в коде ниже – именно в таком виде они создаются когда вы выбираете пункт меню File -> New.

void setup() {

  // put your setup code here, to run once:

}

void loop() {

  // put your main code here, to run repeatedly:

}

Начнем писать программу в функции setup (). Обычно в этой функции объявляются названия пинов (контактов). В нашей программе нам необходимо объявить всего два контакта: контакт 2 в качестве входного контакта и контакт 3 в качестве выходного контакта. Это можно сделать с помощью следующих строчек кода:

pinMode(2,INPUT);

pinMode (3,OUTPUT);

Но здесь необходимо внести небольшое изменение в программу – нам желательно чтобы контакт 2, который мы объявили в качестве входного контакта, никогда не был бы в «плавающем» состоянии. Это означает что входной контакт должен быть всегда подсоединен либо к +5 В, либо к земле. А в нашем случае при нажатии кнопки он будет подсоединен к земле, а при отжатой кнопке он будет находиться в плавающем состоянии. Чтобы исключить это нам необходимо задействовать внутренний подтягивающий резистор, который находится внутри микроконтроллера ATmega 328 (то есть снаружи мы этот резистор не видим). Для его задействования необходимо написать соответствующую строчку кода в программе.

С помощью этой строчки кода контакт 2 будет подключаться через подтягивающий резистор к напряжению +5 В всегда когда он не подсоединен к земле. То есть мы должны в одной из написанных нами строчек кода изменить слово INPUT на слово INPUT_PULLUP как показано ниже.

Теперь, когда мы закончили с функцией setup (), перейдем к функции loop (). В этой функции мы должны проверять не подсоединен ли контакт 2 к земле (то есть на его входе низкий уровень – LOW) и если он подсоединен в земле, то мы должны зажечь светодиод при помощи подачи на контакт 3 высокого уровня (HIGH). А если контакт 2 не подсоединен к земле (то есть кнопка не нажата), то мы должны держать светодиод в выключенном состоянии при помощи подачи на контакт 3 низкого уровня (LOW). В программе это будет выглядеть следующим образом:

  if (digitalRead(2) == LOW)

  {

    digitalWrite(3,HIGH);

  }

  else

  {

    digitalWrite(3,LOW);

  }

В этих строчках кода оператор digitalRead() используется для проверки статуса (состояния) входного контакта. Если контакт подсоединен к земле, то оператор digitalRead() возвратит значение LOW, а если оператор подсоединен к +5 В, то оператор возвратит значение HIGH.

Аналогично, оператор digitalWrite() используется для установки состояния выходного контакта. Если мы установим контакт в состояние HIGH, то на его выходе будет напряжение +5 В, а если мы установим контакт в LOW, то на его выходе будет 0 В.

Таким образом в нашей программе когда мы нажимаем кнопку на контакт 2 будет подана земля и, соответственно, на контакт 3 мы подаем высокий уровень +5 В (HIGH) чтобы зажечь светодиод. Если условие не выполняется – то есть на контакт 2 не подана земля, то мы на контакт 3 подаем низкий уровень 0 В (LOW) чтобы выключить светодиод.

На этом наша программа закончена, теперь загрузим код программы на нашу плату Arduino таким же образом как ранее мы загружали код программы мигания светодиодом.

Проверка работы схемы

После того как мы загрузили программу на нашу плату Arduino самое время проверить корректность ее работы. Схема соединений представлена выше. Чтобы проверить корректность работы программы необходимо нажать кнопку и проверить загорится ли при этом светодиод. Затем, когда мы отпустим кнопку (прекратим ее нажимать), светодиод должен погаснуть.

Проверка работы схемы

Если программа не работает или у вас есть какие-нибудь вопросы по представленному в этой статье материалу, то вы можете задать их в комментариях к данной статье. Будем надеяться, что ваш первый шаг в освоении Arduino будет все же успешным.

Полный текст программы выглядит следующим образом:

void setup()

{

pinMode(2,INPUT_PULLUP);

pinMode (3,OUTPUT);

}

void loop() {

   if (digitalRead(2) == LOW)

  {

    digitalWrite(3,HIGH);

  }

  else

  {

    digitalWrite(3,LOW);  

  }

}

Загрузка…

49 223 просмотров

С чего начать?

  • Если ты первый раз держишь Ардуино в руках – обязательно посмотри все базовые видеоуроки вот в этом плейлисте. Там рассказан базовый синтаксис языка, а большинство “экспериментов” не требуют ничего, кроме самой платы Arduino.
  • Если видеоуроки уже разобраны – переходи к текстовым урокам: блоки “Введение”, “Программирование” и “Базовые уроки Arduino” повторяют темы видеоуроков, но являются более подробными и глубокими. Уроки опять же не требуют ничего кроме платы Ардуино.
  • Обязательно изучить урок по базовым понятиям электричества, там же есть видео-версия.
  • После изучения основ C++ и базового набора Ардуино-функций переходи к проектам и примерам на сайте GyverKIT, которые ориентированы на работу с компонентами из набора. Начни с блока Документация, где рассказано отдельно про работу с каждой железкой, а потом уже переходи к проектам.

Уроки Ардуино #0 — что такое Arduino, куда подключаются датчики и как питать Ардуино

Уроки Arduino #1 — структура программы и типы данных

Уроки Ардуино #1.1 — действия с переменными и константы

Уроки Arduino #2 — работа с монитором COM порта

Уроки Ардуино #3 — условный оператор if и оператор выбора

Уроки Arduino #4 — функции времени

Уроки Arduino #5 — работа с цифровыми портами и подключение кнопки

Уроки Arduino #6 — отработка нажатия кнопки при помощи флажков

Уроки Arduino #7 — подключение светодиода

Уроки Arduino #8 — управление реле

Уроки Ардуино #9 — управление нагрузкой MOSFET транзистор

Уроки Arduino #10 — потенциометры и аналоговые пины

Полезный пример?

      Введение. Впервые это вижу.

      Привет друзья, меня зовут Алексей, и от имени и по поручению команды профессионалов Giant4 я решил написать небольшой курс статей — инструкций по использованию платы Arduino Nano и так называемой адресной лентой, на основе светодиодов ws2812b

      Давайте сначала поговорим о том, что Arduino из себя представляет в общем. Данное понимание просто необходимо, особенно если Вы в данном деле новичок. В этой серии статей мы преследуем цель обеспечить простой и безболезненный старт новичку,  поэтому я намерен давать простые и понятные для восприятия термины и определения. Итак, поехали!

     Arduino

1_01.png

Для начала нам необходимо разобраться, что же такое Arduino. Если вы почитаете в интернете, то найдете множество разных определений, но я дам Вам свое, в корне отличающееся от остальных. Arduino – это платформа, предназначенная для простой и понятной разработки. Arduino позволит легко разрабатывать свои собственные устройства, не имея ни малейшего понятия об архитектуре микроконтроллера (МК), не имея каких-то серьезных навыков программирования и даже не зная основ электротехники. Arduino – это не программа для написания кода, не интерпретатор, не компилятор, не программатор и даже не сама плата, на которой находится микроконтроллер. Arduino – это все перечисленное выше, но и одновременно нечто гораздо большее. Это целая система, это философия, это то, что объединяет крутейшие идеи ведущих инженеров мира.  Это комплекс программных и аппаратных решений. Но при всем при этом, Arduino считается детской игрушкой, с которой справится даже первоклассница. Arduino – это то, что может показаться неоправданно дорогим и то, что составляет конкуренцию мировым лидерам по разработке и производству электроники, как в вопросе себестоимости, так и в функционале. И то, чем будет Arduino в Ваших руках, зависит только от Вас.

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

Arduino Nano

На фото изображена та самая плата к которой мы пишем инструкцию, она и называется Arduino Nano. Это уже готовая плата, в основе которой лежит МК ATmega328, а также вся необходимая обвязка, превращающая популярный микроконтроллер в полноценное, самостоятельное устройство. Тут у нас и кварцевый резонатор, позволяющий МК работать на стабильной частоте, и стабилизатор напряжения, и микросхема, связывающая компьютер и устройство (для ее программирования). Также имеется кнопочка сброса программы, индикация в виде светодиодов. Ну и несколько простейших радиокомпонентов, без которых устройство не заработает. В общем, все организовано таким образом, чтобы можно было просто подключить плату к компьютеру (по USB проводу) и начать работать. Как по мне, это очень здорово, при том что Nano имеет небольшой размер и выводы, предназначенные для впаивания в них гребенки с контактами. Имея данные контакты и провода под них, можно даже не пользоваться паяльником.

Подделка или оригинал

Дальше следует упомянуть о том, что плата, которая лежит у меня на столе, — это не совсем оригинал, это китайская реплика или даже можно сказать подделка. Она значительно дешевле оригинала. Но стоит отнестись к данной информации объективно. Во-первых, весь функционал такой же, как и в оригинале. Во-вторых, не потеряно удобство работы с данной платой.  В-третьих, итальянцы действительно слишком дорого просят за оригинал и невольно задумываешься об их чрезмерных аппетитах. Если интересно, сравните стоимость Arduino Nano из Китая со стоимостью такой же платы из официального магазина Arduino, и сами все поймете. В общем, смысл простой: если есть возможность и желание переплатить, то можно поддержать разработчиков платформы, все-таки они подарили миру по-настоящему крутое решение. Но при желании сэкономить Вы ничего не теряете. Также если Вы будете читать статьи других авторов, то в них часто можно увидеть упоминания подобного рода: «У Китая, конечно, дешево, но они постоянно глючат, ломаются и требуют «танцев с бубном». Вам это нужно? Вот если взять оригинал, то проблем не будет…» И Вы в растерянности будете думать: «Почему мнения расходятся? Почему объясняют по-разному?» Ответ, как правило, очень простой: в этих же статьях Вы наткнетесь на ссылки, ведущие в официальный магазин Arduino, то есть эти статьи писали не авторы, а продавцы, участвующие в реферальной программе. Как правило, данные статьи частично или полностью скопированы у настоящих авторов и доверять им не стоит, так как велик шанс того, что они только запутают Вас. 

Подключение Arduino Nano

Давайте разберемся, как подключать нашу плату, чтобы ее использовать. Прежде всего следует обратить внимание на то, что все выводы на плате подписаны. Давайте начнем с электропитания. Самый простой способ подключить Arduino Nano – это подключить ее по USB проводу к компьютеру. В этом случае плата сразу же будет запитана и появится связь с компьютером для ее программирования. Но этот способ используется, как правило, только для программирования и отладки работы. Согласитесь, будет не удобно таскать компьютер вслед за МК.

Зато на нашей плате имеются специальные выводы питания МК от внешнего источника. Подписаны они как: «+5», «VIN», «GND». Если источник питания от 4,5В до 5,5В, то смело используем «+5» и «GND», если источник питания от 7-12В, то используем «VIN» и «GND». Сразу хочу оговориться: во многих статьях указанно, что напряжение питания на «VIN» возможно подавать 6-20В, но я бы не советовал подключать больше 12в, так как понижающий стабилизатор может не справиться. Так как мы будем рассматривать Ардуино в связке с адресной лентой, нам больше и не потребуется.

Теперь давайте поговорим о других выводах платы. И сразу же ремарка: мы не будем говорить обо всех возможностях, а поговорим только конкретно о тех, что нам необходимы. На Arduino Nano имеются 14 контактов, начинающихся на букву «D». Это цифровые входы и выходы. В зависимости от нашей программы, каждый из этих контактов может быть либо входом, либо выходом.

Объясняю, что это значит. Если, к примеру, вывод «D4» объявлен как выход, тогда своей программой мы можем подать на него напряжение (+5В) или же снять напряжение, и на нем будет общий (GND). Полностью физически отключить вывод (на сленге — «ногу») не получится, так как у нас внутри не выключатель, но это нам и не нужно.  

 

А если вывод «D4» объявлен как вход, то программа может определить, подано напряжение извне или нет. Это можно использовать для внешних элементов управления платой, к примеру, кнопок.

Также хочу сказать, что для простоты понимания мы с Вами, в рамках данного курса, не будем оперировать выводами «D0» и «D1», там есть нюансы, которые только запутают нас на данном этапе.

WS2812B

И, наконец-то, пришло время поговорить об адресной светодиодной ленте на основе светодиодов ws2812b. Суть в том, что можно зажечь на данной ленте любой отдельный светодиод, любым цветом. Управление светодиодами происходит достаточно быстро и при должной сноровке можно организовывать целые световые шоу.

Каждый светодиод в ленте мы будем называть пикселем. Потому что один пиксель имеет внутри себя 3 светодиода разных цветов: красный, зеленый, синий. И, конечно же, пиксель «пляшет» от системы кодирования цветов RGB (red, green, blue). Также в каждом пикселе имеется микросхема, которая управляет степенью яркости того или иного цвета по средству ШИМ. То есть, три ШИМ сигнала с микросхемы, расположенной внутри пикселя, управляют яркостью каждого светодиода по отдельности.  Каждый из трех ШИМ сигналов может принимать 0 до 255 значений, то есть 8 бит. Из этого можно сделать вывод, что каждый пиксель на ленте кодируется 24 битами, а это, в свою очередь, 16 777 216 различных цветов, которые можно получить с одного пикселя.  С нашей точки зрения, это очень круто?

А теперь небольшое разоблачение: на самом деле пиксели в адресной светодиодной ленте не имеют адресов.  Данное название пошло скорее от народа. Работает это примерно так: пиксель, начиная с первого, получает пакет из 24 бит, начинает работать согласно инструкции, а получив за первым пакетом второй, передает его следующему пикселю, — и так до конца. Чтобы прервать этот цикл и начать заполнение с начала, необходимо выдержать временную паузу, причем эта пауза очень мала, а сами биты отправляются на достаточно большой частоте.  Но если говорить честно, то мы не будем работать с битами напрямую, всю работу на себя возьмёт программная библиотека (которых, кстати, для Arduino огромное множество).

У нашей светодиодной ленты имеются три контакта: «+5V», «GND» и «D». Причем с одной стороны от светодиода у нас промаркировано «DO», а с другой «DIN». «D» — это как раз линия, по которой идут команды. Команды могут идти только в одном направлении.  «DIN» — дискретный вход, «DO» — дискретный выход. И, как правило, направление команд отмечено стрелочками.

Заключение

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

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Rainford rwm 1051 nd инструкция
  • Эвкам бальзам для тела разогревающий инструкция
  • Dji fly инструкция на русском
  • Ekf rt sba инструкция
  • Ферромет таблетки инструкция по применению