Программирование Arduino. Arduino PRO. С чего лучше начать новичку

» представляет учебный курс «Arduino для начинающих». Серия представлена 10 уроками, а также дополнительным материалом. Уроки включают текстовые инструкции, фотографии и обучающие видео. В каждом уроке вы найдете список необходимых компонентов, листинг программы и схему подключения. Изучив эти 10 базовых уроков, вы сможете приступить к более интересным моделям и сборке роботов на основе Arduino. Курс ориентирован на новичков, чтобы к нему приступить, не нужны никакие дополнительные сведения из электротехники или робототехники.

Краткие сведения об Arduino

Что такое Arduino?

Arduino (Ардуино) — аппаратная вычислительная платформа, основными компонентами которой являются плата ввода-вывода и среда разработки. Arduino может использоваться как для создания автономных интерактивных объектов, так и подключаться к программному обеспечению, выполняемому на компьютере. Arduino как и относится к одноплатным компьютерам.

Как связаны Arduino и роботы?

Ответ очень прост — Arduino часто используется как мозг робота.

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

Урок 1. Мигающий светодиод на Arduino

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

Светодиод — полупроводниковый прибор, создающий оптическое излучение при пропускании через него электрического тока в прямом направлении.

Урок 2. Подключение кнопки на Arduino

На этом уроке вы научитесь подключать кнопку и светодиод к Arduino.

При нажатой кнопке светодиод будет гореть, при отжатой – не гореть. Это также базовая модель.

Урок 3. Подключение потенциометра на Arduino

В этом уроке вы научитесь подключать потенциометр к Arduino.

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

Урок 4. Управление сервоприводом на Arduino

На этом уроке вы научитесь подключать сервопривод к Arduino.

Сервопривод – это мотор, положением вала которого можно управлять, задавая угол поворота.

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

Урок 5. Трехцветный светодиод на Arduino

На этом уроке вы научитесь подключать трехцветный светодиод к Arduino.

Трехцветный светодиод (rgb led) — это три светодиода разных цветов в одном корпусе. Они бывают как с небольшой печатной платой, на которой расположены резисторы, так и без встроенных резисторов. В уроке рассмотрены оба варианта.

Урок 6. Пьезоэлемент на Arduino

На этом уроке вы научитесь подключать пьезоэлемент к Arduino.

Пьезоэлемент — электромеханический преобразователь, который переводит электричеcкое напряжение в колебание мембраны. Эти колебания и создают звук.

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

Урок 7. Фоторезистор на Arduino

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

Фоторезистор — резистор, сопротивление которого зависит от яркости света, падающего на него.

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

Урок 8. Датчик движения (PIR) на Arduino. Автоматическая отправка E-mail

На этом уроке нашего курса вы научитесь подключать датчик движения (PIR) к Arduino, а также организовывать автоматическую отправку e-mail.

Датчик движения (PIR) — инфракрасный датчик для обнаружения движения или присутствия людей или животных.

В нашей модели при получении с PIR-датчика сигнала о движении человека Arduino посылает компьютеру команду отправить E-mail и отправка письма происходит автоматически.

Урок 9. Подключение датчика температуры и влажности DHT11 или DHT22

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

Датчик температуры и влажности — это составной цифровой датчик, состоящий из емкостного датчика влажности и термистора для измерения температуры.

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

Урок 10. Подключение матричной клавиатуры

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

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

Урок 11. Подключение модуля часов реального времени DS3231

На последнем уроке нашего курса вы научитесь подключать модуль часов реального времени из семейства
DS к плате Arduino, а также познакомитесь с различными интересными схемами.

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

Приложение. Готовые каркасы и роботы Arduino


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

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

Еще один вариант — покупка каркаса или корпуса робота: платформы на колесиках или гусенице, гуманоида, паука и т.п. В этом случае начинку робота придется делать самостоятельно.

Приложение. Мобильный справочник


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

Приложение состоит из 3-х основных разделов:

  • Операторы;
  • Данные;
  • Функции.

Где купить Arduino


Наборы Arduino

Курс будет пополняться дополнительными уроками. Подпишитесь на нас

Этот урок дает минимальные знания, необходимые для программирования систем Ардуино на языке C. Можно только просмотреть его и в дальнейшем использовать как справочную информацию. Тем, кто программировал на C в других системах можно пропустить статью.

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

Структура программы Ардуино.

Структура программы Ардуино достаточно проста и в минимальном варианте состоит из двух частей setup() и loop().

void setup() {

void loop() {

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

После завершения setup() управление переходит к функции loop(). Она в бесконечном цикле выполняет команды, записанные в ее теле (между фигурными скобками). Собственно эти команды и совершают все алгоритмические действия контроллера.

Первоначальные правила синтаксиса языка C.

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

z = x + y;
z= x
+ y ;

{ } фигурные скобки определяют блок функции или выражений. Например, в функциях setup() и loop().

/* … */ блок комментария , обязательно закрыть.

/* это блок комментария */

// однострочный комментарий , закрывать не надо, действует до конца строки.

// это одна строка комментария

Переменные и типы данных.

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

Тип данных Разрядность, бит Диапазон чисел
boolean 8 true, false
char 8 -128 … 127
unsigned char 8 0 … 255
byte 8 0 … 255
int 16 -32768 … 32767
unsigned int 16 0 … 65535
word 16 0 … 65535
long 32 -2147483648 … 2147483647
unsigned long 32 0 … 4294967295
short 16 -32768 … 32767
float 32 -3.4028235+38 … 3.4028235+38
double 32 -3.4028235+38 … 3.4028235+38

Типы данных выбираются исходя из требуемой точности вычислений, форматов данных и т.п. Не стоит, например, для счетчика, считающего до 100, выбирать тип long. Работать будет, но операция займет больше памяти данных и программ, потребует больше времени.

Объявление переменных.

Указывается тип данных, а затем имя переменной.

int x; // объявление переменной с именем x типа int
float widthBox; // объявление переменной с именем widthBox типа float

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

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

  • Переменные, объявленные в начале программы, до функции void setup(), считаются глобальными и доступны в любом месте программы.
  • Локальные переменные объявляются внутри функций или таких блоков, как цикл for, и могут использоваться только в объявленных блоках. Возможны несколько переменных с одним именем, но разными областями видимости.

int mode; // переменная доступна всем функциям

void setup() {
// пустой блок, начальные установки не требуются
}

void loop() {

long count; // переменная count доступна только в функции loop()

for (int i=0; i < 10;) // переменная i доступна только внутри цикла
{
i++;
}
}

При объявлении переменной можно задать ее начальное значение (проинициализировать).

int x = 0; // объявляется переменная x с начальным значением 0
char d = ‘a’; // объявляется переменная d с начальным значением равным коду символа ”a”

При арифметических операциях с разными типами данных происходит автоматическое преобразование типов данных. Но лучше всегда использовать явное преобразование.

int x; // переменная int
char y; // переменная char
int z; // переменная int

z = x + (int) y; // переменная y явно преобразована в int

Арифметические операции.

Операции отношения.

Логические операции.

Операции над указателями.

Битовые операции.

& И
| ИЛИ
^ ИСКЛЮЧАЮЩЕЕ ИЛИ
~ ИНВЕРСИЯ
<< СДВИГ ВЛЕВО
>> СДВИГ ВПРАВО

Операции смешанного присваивания.

Выбор вариантов, управление программой.

Оператор IF проверяет условие в скобках и выполняет последующее выражение или блок в фигурных скобках, если условие истинно.

if (x == 5) // если x=5, то выполняется z=0
z=0;

if (x > 5) // если x >
{ z=0; y=8; }

IF … ELSE позволяет сделать выбор между двух вариантов.

if (x > 5) // если x > 5, то выполняется блок z=0, y=8;
{
z=0;
y=8;
}

{
z=0;
y=0;
}

ELSE IF – позволяет сделать множественный выбор

if (x > 5) // если x > 5, то выполняется блок z=0, y=8;
{
z=0;
y=8;
}

else if (x > 20) // если x > 20, выполняется этот блок
{
}

else // в противном случае выполняется этот блок
{
z=0;
y=0;
}

SWITCH CASE - множественный выбор. Позволяет сравнить переменную (в примере это x) с несколькими константами (в примере 5 и 10) и выполнить блок, в котором переменная равна константе.

switch (x) {

case 5:
// код выполняется если x = 5
break;

case 10:
// код выполняется если x = 10
break;

default:
// код выполняется если не совпало ни одно предыдущее значение
break;
}

Цикл FOR . Конструкция позволяет организовывать циклы с заданным количеством итераций. Синтаксис выглядит так:

for (действие до начала цикла;
условие продолжения цикла;
действие в конце каждой итерации) {

// код тела цикла

Пример цикла из 100 итераций.

for (i=0; i < 100; i++) // начальное значение 0, конечное 99, шаг 1

{
sum = sum + I;
}

Цикл WHILE . Оператор позволяет организовывать циклы с конструкцией:

while (выражение)
{
// код тела цикла
}

Цикл выполняется до тех пор, пока выражение в скобках истинно. Пример цикла на 10 итераций.

x = 0;
while (x < 10)
{
// код тела цикла
x++;
}

DO WHILE – цикл с условием на выходе.

do
{
// код тела цикла
} while (выражение);

Цикл выполняется пока выражение истинно.
BREAK – оператор выхода из цикла. Используется для того, чтобы прервать выполнение циклов for, while, do while.

x = 0;
while (x < 10)
{
if (z > 20) break; // если z > 20, то выйти из цикла
// код тела цикла
x++;
}

GOTO – оператор безусловного перехода.

goto metka1; // переход на metka1
………………
metka1:

CONTINUE - пропуск операторов до конца тела цикла.

x = 0;
while (x < 10)
{
// код тела цикла
if (z > 20) continue; // если z > 20, то вернуться на начало тела цикла
// код тела цикла
x++;
}

Массивы.

Массив это область памяти, где последовательно хранятся несколько переменных.

Объявляется массив так.

int ages; // массив из 10 переменных типа int

float weight; // массив из 100 переменных типа float

При объявлении массивы можно инициализировать:

int ages = { 23, 54, 34, 24, 45, 56, 23, 23, 27, 28};

Обращаются к переменным массивов так:

x = ages; // x присваивается значение из 5 элемента массива.
ages = 32; // 9 элементу массива задается значение 32

Нумерация элементов массивов всегда с нуля.

Функции.

Функции позволяют выполнять одни и те же действия с разными данными. У функции есть:

  • имя, по которому ее вызывают;
  • аргументы – данные, которые функция использует для вычисления;
  • тип данных, возвращаемый функцией.

Описывается пользовательская функция вне функций setup() и loop().

void setup() {
// код выполняется один раз при запуске программы
}

void loop() {
// основной код, выполняется в цикле
}

// объявление пользовательской функции с именем functionName
type functionName(type argument1, type argument1, … , type argument)
{
// тело функции
return();
}

Пример функции, вычисляющей сумму квадратов двух аргументов.

int sumQwadr (int x, int y)
{
return(x* x + y*y);
}

Вызов функции происходит так:

d= 2; b= 3;
z= sumQwadr(d, b); // в z будет сумма квадратов переменных d и b

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

Очень коротко, но этих данных должно хватить для того, чтобы начать писать программы на C для систем Ардуино.

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

Главная цель внешнего оформления программ это улучшить читаемость программ, уменьшить число формальных ошибок. Поэтому для достижения этой цели можно смело нарушать все рекомендации.

Имена в языке C.

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

Signal, TimeCount

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

Рубрика: . Вы можете добавить в закладки.

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

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

Serial.print() и Serial.println() – это основные функции Arduino для передачи информации от платы ардуино к компьютеру через последовательный порт. На самых популярных платах Arduino Uno, Mega, Nano нет встроенного дисплея, поэтому...

Можно ли заниматься ардуино проектами без самой платы Arduino? Оказывается, вполне. Благодаря многочисленным онлайн сервисам и программам, которые имеют свое название: эмулятор или симулятор Arduino. Самыми популярными представителями таких программ являются...

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

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

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

В принципе она универсальна и на ней можно реализовать огромное количество проектов.

Приступим!

Первым делом нам нужно скачать и установить среду разработки со встроенными драйверами, это можно сделать с официального сайта Arduino.cc или по ссылке . После чего можно подключить плату к компьютеру через usb провод которой чаще всего идет в комплекте, либо через любой подходящий. Ардуино использует USB B, в нем нет ничего особенного. Если все сделано правильно и плата исправна windows найдет новое устройство и самостоятельно установит его после чего на плате загорится светодиод помеченный как ON или PWR.

Теперь можно открывать Arduino ide и перед нами сразу появится окно редактора.1) Окно редактора, то место куда мы будем писать код.

2)Окно состояния, здесь будут отображается ошибки и другая информация о нашей программе и процессе заливки прошивки в плату.

3) Панель инструментов и т.д.

Кстати ide поддерживает русский язык, что должно помочь в ее освоении. Теперь проверим все ли хорошо и перейдем на вкладку инструменты -> Платы. Там сразу должна быть выбрана наша плата:

Если это не так-то выберем ее вручную.

Теперь попробует прошить нашу плату тестовой прошивкой, для этого идем Файл -> примеры -> Basics -> Blink. Сразу в окне редактора появились комментарии и сам текст программы. Комментарии всегда расположены между тегами */ или с // и их можно без проблем удалить, они не как не повлияют на работу программы и перестанут мешать сконцентрироваться на главном.

После чего останется такой код:

void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }

void setup () {

pinMode (13 , OUTPUT ) ;

void loop () {

digitalWrite (13 , HIGH ) ;

delay (1000 ) ;

digitalWrite (13 , LOW ) ;

delay (1000 ) ;

Перед тем как я расскажу что он делает давайте прошьем его в ардуино и посмотрим что он будет делать. Для этого нажимаем Скетч -> Загрузка и через некоторое время вы увидите сообщение Загрузка завершена а на плате начнет мигать светодиод!

Если вы получили ошибку: Проблема загрузки на плату то не отчаивайтесь это легко исправить. Для этого идем Инструменты -> Порт -> и там выбераем порт рядом с которым в скобочках написано Arduino/Genuino Uno и пробуем прошить контроллер заново. Если что-то не получается пишите в комментариях, разберемся.

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

void setup() { }

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

Эту часть кода так же сгенерирована автоматически, между фигурных скобок пишется тот код, который будет выполнять непосредственно наша программа бесконечно. То есть это бесконечный цикл. В нем написано digitalWrite(13, HIGH); , что по Русски значит подать 5 вольт на 13 пин, это действия зажигает светодиод.

delay(1000); Эта задержка, она останавливает выполнение следующей инструкции на 1000 мили секунд (1 секунду).

digitalWrite(13, LOW); подтягивает 13 пин к земле, по русски убирает 5 вольт что приводит к потуханию светодиода.

И так как void loop() это бесконечный цикл то лампочка на Arduino будет мигать бесконечно!

Развлекаться с голой платой Arduino не так весело как хотелось бы из-за того что на плате установлен всего 1 светодиод и нет ни одной кнопки но это не значит что поморгать светодиодом это все что мы можем! Давайте заставим его загораться и тухнуть по команде с компьютера!

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

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

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

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


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

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



- 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
Вот так выглядит все в сборе:



Когда я получил набор, то сразу принялся искать инструкции, но внутри коробки ничего не обнаружил, подумал, что китаец обманул и уже хотел с ним ругаться, но почитал описание лота и там была ссылка со всеми инструкциями и программами: (пароль:22cd)
Но китайскими программами лучше не пользоваться, по тому программу для программирования arduino лучше скачать с официального сайта:
А вот собраны мной инструкции, программы, скетчи найденные в интернете и мои скетчи, которые пригодились в освоении 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 Ом,

Я немного не правильно подключил, поставил 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 #include 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..clear(); //очистка экрана delay(300); lcd.setCursor(0, 0); lcd.print("Specially for"); lcd.setCursor(0, 1); lcd..clear(); //очистка экрана delay(300); lcd.setCursor(0, 0); lcd.print("Specially for"); lcd.setCursor(0, 1); 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 не набором, а отдельными модулями.

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

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

Планирую купить +307 Добавить в избранное Обзор понравился +199 +551
  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то