Модернизация скоростных рулонных ворот.
- Войдите на сайт для отправки комментариев
Доброго время суток. Нужна помощь в написании скетча на скоростные рулонные ворота.
Старая плата упр. приказала долго жить. А новые завод изготовитель не выпускает. только с заменой всего и вся.
По силовой части (Контакторы, двигатель , концевики, и т.д и пт.) не интересует. в этом сложности нет. Интересует управление именуемое далее "мозги".
Цикл такой. в нормальном положении ворота закрыты. И ждут сигнала с кнопки(в данном случае концевик с тросом). После поступления сигнала включается двигатель и заматывает шторку до отсечки концовиком. В поднятом положении она остается 5секунд. потом закрывается. Так же до отсечки концевиком. Вроде ничего сложного...
Но есть ньюансы. Если в открытом положении еще раз нажать кнопку открытия то таймер снова должен отсчитывать 5секунд. и так до бесконечности.
Другой момент. если штора начала опускаться. и была нажата кнопка поднятия. Штора должна остановиться на 1 секунду.(чтобы разомкнулся контактор движения вниз.) И снова продолжить движение в верх и снова считать свои 5 секунд.
Так же установлен датчик безапасности. его функции теже что и у кнопки. Для предотвращения опускания шторы если там образовалась помеха. Как то так.
Жду от вас предложеий!
Травмоопасная штука? Может раздавить кого-нить?
Ну приличная стальная трубка снизу имеется. для лучшего опускания. Ну чтоб прям летально! не думаю. она просто отсекае помещение с меньшей температурой. И состаит их пвх поп моему.
Основной вопрос, вобщем-то такого типа: кого за жопу возьмут, если человека прибъёт из-за ошибки в коде, например?
Кто монтирует тот и отвечает. В любом случае вначале тестить буду. Только потом в экплуатацию вводить.
7808543@gmail.com
управление мотором как осуществляется? или дело кода - только выдать логический сигнал ("едем вниз" или "едем вверх") - а остальное вы монтируете сами?
управление мотором как? схема как? webserpantin gmail
Пишите, обсудим подробности: rv.petrovskiy@gmail.com
Доброго время суток. Нужна помощьась помеха. Как то так.
Жду от вас предложеий!
Почти "Умный дом". Пишите ydom@mail.ru , напишу код, используя непосредственную работу с регистрами, так что будет работать на 100% надежно, без ардуиновских костылей и глюков (которые широко известны, но замалчиваемы нативными ардуинщиками "от сохи"). Пишите, проверю на макете, так что Вы получите на 100% проверенный, рабочий код. ydom@mail.ru
Здравствуйте! С логикой все понятно. Но хотелось узнать чуть большее о железе. Сделаю примерно за 3000. По срокам от 3 до 10 дней, в зависимости от сложности
. azat222@gmail.com
напишу код, используя непосредственную работу с регистрами
А научиться писать в IDE ардуины времени нет?
И костыли опишите, хоть вы не умалчивайте.
А научиться писать в IDE ардуины времени нет?
Cтарый уже. Да и зачем?
И костыли опишите, хоть вы не умалчивайте.
МК в Arduino, особенно в uno/nano/micro/mini маловато железных ресурсов имеет, а когла нативный ардуинист собирает код из библиотек, Он не задумывается о совместимости. Вот например по таймерам- в Atmega32816pu всего 3 таймера- timer0 отвечает одновременно за delay(), millis(), micros() и AnalogWrite 5, 6, Timer 1 – з0а servo, AnalogWrite 9, 10, Timer 2 –за tone, AnalogWrite 11, 3. И вот если вы пытаетесь задействоать analogWrite(3) одновременно с tone(), то либо одно из двух, либо оба не будут работать всегда или, что подлее, иногда. И не зная какие ресурсы задействуют какие библиотеки (а кто знает? Вы знаете?) лего влететь – на неработу, отказ, пожар или еще что. Это по крупному. Ну и по мелочи- ардуиновские команды digitalWrite() и digitalRead выполняются за 6 микросекунд – это почти 100 тиков. Нередко это критично, тем более что можно делать за 2 тика. По АЦП – также считывание идет дольше, чем нативное считывание аналогового сигнала. Ну в Arduino IDE всего 2 внешних прерывания , хотя сам камень разрешает 22 внешних прерывания. По часам - нужно учитывать переполнение millis() и micros(). Ну и еще много – много мелочей, которые могут стать немелочами.
Cтарый уже. Да и зачем?
Логично. Если старый.
А за подробности костылей спасибо. Не знал.
Тема не будет раскрыта
если не вспомнить про великое переполнение миллис....
Доброе утро. 3ф. двигатель. Управляется через контакторы. Питание контакторов идёт в разрыв с концевиками.(Вехнее и нижнее положение). Обычная стандартная тема.
Сделал эксперимент полностью заменил на автоматику. такая громоздкая штука получилась! Но работала. потом стала давать сбои. Пришёл к выводу что не хватает интелекта у автоматики. Ну и конечно у персонала который ей пользуется. Готовые до сметри занажимать кнопку пока ворота поднимаются. Поэтому решил вернуться назад к электронике.
Тогда пишите gas31a@mail.ru
А научиться писать в IDE ардуины времени нет?
Cтарый уже. Да и зачем?
И костыли опишите, хоть вы не умалчивайте.
МК в Arduino, особенно в uno/nano/micro/mini маловато железных ресурсов имеет, а когла нативный ардуинист собирает код из библиотек, Он не задумывается о совместимости. Вот например по таймерам- в Atmega32816pu всего 3 таймера- timer0 отвечает одновременно за delay(), millis(), micros() и AnalogWrite 5, 6, Timer 1 – з0а servo, AnalogWrite 9, 10, Timer 2 –за tone, AnalogWrite 11, 3. И вот если вы пытаетесь задействоать analogWrite(3) одновременно с tone(), то либо одно из двух, либо оба не будут работать всегда или, что подлее, иногда. И не зная какие ресурсы задействуют какие библиотеки (а кто знает? Вы знаете?) лего влететь – на неработу, отказ, пожар или еще что. Это по крупному. Ну и по мелочи- ардуиновские команды digitalWrite() и digitalRead выполняются за 6 микросекунд – это почти 100 тиков. Нередко это критично, тем более что можно делать за 2 тика. По АЦП – также считывание идет дольше, чем нативное считывание аналогового сигнала. Ну в Arduino IDE всего 2 внешних прерывания , хотя сам камень разрешает 22 внешних прерывания. По часам - нужно учитывать переполнение millis() и micros(). Ну и еще много – много мелочей, которые могут стать немелочами.
Извиняюсь за оффтоп, но описанное имеет отношение к программисту, а не к ide или микроконтроллеру. Если нет понимания, то хоть на чем разрабатывай - всегда будешь наступать на грабли. Учесть все моменты можно и в Ардуино. А насчет маловато железных ресурсов, что же вы скажете про tiny?
Это метод окучивания клиента "от Онкеля" - выдать стандартные фичи Wiring за костыли, а потом героически с ними бороться за $100. И ещё "честный Си" у него в рукаве где-то есть. Странно, что сразу не достал.
МК в Arduino, особенно в uno/nano/micro/mini маловато железных ресурсов имеет, а когла нативный ардуинист собирает код из библиотек, Он не задумывается о совместимости. Вот например по таймерам- в Atmega32816pu всего 3 таймера- timer0 отвечает одновременно за delay(), millis(), micros() и AnalogWrite 5, 6, Timer 1 – з0а servo, AnalogWrite 9, 10, Timer 2 –за tone, AnalogWrite 11, 3. И вот если вы пытаетесь задействоать analogWrite(3) одновременно с tone(), то либо одно из двух, либо оба не будут работать всегда или, что подлее, иногда. И не зная какие ресурсы задействуют какие библиотеки (а кто знает? Вы знаете?) лего влететь – на неработу, отказ, пожар или еще что. Это по крупному. Ну и по мелочи- ардуиновские команды digitalWrite() и digitalRead выполняются за 6 микросекунд – это почти 100 тиков. Нередко это критично, тем более что можно делать за 2 тика. По АЦП – также считывание идет дольше, чем нативное считывание аналогового сигнала. Ну в Arduino IDE всего 2 внешних прерывания , хотя сам камень разрешает 22 внешних прерывания. По часам - нужно учитывать переполнение millis() и micros(). Ну и еще много – много мелочей, которые могут стать немелочами.
1. Документацию читать надо, а не писать дичь. В документации сказано, что за что отвечает и как устроена обвязка Wiring. И если ты взял молоток, и пытаешься им отпилить - то ты идиот, а не программист. Это я про одновременное использование tone и analogWrite. Но идиоту - всегда проще спихнуть это на мифические "глюки" среды, конечно.
2. digitalWrite/diitalRead - плата за кросплатформенность, очень быстро можно переносить проекты с одной платы на другую. Если для тебя это открытие - поздравляю, Шарик, ты балбес. В реальном же цикле разработки это сильно помогает, в релиз потом уходит оптимизированная под конечный МК версия. Но зачастую - этого и не надо: если оно работает нормально, то зачем рефлексировать?
3. По поводу переполнения millis - да сколько ж можно-то? Если программист не знает элементарных вещей, типа арифметики в дополнительном коде - то никакой пречистый С не поможет, этот программист - плохой.
По поводу кода: код простейший, пишется за несколько часов, там чистый конечный автомат, писал неоднократно подобные. Рыночная стоимость - 2500 рублей, код прокомментирован, настройки вынесены отдельно, есть отладочная информация в мониторе порта. Предоплата - строго 50%, код - после окончательного расчёта. Демонстрация работы на видео. Начало работы - строго по утверждённому сторонами ТЗ, скомпилированному из хотелок темы. Управление работой мотора - предполагается дискретными сигналами на двух выходах (например, пара реле) - простейшая схема управления вращением в обе стороны.
Если актуально - пишите на spywarrior@gmail.com.
1. Документацию читать надо, а не писать дичь. В документации сказано, что за что отвечает и как устроена обвязка Wiring. И если ты взял молоток, и пытаешься им отпилить - то ты идиот, а не программист. Это я про одновременное использование tone и analogWrite. Но идиоту - всегда проще спихнуть это на мифические "глюки" среды, конечно.
Чуточку не так. Когда окнель, я и тому подобные личности учили асм и си для avr - ардуины и ее IDE в помине не было. Были просто мк avr и avrstudio (с winavr). И вся нужная переферия настраивалась ручками через регистры. И скакого перепугу, я должен читать документацию на глюконутый софт, который включает не нужную мне переферию, если можно написать в нормальном компиляторе, который изучен десятилетиями?
2. digitalWrite/diitalRead - плата за кросплатформенность, очень быстро можно переносить проекты с одной платы на другую.
Странная у вас логика. Если я везде (в avrstudio, IAR, Keil, CVAVR, Arduino IDE) добавляю макросы
то любой из этих компиляторов прекрасно поймет и скомпилирует. А если я возьму ваши digitalWrite/diitalRead, то никуда, кроме arduino ide их не всунешь. Вот и вся кросплатформенность.
Р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно
Чуточку не так. Когда окнель, я и тому подобные личности учили асм и си для avr - ардуины и ее IDE в помине не было. Были просто мк avr и avrstudio (с winavr). И вся нужная переферия настраивалась ручками через регистры. И скакого перепугу, я должен читать документацию на глюконутый софт, который включает не нужную мне переферию, если можно написать в нормальном компиляторе, который изучен десятилетиями?
это всё конечно хорошо и интересно, но на этом форуме 90% пользователей ковыряются с удовольствием именно с ардуиной и её IDE. И большая часть не собираются на что то другое переползать (не надо воплей продвинутых критиканов), потому что для большинства их проектов этого ДОСТАТОЧНО...
а для чайников уровень вхождения в работу с мк у ардуино вообще вне всякой конкуренции.
и мужики, весь этот проект придумавшие и реализовавшие, просто МОЛОДЦЫ - честь им и хвала.
сотни миллионов людей в мире приобщились к мк и миллионы получили работу.
1. Документацию читать надо, а не писать дичь. В документации сказано, что за что отвечает и как устроена обвязка Wiring. И если ты взял молоток, и пытаешься им отпилить - то ты идиот, а не программист. Это я про одновременное использование tone и analogWrite. Но идиоту - всегда проще спихнуть это на мифические "глюки" среды, конечно.
Чуточку не так. Когда окнель, я и тому подобные личности учили асм и си для avr - ардуины и ее IDE в помине не было. Были просто мк avr и avrstudio (с winavr). И вся нужная переферия настраивалась ручками через регистры. И скакого перепугу, я должен читать документацию на глюконутый софт, который включает не нужную мне переферию, если можно написать в нормальном компиляторе, который изучен десятилетиями?
Ну вот и вы туда же. В чем заключается глючность софта? Онкеля о том же спрашивали, а свелось все к особенностям реализации функций и двум внешним прерываниям из 22 доступных. Одно дело пустить пыль в глаза клиенту, другое заявлять что-то подобное на полном серьезе другим участникам форума. При том что вы давно освоили работу с регистрами напрямую. Ну так IDE Arduino этого и не запрещает: хочешь - пишешь свою реализацию функций, чтобы можно было выполнять analogWrite и пищать одновременно. А если этого не требуется, то используешь готовый код и сосредотачиваешься на решении задачи, а не изучении железа ради какой-то там функции. Под железом я понимаю не только МК, а кучу другой периферии, для которой доступны библиотеки. В этом и заключается плюс Ардуино как платформы.
По поводу кода: код простейший, пишется за несколько часов, там чистый конечный автомат, писал неоднократно подобные. Рыночная стоимость - 2500 рублей, код прокомментирован, настройки вынесены отдельно, есть отладочная информация в мониторе порта. Предоплата - строго 50%, код - после окончательного расчёта. Демонстрация работы на видео. Начало работы - строго по утверждённому сторонами ТЗ, скомпилированному из хотелок темы. Управление работой мотора - предполагается дискретными сигналами на двух выходах (например, пара реле) - простейшая схема управления вращением в обе стороны.
Если актуально - пишите на spywarrior@gmail.com.
за аналогичный код меня подогрели сазаном на 8 килограмм (прикормочный кораблик)
вкуссс списфический... )))
за аналогичный код меня подогрели сазаном на 8 килограмм (прикормочный кораблик)
вкуссс списфический... )))
Почём нынче килограмм сазана? :)
Чуточку не так.
Чуточку так. И даже не чуточку - так. История по аналогии: приходишь ты в магазин, и купишь крестовую отвёртку, закручивать саморезы. И крутишь себе и крутишь, и горя не знаешь. Но потом вдруг осознаёшь, что есть шуруповёрт с его как удобствами, так и кучей зависимостей - батареи, зарядка, культура пользования, чтобы не убить батарею и т.д. и т.п.
Покупаешь ты такой этот шуруповёрт, и начинаешь им крутить саморезы. Сажаешь батарею наглухо в ноль, она сдыхает, и ты с воплями бежишь на форум верещать "гавно ваш шуруповёрт, одни глюки и баги, тяжёлый, батареи дохнут, электричество нужно, то ли дело отвёртка - крутит и крутит!".
Понимаешь, в чём дело? Онкель занимается самым поганым передёргиванием. Концепция Arduino - это абстракция, реализованная в виде надстройки, называемой Wiring. Утверждать при этом, что что-то там глючное, если без ансамбля, как чудак, ля - полез в кишочки ручонками что-то там проделывать, при этом скромно умолчав о том, что чудак, во-первых - сам виноват, и, во-вторых - знает, что всё, над чем он рвёт волосы - описано в документации по Wiring - в этом весь Онкель.
Никто не мешает писать ручонками, манипулируя регистрами: строго говоря - унутре Arduino IDE есть неонка, имя ей - gcc. Но при этом верещать, что Wiring говно, потому что сам полез к электрощит голыми коготками - в этом весь Онкель.
Тащемта, только об этом и был спич: о грязном низком передёргивании и пречистом С.
Дак код, наверняка, на вкус как сазан был ;)
Добавлю по теме: если бы мы не видели кода онкеля, то можно было что-то там говорить про скоростное чтение АЦП, отключение двигателя по 22-м прерываниям и супернадежные комбинации опраторов if(), однако многие помнят случайно всплывший фрагмент на "честном Си"...
Я дак до сих пор ржу, наливая...
Странная у вас логика. Если я везде (в avrstudio, IAR, Keil, CVAVR, Arduino IDE) добавляю макросы
то любой из этих компиляторов прекрасно поймет и скомпилирует. А если я возьму ваши digitalWrite/diitalRead, то никуда, кроме arduino ide их не всунешь. Вот и вся кросплатформенность.
У меня - просто отличная логика. И под кроссплатформенностью я подразумевал (и было это ЯВНО упомянуто) различные МК, а не различные IDE.
И когда мне заказчик говорит: ой, я передумал, не хочу на 328-й меге, хочу на ESP8266 - то я тупо беру, и компилирую код под ESP, совершенно не парясь ни с адресацией регистров, ни с прочим. Более того - если у заказчика плата NodeMCU, а у меня другая, т.е. pinout, и, как следствие, разная адресация в кишочках - вообще не проблема, достаточно просто поменять в вынесенном конфиге номера пинов на другие, ВСЁ.
Вот когда (и если) - наступит необходимость жёстко оптимизировать код под КОНКРЕТНЫЙ МК - вот тогда хорошую часть обвязки Wiring можно очень быстро взять - и выкинуть, заменив уже прямой записью куда надо. Впрочем, в 90% случаев это не требуется - нравится или нет любителям каменных топоров - но на дворе двадцать первый век и др@чить вприсядку на ресурсы, когда разница в стоимости восьмибитных и 32-хбитных чипов - пару сотен рублей - удовольствие для избранных, я считаю.
И да - спокойно программирую любую плату (не только Arduino) - в Visual Studio, не вижу проблем. Достаточно ардуиновский загрузчик загнать в камень - и на этапе разработки у тебя нет головняков, от слова "совсем".
Да даже с STM32 уже всё сильно проще в связке с Arduino IDE, хотя там, конечно, лучше CubeMX + Keil, например.
однако многие помнят случайно всплывший фрагмент на "честном Си"...
Ой, я пропустил, можно повтор в студию?
однако многие помнят случайно всплывший фрагмент на "честном Си"...
Ой, я пропустил, можно повтор в студию?
Нет. Для такого зрелища ты еще маленький.
Нет. Для такого зрелища ты еще маленький.
:)))