2-урок
Умные ворота
На этом уроке мы соберем умные ворота для гаража. Для этого нам нужен шаговый двигатель. Шаговый двигатель предназначен для точного вращение объекта на заданное количество шагов. С помощью драйвера плата Arduino будет управлять шаговым двигателем. Количество шагов задаем в программе Arduino IDE.


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

1. Подключите порты драйвера к цифровым выводам платы Arduino UNO как показано на рисунке.
N1 → 8; N2 → 9; N3 → 10; N4 → 11.

2. Драйвер двигателя установим на макетной плате для этого «+» (плюс) на драйвере проведем к «+» на макетной плате. «-» (минус) на драйвере проведем к «-» на макетной плате.

3. Проведем провода от Arduino к макетной плате. GND → «-«; 5V → «+».

4. Теперь установим на макетной плате ИК датчик. У датчика три ножки. Первая справа идет к «-» (контакт на одной линий с первой ножкой), вторая к «+» , третья к «2» на Arduino UNO (как на фото).

Когда все подключено правильно как на схеме, открываем программу Arduino IDE.
Подключаем Ардуино на компьютер через USB.
Если на компьютере нет программы Arduino IDE установите его как на видео.
Скачайте архивы с библиотекой Arduino-IRemote-master и Stepper разархивируйте, папку с библиотекой вставьте в папку C:Program Files (x86)Arduinolibraries. Посмотрите видео как это сделать.
- Затем, скопируйте скетч ниже и вставьте в окно программы. Нажмите «проверить», если нет ошибок нажмите «загрузить». Выберите ваше устройство Arduino UNO, подождите несколько секунд и можете проверить работу устройства. Нажмите на пульте кнопку + и — . Вал двигателя должен крутится в разные стороны.
- В скече можно изменить количество шагов вала. Просто изменяете число в коде.

- Посмотрите видео инструкцию как загрузить скетч на Arduino IDE.
#include <IRremote.h> // подключаем библиотеку
#include <Stepper.h> // библиотека для шагового двигателя
int RECV_PIN = 2; // сигнальный пин подключаем к 2-му цифр.выводу
IRrecv irrecv(RECV_PIN);
decode_results results;
const int stepsPerRevolution = 40; // количество шагов на 1 оборот, измените значение для вашего мотора
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
void setup()
{
Serial.begin(9600); // открытие serial
myStepper.setSpeed(130); // устанавливаем скорость 130 об/мин
irrecv.enableIRIn(); // инициализация ИК-приемника
}
void loop()
{
delay(500);
if (irrecv.decode(&results)) {
if(results.value==16769055) {
myStepper.step(1500); // Делаем 1500 шагов в одну строну
Serial.println("tusti");}
else if(results.value==16754775) {
myStepper.step(-1500); // Делаем 1500 шагов в другую строну
Serial.println("koterildi");
}
Serial.println(results.value, DEC); // вывод в 16-м режиме
Serial.println(); // для удобства добавим пустую строку
irrecv.resume(); // получаем следующее значение
}
}
Когда все работает и вал крутится при нажатии кнопок на пульте, устанавливаем двигатель в гараж, чтобы он открывал ворота. В нашем случае мы сделаем отверстие на крышке бутылки по размеру вала (два других отверстия делать не нужно), так чтобы он крепко держался и приклеим на крышку конец нашей веревки от ворот. Установим двигатель на крышу гаража.

