Управление воротами шторами и жалюзи. Автоматические жалюзи на окна. Преимущества, которые дает автоматизация жалюзи

Что это?

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

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

Что нам понадобится?

Как собрать?

Алгоритм

Сразу после подачи питания вызывается функция setup . В её теле инициализируется ИК-библиотека. Затем подаётся сигнал старта программы (три коротких сигнала) и запускается процедура «обучения» устройства. Обучение заключается в запоминании устройством кнопок, которые пользователь использует для открытия и закрытия жалюзей. Пользователь нажимает кнопку на пульте, устройство получает код нажатой кнопки, запоминает его и подтверждает это событие коротким сигналом. Затем всё повторяется для второй кнопки. После того, как обе кнопки заданы, устройство издаёт длинный звуковой сигнал и переходит в рабочий цикл (функция loop).

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

Исходный код

light_jalousie.ino // подключаем библиотеку для работы с сервоприводами #include // определим номера используемых пинов // сенсор освещенности #define LIGHT_PIN A0 // чувствительность к свету #define POT_PIN A5 // пин сервопривода #define SERV_PIN 3 // пин пищалки #define BUZZER_PIN 4 // определим тип «действие» enum Command { CMD_NONE = 0 , CMD_OPEN = 1 , CMD_CLOSE = 2 } ; // в начале программы мы не знаем открыты жалюзи или нет int cmd = CMD_NONE; // создадим объект для управления сервоприводом постоянного вращения Servo srv; void setup() { // сообщаем пользователю, что мы запустились тройным пиком tone(BUZZER_PIN, 500 , 100 ) ; delay(200 ) ; tone(BUZZER_PIN, 500 , 100 ) ; delay(200 ) ; tone(BUZZER_PIN, 500 , 100 ) ; delay(200 ) ; } void loop() { int light = analogRead(LIGHT_PIN) ; int lightSens = analogRead(POT_PIN) ; Serial.print (light) ; Serial.print ("\t \t " ) ; Serial.print (lightSens) ; Serial.print ("\t \t " ) ; Serial.println (cmd) ; if (light > lightSens && (cmd == CMD_OPEN || cmd == CMD_NONE) ) { srv.attach (SERV_PIN) ; srv.write (120 ) ; delay(2000 ) ; // отсоединиться от неё srv.detach () ; cmd = CMD_CLOSE; } else if (light < lightSens && (cmd == CMD_CLOSE || cmd == CMD_NONE) ) { srv.attach (SERV_PIN) ; // ждём указанное время открытия/закрытие жалюзей srv.write (30 ) ; delay(2000 ) ; // самый простой способ остановить серву постоянного вращения // отсоединиться от неё srv.detach () ; cmd = CMD_OPEN; } }

Демонстрация работы устройства

Что дальше?

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

    В нашей конструкции есть изъян: нельзя сделать кнопку, которая автоматически полностью закроет жалюзи. Если установить датчик полного закрытия/открытия, то такую функцию реализовать станет возможным. Для этого можно, например, снять одну полоску и установить вместо неё потенциометр.

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

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

Жалюзи, маркизы и шторы могут закрываться или открываться как отдельно, так и группами, к примеру, только в одной комнате или на всем этаже. Кроме этого, возможна функция закрытия жалюзи, штор и маркиз во всем здании. Это облегчает жизнь и быт в большом доме или коттедже.

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

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


Управление жалюзи, шторами, рольставнями, маркизами, воротами, экранами кинотеатров и другими устройствами можно производить вручную с любых устройств управления, входящих в систему «Умный дом». Это сенсорные и кнопочные панели управления, выключатели, радиопульты, а также iPad и iPhone.








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

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

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

Маркизы будут управляться в зависимости от погодных условий. Система управления «Умный дом», проанализировав датчики, закроет маркизы на окнах в случае возникновения дождя.


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

В качестве оборудования системы управления наша компания применяет современное оборудование таких зарубежных производителей, как AMX, Creston и Control4, а также контроллеры собственного производства: главный контроллер управления Master Controller и контроллер ввода-вывода данных CP-32.


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


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

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

Преимущества

Жалюзи универсальны и просты в использовании

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

  1. Надёжная защита от солнца, особенно если окна выходят на южную сторону. Чтобы выполнить данную функцию с помощью штор, необходимо приобретать довольно плотный материал. При закрывании окон такими шторами полностью перекрывается поток свежего воздуха. В случае с жалюзи ламели поворачивают так, чтобы добиться отражения от них лучей солнца, при этом остаётся свободный доступ воздуха.
  2. Универсальность применения. Благодаря разнообразию дизайна их можно использовать как в офисных кабинетах, так и для оформления жилой комнаты.
  3. Простота в использовании. Если для открывания и закрывания штор, в особенности тяжёлых, необходимо приложить усилия, то с жалюзи тот же процесс можно выполнить с помощью лёгкого поворота специальной ручки.
  4. Можно использовать для окон любого типа и площадей разных размеров.
  5. Возможность визуального изменения размеров комнаты. Используя вертикальные жалюзи, зрительно увеличиваем высоту помещения.

Особенности устройства

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

Рассмотрим два типа жалюзи, которые наиболее востребованы потребителями: вертикальные и горизонтальные.

Вертикальные

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

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

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

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

В таком виде механизм конструкции не сможет полноценно функционировать. Также со временем пластиковый карниз пожелтеет и потеряет свой эстетичный вид.

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

Нюансы использования

Выбирайте жалюзи с прочными ламелями и карнизом

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

  1. При приобретении обязательно проверяем качество сборки карниза. Его механизмы должны функционировать без особых усилий. Также состояние верёвки должно быть безупречным, она не должна скручиваться.
  2. Элементы карниза не должны быть слабыми и тонкими.
  3. Ширину следует определять от веса изделия. Например, при использовании жалюзи с лёгкими ламелями из ткани высотой 4 м, ширина карниза должна быть 3,5 см, а для тяжёлых из пластика высотой 3 м ширина составляет 3 см.
  4. Придерживаться правил эксплуатации.

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

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

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

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

Схема устройства жалюзи

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

Поворот ламелей на 1800 обеспечивает специальная цепочка управления, которая обычно размещается сбоку.

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

Тканевые или пластиковые полосы – ламели бывают разные по ширине. О том, как собрать вертикальные жалюзи, смотрите в этом видео:

Горизонтальные

Особо удобны горизонтальные жалюзи на пульте управления

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

Вертикальные жалюзи обычно располагаются так, чтобы карниз был прикреплён к потолку, а само изделие закрывает не только окно, но и захватывает часть стены. Горизонтальные конструкции чаще всего размещают внутри оконного проёма, карниз монтируют к профилю. Ширина ламелей горизонтальных жалюзи также различна: от 16 до 25 мм.

Процесс монтажа

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

Схема устройства такова:

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

Механизмы управления

В зависимости от механизма, жалюзи могут сдвигаться к центру или к краю окна

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

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

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

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

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

Читайте в статье

Немного истории

По официальной версии горизонтальные жалюзи были изобретены в 1760 году англичанином Джоном Уэбстером, но запатентованы они были в Америке спустя 80 лет его тёзкой Джоном Хемтоном. Однако, история конструкции для защиты от яркого солнца началась гораздо раньше. Прототипом первых горизонтальных жалюзи можно считать раму, в которую были вставлены под определенным углом деревянные пластины. Изнутри можно было наблюдать за тем, что происходит на улице, а снаружи практически нельзя было рассмотреть происходящее в доме. Со временем конструкция усовершенствовалась, и стали выпускаться вертикальные, горизонтальные, рулонные и прочие жалюзи, причём из самых разных материалов.


Хорошие стороны горизонтальных жалюзи и их недостатки

Благодаря регулярному усовершенствованию конструкции жалюзи, этот вид штор, если можно так выразиться, приобретает всё большую популярность. Независимо от типа, данные изделия имеют свои преимущества перед традиционными шторами. К бесспорным плюсам жалюзи относится следующее:

  • экономия пространства;
  • небольшой вес;
  • функциональность – защита от яркого солнца и нескромных взглядов;
  • возможность управления направлением светового потока и регулировки интенсивности освещения;
  • простота монтажа;
  • лёгкость управления и обслуживания;
  • доступная цена.

Рулонные тканевые шторы «День/Ночь»

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

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

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

Дизайн этой системы автоматических жалюзей Ардуино довольно прост и в нём два способа активировать занавески:

  • Используя звуковой датчик (микрофон), чтобы управлять им, используя хлопки в ладоши;
  • Использование кнопок для открывания/закрывания шторок.

Шаг 2. Как это работает?

Работа этой системы очень проста. Ардуина принимает входные сигналы от звукового датчика (микрофона) или кнопок. Затем он соответственно управляет шаговым двигателем через драйвер Дарлингтона для двигателя. Шаговый двигатель прикреплен к ручке управления шторками и, таким образом, вращает и открывает/закрывает шторы.

Шаг 3. Подключаем и настраиваем шаговый мотор

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

Первая кнопка справа активирует двигатель для вращения в определенном направлении (вы можете изменить это в коде ниже). Нажмите кнопку 4 раза и она вернется в исходное положение, так как она будет вращаться на 90 градусов во время каждого нажатия. Средняя кнопка блокирует цепь так, чтобы первая кнопка не могла активировать двигатель.

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

int pin={2,3,4,5,6,7,8,9}; int steps = { {HIGH,HIGH,LOW,LOW}, {HIGH,LOW,LOW,HIGH}, {LOW,LOW,HIGH,HIGH}, {LOW,HIGH,HIGH,LOW}, } ; int numofroun=1; //Change accordingly to your needs int current=1; int type=3; int place=0; int lastLockState = LOW; long lastLockTime = 0; int LockState; int Lockreading; bool lock=true; int lastPauseState = LOW; long lastPauseTime = 0; int PauseState; int Pausereading; bool Pauseled=false; bool pause=false; int lastReturnState = LOW; long lastReturnTime = 0; int ReturnState; int Returnreading; void setup() { for (int num=0; num<5; num++) pinMode(pin,OUTPUT); for (int num=5; num<8; num++) pinMode(pin,INPUT); } void reset(){ for(int num=0;num<4;num++) digitalWrite(pin,LOW); } void stepper() { for (int num=0; num<4;num++) { digitalWrite(pin,steps);} if(type==0) {++place;} if(type==3) {--place;} delay(2); } void button1() { Lockreading = digitalRead(pin); if (Lockreading != lastLockState) { lastLockTime = millis(); } if ((millis() - lastLockTime) > 50) { if (Lockreading != LockState) { LockState = Lockreading; if (LockState == HIGH) { lock=false; if ((place!=1536*numofroun)&&(place!=1024*numofroun)&&(place!=512*numofroun)) {type=abs(type-3);} } } } lastLockState = Lockreading; } void button2() { Pausereading = digitalRead(pin); if (Pausereading != lastPauseState) { lastPauseTime = millis(); } if ((millis() - lastPauseTime) > 50) { if (Pausereading != PauseState) { PauseState = Pausereading; if (PauseState == HIGH) { Pauseled=!Pauseled; pause=!pause; if (Pauseled) {digitalWrite(pin,HIGH);} if (!Pauseled) {digitalWrite(pin,LOW);} } } } lastPauseState = Pausereading; } void button3() { Returnreading = digitalRead(pin); if (Returnreading != lastReturnState) { lastReturnTime = millis(); } if ((millis() - lastReturnTime) > 50) { if (Returnreading != ReturnState) { ReturnState = Returnreading; if (ReturnState == HIGH) { type=3; while (place>0) { for (int num=0; num<4;num++) { digitalWrite(pin,steps);} --place; if (current==3) {current=0;} else ++current; delay(2); } reset(); } } } lastReturnState = Returnreading; } void loop() { if (lock==true) {button2();button3();} if (!pause) { if (lock==true) {button1();} if (lock==false) {stepper();} if ((place==2048)or(place==0)or(((place==1536*numofroun)or(place==1024*numofroun)or(place==512*numofroun))&&(type==3))) {lock=true;reset();} if (current==3) {current=0;} else ++current; } }

Шаг 4. Настройка схемы жалюзей Ардуино

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

int pin={2,3,4,5,6,7,8,9}; int steps = { {HIGH,HIGH,LOW,LOW}, {HIGH,LOW,LOW,HIGH}, {LOW,LOW,HIGH,HIGH}, {LOW,HIGH,HIGH,LOW}, } ; float numofroun=4.5; //Change accordingly to your needs int current=1; int type=3; int place=0; int claps = 0; long detectionSpanInitial = 0; long detectionSpan = 0; long spancondition; bool spanconditioncheck=false; bool lock=true; int lastPauseState = LOW; long lastPauseTime = 0; int PauseState; int Pausereading; bool Pauseled=false; bool pause=false; int lastReturnState = LOW; long lastReturnTime = 0; int ReturnState; int Returnreading; void setup() { for (int num=0; num<5; num++) pinMode(pin,OUTPUT); for (int num=5; num<8; num++) pinMode(pin,INPUT); } void reset(){ for(int num=0;num<4;num++) digitalWrite(pin,LOW); } void stepper() { for (int num=0; num<4;num++) { digitalWrite(pin,steps);} if(type==0) {++place;} if(type==3) {--place;} delay(2); } void sound() { int sensorState = digitalRead(pin); if (sensorState == 0){ if (claps == 0){ detectionSpanInitial = detectionSpan = millis(); claps++; } else if (claps > 0 && millis()-detectionSpan >= 50){ detectionSpan = millis(); claps++; } } if (millis()-detectionSpanInitial >= 400) { if (claps == 2) { lock=false; if ((place!=1024*numofroun)&&(place!=512*numofroun)) {type=abs(type-3);} spancondition=millis(); } claps = 0; } } void button1() { Pausereading = digitalRead(pin); if (Pausereading != lastPauseState) { lastPauseTime = millis(); } if ((millis() - lastPauseTime) > 50) { if (Pausereading != PauseState) { PauseState = Pausereading; if (PauseState == HIGH) { Pauseled=!Pauseled; pause=!pause; spancondition=millis(); if (Pauseled) {digitalWrite(pin,HIGH);} if (!Pauseled) {digitalWrite(pin,LOW);} } } } lastPauseState = Pausereading; } void button2() { Returnreading = digitalRead(pin); if (Returnreading != lastReturnState) { lastReturnTime = millis(); } if ((millis() - lastReturnTime) > 50) { if (Returnreading != ReturnState) { ReturnState = Returnreading; if (ReturnState == HIGH) { type=3; while (place>0) { for (int num=0; num<4;num++) { digitalWrite(pin,steps);} --place; if (current==3) {current=0;} else ++current; delay(2); } reset(); spancondition=millis(); } } } lastReturnState = Returnreading; } void loop() { if (lock==true) {button1();button2();} if (!pause) { if ((lock==true)&&(millis()-spancondition>1000)) {sound();} if (lock==false) {stepper();spanconditioncheck=false; } if ((place==2048*numofroun)or(place==0)or(((place==1024*numofroun)or(place==512*numofroun))&&(type==3))){ lock=true; reset(); if (!spanconditioncheck){ spancondition=millis(); spanconditioncheck=true; } } if (current==3) {current=0;} else ++current; } }

Шаг 5. Финальные действия

Лучше использовать пенопласт, чтобы сделать держатель для двигателя (1, 2) и ручки жалюзи (3). Т.к. в некоторых домах многие предпочитают не сверлить стены позже можно использовать двусторонний скотч, чтобы зафиксировать всё на месте.

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

Обратите внимание! Вам, возможно, придется настроить потенциометр на звуковом датчике, чтобы настроить чувствительность.

Посмотрите ниже демо-видео финального результата проекта, когда управление производится хлопком:

Шаг 6. Альтернативная версия с использованием кнопок

Если вам не нравится управление звуком, вы можете просто использовать кнопки. В таком случае нужно только две кнопки: активация и возврат в исходное положение (поскольку пауза нам теперь не нужна). Активация такая же, как и раньше, а кнопка сброса вернет занавеску назад в исходное положение. Код для этой версии ниже:

int pin={2,3,4,5,6,7,8}; int steps = { {HIGH,HIGH,LOW,LOW}, {HIGH,LOW,LOW,HIGH}, {LOW,LOW,HIGH,HIGH}, {LOW,HIGH,HIGH,LOW}, } ; int current=1; int type=3; int place=0; int lastLockState = LOW; long lastLockTime = 0; int LockState; int Lockreading; bool lock=true; int lastReturnState = LOW; long lastReturnTime = 0; int ReturnState; int Returnreading; void setup() { for (int num=0; num<5; num++) pinMode(pin,OUTPUT); for (int num=5; num<7; num++) pinMode(pin,INPUT); } void reset(){ for(int num=0;num<4;num++) digitalWrite(pin,LOW); } void stepper() { for (int num=0; num<4;num++) { digitalWrite(pin,steps);} if(type==0) {++place;} if(type==3) {--place;} delay(2); } void button1() { Lockreading = digitalRead(pin); if (Lockreading != lastLockState) { lastLockTime = millis(); } if ((millis() - lastLockTime) > 50) { if (Lockreading != LockState) { LockState = Lockreading; if (LockState == HIGH) { lock=false; if ((place!=1024*4)&&(place!=512*4)) {type=abs(type-3);} } } } lastLockState = Lockreading; } void button2() { Returnreading = digitalRead(pin); if (Returnreading != lastReturnState) { lastReturnTime = millis(); } if ((millis() - lastReturnTime) > 50) { if (Returnreading != ReturnState) { ReturnState = Returnreading; if (ReturnState == HIGH) { type=3; digitalWrite(pin,HIGH); while (place>0) { for (int num=0; num<4;num++) { digitalWrite(pin,steps);} --place; if (current==3) {current=0;} else ++current; delay(2); } digitalWrite(pin,LOW); reset(); } } } lastReturnState = Returnreading; } void loop() { if (lock==true) {button1();button2();} if (lock==false) {stepper();} if ((place==2048*4)or(place==0)or(((place==1024*4)or(place==512*4))and(type==3))){lock=true;reset();} if (current==3) {current=0;} else ++current; }

Демо того как это работает ниже:

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

 
Статьи по теме:
Куда ехать за исполнением желаний в Курской области
Отец Вениамин служит в одном из храмов Коренной пустыни. Несколько раз в неделю священник проводит молебны, на которые съезжается множество людей. Летом службы часто проходят на улице, так как все желающие не умещаются в крохотной церквушке. Прихожане уве
Когда включают-отключают фонтаны в петергофе Включили ли фонтаны на поклонной горе
Фонтан Дубая: музыкальный и танцующий фонтан Дубая, часы работы, мелодии, видео. Туры на Новый год в ОАЭ Горящие туры в ОАЭ Предыдущая фотография Следующая фотография Дубайский музыкальный фонтан - поистине феерическая композиция из светы, звука и вод
Уральский федеральный университет им
schedule Режим работы:Пн., Вт., Ср., Чт. c 09:00 до 17:00Пт. c 09:00 до 16:00 Последние отзывы УрФУ Анонимный отзыв 11:11 25.04.2019 Учусь на 3 курсе в Высшей школе экономики и менеджмента – все нравится. Преподаватели хорошо объясняют изучаемый матер
Джозайя уиллард гиббс биография
] Перевод с английского под редакцией В.К. Семенченко.(Москва - Ленинград: Гостехиздат, 1950. - Классики естествознания)Скан: AAW, обработка, формат Djv: mor, 2010 СОДЕРЖАНИЕ:Предисловие редактора (5).Джосиа Виллард Гиббс, его жизненный путь и основные