Автоматическая рулонная штора своими руками.
- Войдите на сайт для отправки комментариев
Доброго времени суток всем. По осени вьехал я другую квартиру, пока была зима света за окошками было мало и шторы я проктически не открывал особенно в спальне из труднодоступности (стит кравать и тумбочка под телевизор соответственно чтобы добраться до окна надо перелезь через кровать ширина которой 1,8 м). Но вот пришла весна за окнами заиграло солнышко и сперва было принято решение сделать раздвижные шторы, но в связи со сложностью и не надежностью механизма(тросик подпружинивающий механизм ролики и пр.) решение пало на рулонную штору. Саму штору купил по скидке за 14 е размер шторы 1,2 м на 1,7 м, а окна 1,1 м на 1,3 м. В инструкции к шторе было описание как уменьшить ширину чем я и воспользовался, длинну трогать не стал. Привод был взят из офисного принтера моторчик на 6 в, начал тестировать на ардуино уно и драйвером двигателя HG7881. Программа была взята отсюда https://www.youtube.com/watch?v=PjR9jlP4644 от Дмитрия Осипова и была упрощена (если кому интересно могу выложить свой код). Что имеем на данный момент: открытие и закрытие с тв пульта нажатием 2х кнопок, первое нажатие запускает мотор второе останавливает. Что еще хочется: чтобы штора сама останавливалась в крайних положениях (наверное лучше сделать по времени работы т к не хочется заморачиваться с концевмками, лишние детали а главное провода). Попробовал датчик холла но был облом датчик срабатывает только когда магнит подносится вплотную вообщем оказалась капризная штука. Если у кого есть решение или идеи по поводу остановки штор очень прошу. поделитесь. Зарание всем огромное спасибо., постараюсь выложить видео то что получилось или ссылку.
Выкладываю ссылку на видео http://youtu.be/-ECubwkbSzg
http://robocraft.ru/shop/index.php?route=product/product&path=38&product...
датчик - между рамой и барабаном намотки шторы, блестяшки, две, приклеить на штору
датчик - между рамой и барабаном намотки шторы, блестяшки, две, приклеить на штору
Спасибо за совет, но получается 8 проводов, с герконами 4 провода. Так же как и с датчиками холла очень маленькие зазоры 1 мм.
один датчик - три провода и две блестяшки на шторе ( +, -, сигнал )
ножки разогнуть, под кронштейны проставки по 3...5 мм
:)
один датчик - три провода и две блестяшки на шторе ( +, -, сигнал )
ножки разогнуть, под кронштейны проставки по 3...5 мм
:)
Все, торможу пора спать. Один датчик на верх, а блистяшки в начале шторы и в конце. А эта штука дружит с ардуино?
да
да
Спасибо, купим, попробуем.
#include <IRremote.h> int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; boolean a = false; boolean b = false; void setup() { irrecv.enableIRIn(); pinMode(3, OUTPUT); pinMode(5, OUTPUT); } void loop() { if (irrecv.decode(&results)) { delay(300); if (results.value == 0xDAEA83EC) a=true; if (results.value == 0x2BAFCEEC) b=true; if (a) { digitalWrite(3, HIGH); digitalWrite(5, LOW); } { delay (2000); } if (a) { digitalWrite(3, LOW); digitalWrite(5, LOW); } { delay (2000); } if (b) { digitalWrite(5, HIGH); digitalWrite(3, LOW); } { delay (2000); } if (b) { digitalWrite(5, LOW); digitalWrite(3, LOW); } { delay (2000); } delay(50); irrecv.resume(); } }Всетаки решил сделать по времени, для шторы в 1,5 м плюс минус см не играет роли. Со временем хочу подправить код для ручной коректировки, но пока не хватает знаний, усиленно учу мат. часть :).
опытный чел недавно подсказал....
если в операторе
if(results.value == 0xDAEA83EC)ошибиться вот такif(results.value = 0xDAEA83EC)то код скомпилится, но работать не будет, придётся долго искать ошибку :(надо делать так
if(0xDAEA83EC==results.value)тогда при ошибкеif(0xDAEA83EC=results.value)компилятор сразу будет ругаться....тонкости языка/компилятора СИ
про корректировку надо подумать....
при вставке кода - ставь ещё галочку "свернуть"
#include <IRremote.h> //int RECV_PIN = 11; переменнные в СИ с маленькой буковки принято, // а через дефис - не выделяется щелком мыши #define recvPin 11 // так экономится память МК #define driverA 3 // а вдруг пины захочешь поменять ? править по всей программе ? #define driverB 5 IRrecv irrecv( recvPin ); decode_results results; //boolean a = false; не нужны они, и в СИ принято или 0 , 1 или LOW , HIGH //boolean b = false; #define timeStora 2000 #define timeIR 300 //===================================================== void setup() { irrecv.enableIRIn(); pinMode( driverA, OUTPUT ); pinMode( driverB, OUTPUT); } //===================================================== // функция-подпрограмма поднятия/опускания шторы // 0 - опустить , 1 - поднять void StoraUpDown( boolean direction ) { digitalWrite( driverA, direction ); digitalWrite( driverB, !direction ); delay ( timeStora ); digitalWrite( driverA, LOW ); digitalWrite( driverB, LOW ); } //===================================================== void loop() { // табуляцию надо применять всегда - удобнее читать ( на два знакоместа, например ) if ( irrecv.decode(&results) ) { delay( timeIR ); if ( 0xDAEA83EC == results.value ) { StoraUpDown( HIGH ); } if ( 0x2BAFCEEC == results.value ) { StoraUpDown( LOW ); } irrecv.resume(); } } //=====================================================http://lord-n.narod.ru/download/books/walla/programming/Spr_po_C/main.ht...
Спасибо большое за подсказки и ссылку.
Ребята, помогите ну уже голову сломал, переделал код от Дмитрия Осипова, хотел чтоб мотор работал определенное время и останавливался, а он гоняет по замкнутому кругу без остановок и на кнопки пульта не реагирует, подскажите где ошибка. Зарание спасибо.
#include <IRremote.h> int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; int a=0; int b=0; void setup() { irrecv.enableIRIn(); pinMode(2, OUTPUT); pinMode(4, OUTPUT); } void loop() { if (irrecv.decode(&results)) delay(300); if (results.value == 0xDAEA83EC) { a=a+1;} if (results.value == 0x2BAFCEEC) { b=b+1;} if (a=1) { digitalWrite(2, HIGH); digitalWrite(4, LOW); delay (25500); } if (a=0) {digitalWrite(2, LOW); digitalWrite(4, LOW);} if (b=1) { digitalWrite(2, LOW); digitalWrite(4, HIGH); delay (41000); } if (b=0) {digitalWrite(2, LOW); digitalWrite(4, LOW);} delay(50); irrecv.resume(); }A обнулять переменные a и b не планируешь?После первого-же нажатия кнопок пульта они станут=1.А что дальше?
Да и от делаев лучше уходить.
код из #12 - пробовал ?
код из #15 - добавь строку 24А >>>>>> a=0;
....так же и для b
СПАСИБО Вам огромнейшее при огромнейшее за код #12, я его сразу не заметил. Я его немного переделал, так как время опускания и поднятия шторы разное. Сейчас все работает как надо, только кнопки нельзя путать :).
Не судите строго я новичок в этом деле, да еще и старый. Решил заняться ардуиной что бы спрятаться от пьянства. Паралельно мастерю робот-пылесос из механники румба на базе ардуино и жду детали для автоматизации аквариума (пока работает только автокормушка).
#include <IRremote.h> //int RECV_PIN = 11; переменнные в СИ с маленькой буковки принято, // а через дефис - не выделяется щелком мыши #define recvPin 11 // так экономится память МК #define driverA 3 // а вдруг пины захочешь поменять ? править по всей программе ? #define driverB 5 IRrecv irrecv( recvPin ); decode_results results; #define timeStora1 25300 #define timeStora2 42500 #define timeIR 300 //===================================================== void setup() { irrecv.enableIRIn(); pinMode( driverA, OUTPUT ); pinMode( driverB, OUTPUT); } //===================================================== // функция-подпрограмма поднятия/опускания шторы // 0 - опустить , 1 - поднять void StoraUp( boolean direction ) { digitalWrite( driverA, direction ); delay ( timeStora1 ); digitalWrite( driverA, LOW ); } void StoraDown( boolean direction ) { digitalWrite( driverB, !direction ); delay ( timeStora2 ); digitalWrite( driverB, LOW ); } //===================================================== void loop() { // табуляцию надо применять всегда - удобнее читать ( на два знакоместа, например ) if ( irrecv.decode(&results) ) { delay( timeIR ); if ( 0xDAEA83EC == results.value ) { StoraUp( HIGH ); } if ( 0x2BAFCEEC == results.value ) { StoraDown( LOW ); } irrecv.resume(); } } //=====================================================Навеяло: Общество Анонимных Ардуинщиков. Если серьезно - респект Вам.
Навеяло: Общество Анонимных Ардуинщиков. Если серьезно - респект Вам.
спасибо за поддержку
:)
Логичнее так:
void StoraUpDown( boolean direction ) { digitalWrite( driverA, direction ); digitalWrite( driverB, !direction ); if (direction) { delay ( timeStora1 ); } else { delay ( timeStora2 ); } digitalWrite( driverA, LOW ); digitalWrite( driverB, LOW ); }Ардуинка это слишком круто для такого устройства. Из пушки по воробьям
вместо timeStora1 , 2 - лучше timeStoraUp и timeStoraDown , чтобы в середине кода не вспоминать - чё 1 и чё 2... ( это когда код вырастет до 3...4 экранов монитора )
мнемоника определений....
Joiner , а вы с чего начинали ?
http://arduino.ru/forum/otvlechennye-temy/kto-otkuda
Ардуинка это слишком круто для такого устройства. Из пушки по воробьям
почему? про мини самое то. цеена и простота абгрейда ну и размер конечно.
Выкладываю ссылку на видео http://youtu.be/-ECubwkbSzg
стрелять надо не в штору , а в ИК приёмник !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
:)-
вместо timeStora1 , 2 - лучше timeStoraUp и timeStoraDown , чтобы в середине кода не вспоминать - чё 1 и чё 2... ( это когда код вырастет до 3...4 экранов монитора )
мнемоника определений....
Joiner , а вы с чего начинали ?
да, начинаю птихоньку врубаться. а код увеличется еде форточка добавится и промежуточныеостановы.
простите пишу с тел. в машине.
почему? про мини самое то. цеена и простота абгрейда ну и размер конечно.
не знаю что он имел ввиду, зайдёт - может расскажет.....
.....а в принципе и ATtiny13 ( я люблю 25, 45, 85 ) с этим справится...
:)
найди даташит ATtiny85/V , почитай..... придётся паять, зато в 4 раза дешевле !
не нано так делать ! :(
реакция на #25 ?
реакция на #25 ?
Кронштадт и Суоми 50% на 50%
почему? про мини самое то. цеена и простота абгрейда ну и размер конечно.
не знаю что он имел ввиду, зайдёт - может расскажет.....
.....а в принципе и ATtiny13 ( я люблю 25, 45, 85 ) с этим справится...
:)
найди даташит ATtiny85/V , почитай..... придётся паять, зато в 4 раза дешевле !
1,.5 вро на ебее доставка бесплатно прямо в квртиру 2 едели.срок поставки.
1,.5 вро на ебее доставка бесплатно прямо в квртиру 2 едели.срок поставки.
тоже правильно ! - раз только начал.... :)
Кронштадт и Суоми 50% на 50%
Кронштадт и Ленинский пр., типа пересечение с Жукова - 70% на 30% ? :)
.....от Юноны западнее 2...3 км ?
вместо timeStora1 , 2 - лучше timeStoraUp и timeStoraDown , чтобы в середине кода не вспоминать - чё 1 и чё 2... ( это когда код вырастет до 3...4 экранов монитора )
мнемоника определений....
Joiner , а вы с чего начинали ?
С АРДУИНКИ :)
Заразился ардуинкой и болен до сих пор :). Легко, доступно, интересно.
Попробовал датчик холла но был облом датчик срабатывает только когда магнит подносится вплотную вообщем оказалась капризная штука. Если у кого есть решение или идеи по поводу остановки штор очень прошу. поделитесь.
Озадачивался таким вопросом -http://arduino.ru/forum/apparatnye-voprosy/kontrol-nagruzki-el-dvigatelya . Пока не нашел ничего лучше, чем контролировать нагрузку двигателя. Поигрался с датчиком INA219. Понравился. Вот только дело до соединения воедино штор и INA не дошло - переезд на новую квартиру, ремонт и сопутствующая суета отложили этот вопрос надолго... А если реализовать контроль нагрузки, то отпадает много сопутствующей шелухи: лишние провода, датчики, калибровка, проскальзывание мимо датчиков и т. д....
Озадачивался таким вопросом -http://arduino.ru/forum/apparatnye-voprosy/kontrol-nagruzki-el-dvigatelya . Пока не нашел ничего лучше, чем контролировать нагрузку двигателя. Поигрался с датчиком INA219. Понравился. Вот только дело до соединения воедино штор и INA не дошло - переезд на новую квартиру, ремонт и сопутствующая суета отложили этот вопрос надолго... А если реализовать контроль нагрузки, то отпадает много сопутствующей шелухи: лишние провода, датчики, калибровка, проскальзывание мимо датчиков и т. д....
ГЕ-НИ-АЛЬ-НО!
В качестве датчика предлагаю датчик дыма или температурный, размещаем на двигателе и как только шторы куда то уперлись и пошел дымок, сразу снимаем питание :)
Михаил прав по такому принципу построены стеклоподьемники в авто. Но соответственно и брать надо мотор с редуктором от авто, но мне кажется что они большеваты по размерам для наших целей.
В продолжение темы, решил пойти дальше и сделать автопроветривание т.е. чтобы по нажатию кнопки на пульте открывалась форточка. Выкладываю фото будущего механического привода (был куплен в Питере на Школьной в магазине "Мебельный самоделкин" за 205 р. Как приеду домой сразу продолжу фотоотчет.





Михаил прав по такому принципу построены стеклоподьемники в авто. Но соответственно и брать надо мотор с редуктором от авто, но мне кажется что они большеваты по размерам для наших целей.
Блин, прям сомнения замучали. Потратил 10 минут на изучение разных систем.. И о чудо.. Везде датчик Хола стоит на двигателе!!!
Просто, кроме датчика Хола, нужно подпружинить края. Что бы при подходе к краям ролики упирались в пружинки . Что на датчике сразу будет видно понижением оборотов.
Вариантов множество, можно поставить шаговый двигатель и задать ему количество оборотов.
Вариантов множество, можно поставить шаговый двигатель и задать ему количество оборотов.
Я за вариант, что шторы это нечто декоративное. И двигать их туда сюда лишено смысла. Раньше когда окна были просто дыркой ( пусть даже застекленной), в которую дул ветер. Шторы несли практический смысл, как утеплитель.
А сейчас они больше декорация. Попробуйте посмотреть на дом снаружи вечером. Интересно какой вам больше понравиться, тот где как в бункере выполнены все инструкции по светомаскировке или там где видно что живут люди :)
Вариантов множество, можно поставить шаговый двигатель и задать ему количество оборотов.
Такой двигатель, как у Вас на фотке, боюсь, форточку не потянет, а вот со шторой прекрасно справится, да и границы ему в программе легко обозначить без каких-либо датчиков, и управлять можно будет одной кнопкой.
Вариантов множество, можно поставить шаговый двигатель и задать ему количество оборотов.
Такой двигатель, как у Вас на фотке, боюсь, форточку не потянет, а вот со шторой прекрасно справится, да и границы ему в программе легко обозначить без каких-либо датчиков, и управлять можно будет одной кнопкой.
Это шаговый двигатель на 12 вольт с редуктором. При подаче на него 5 вольт пальцами не остановить и ток при этом вообще не возрастает, он ворота гаражные откроет тока медленно если крепления не сломает :)
Вариантов множество, можно поставить шаговый двигатель и задать ему количество оборотов.
Я за вариант, что шторы это нечто декоративное. И двигать их туда сюда лишено смысла. Раньше когда окна были просто дыркой ( пусть даже застекленной), в которую дул ветер. Шторы несли практический смысл, как утеплитель.
А сейчас они больше декорация. Попробуйте посмотреть на дом снаружи вечером. Интересно какой вам больше понравиться, тот где как в бункере выполнены все инструкции по светомаскировке или там где видно что живут люди :)
Если 1 этаж и окна хорошо просматриваются, то жить как на витрине, по-моему не очень.....
Это шаговый двигатель на 12 вольт с редуктором. При подаче на него 5 вольт пальцами не остановить и ток при этом вообще не возрастает, он ворота гаражные откроет тока медленно если крепления не сломает :)
Знаю я эти двигатели. Они у меня на макетике станка с чпу стояли. Станочек из жести и проволочек сделаен, совсем не гаражные ворота. И движок этот упираясь в границу подачи легко останавливался даже не сгибая жесть, хоть и передача была червячная с шагом 0.7мм.
Штору потянет, форточку - нет........или с доп.редуктором оооооооочень медленно.
Вот он изнутри http://arduino.ru/forum/proekty/trudnyi-put-k-chpu?page=1#comment-108846
Посмотрите на эти крошечные пластмассовые шестеренки.
Если 1 этаж и окна хорошо просматриваются, то жить как на витрине, по-моему не очень.....
Это навязаное неизвестно кем мнение. :) Я раньше тоже так примерно думал, потом изучил вопрос повнимательней, никто лавочки у меня под окнами не строит и билеты в театр не продает :) Хотя был театер одно время, когда монтировали кухню и подсветку.
Если вас так волнует что вы в витрине, повесте жалюзи,ну или вообще окна кирпичем заложите :)
Это шаговый двигатель на 12 вольт с редуктором. При подаче на него 5 вольт пальцами не остановить и ток при этом вообще не возрастает, он ворота гаражные откроет тока медленно если крепления не сломает :)
Знаю я эти двигатели. Они у меня на макетике станка с чпу стояли. Станочек из жести и проволочек сделаен, совсем не гаражные ворота. И движок этот упираясь в границу подачи легко останавливался даже не сгибая жесть, хоть и передача была червячная с шагом 0.7мм.
Штору потянет, форточку - нет........или с доп.редуктором оооооооочень медленно.
Вы меня растраиваете :( . Значить опять лепить придется из подручных средств. Дома буду в воскресенье, превым делом соберу миханизм и попробую, отчет сразу выложу.