Подружить датчик с кнопками

Тема в разделе "Arduino & Shields", создана пользователем bibo, 28 май 2018.

  1. bibo

    bibo Нерд

    Изначально хотелось сделать так: зажигается свет, включается вентилятор, выключается свет, выключается вентилятор.Если вдруг в любой из моментов времени(будь вентилятор включен или будь он выключен) понадобится его вручную включить\выключить, то это можно было бы сделать кнопкой. На длительное нажатие кнопки хотел повесить включение вентилятора на 3-5 минут с автоматическим выключением, но до этого пункта еще не добрался совсем.
     
  2. parovoZZ

    parovoZZ Гуру

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

    За это время, что здесь нас всех мучаешь, можно было нарисовать алгоритм. Даже два.
     
  3. bibo

    bibo Нерд

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

    По поводу мучений - не убивайтесь тут по моему поводу, не хочу быть причиной ваших страданий. Сделать это очень просто. Всего-навсего игнорировать данную тему.
     
  4. parovoZZ

    parovoZZ Гуру

    Я разве утверждал обратное?
     
  5. b707

    b707 Гуру

    подключите вентилятор к выключателю света и не мучайтесь.
    Что касается вашего монструозного скетча - a1000 и Паровоз правы - пока вы не нарисуете на бумажке алгоритм реакции вентилятора на каждую комбинацию датчиков - у вас ничего не выйдет. Это не так-то просто, как кажется. И знание языков программирования тут вовсе не причем.
     
    Последнее редактирование: 31 май 2018
  6. bibo

    bibo Нерд

    Уже подключено. но этого недостаточно.
    Да и хочется просто познать новое.
    В процессе познания столкнулся с некоторыми сложностями. Думал, что на профильном форуме мне помогут разрешить проблему, поэтому и пришел.
    Почему изначально тот же паровоз не мог ничего подобного мне посоветовать и ткнуть ссылкой, как это сделать?
    Зачем безумная критика того, что уже и так работает( критик этого не знает, но все равно критикует - говорю о критике паровоза системы вентиляции в моей квартире).
    Еще хочу добавить, что не всем явно то, что явно вам. А к вам приходят за помощью люди в основном далекие от вашей области деятельности. И этих людей вы тупо отшиваете(не вы лично, а некоторые завсегдатаи этого форума). Я пробежался по темам этой ветки форума и увидел абсолютно такое же отношение ко всем другим "нубам".
     
  7. parovoZZ

    parovoZZ Гуру

    Какую ссылку тебе надо? Я должен вместо тебя искать? Что искать? Мне это зачем?
    Не знаешь, как рисуются алгоритмы? Там блоков с пяток штук - начало/конец, инициализация, присвоение значений переменным, ветвление алгоритма. Всё. Даже четыре. Если не понимаешь, как составить алгоритм - так и говори. Подскажем. Но ты даже этого не соизволил сделать. Хотя бы начал. Реализация алгоритма в коде - это самое простое.
    Ты понимаешь, что спасение утопающего может превратиться в трагедию - утонут оба, - если утопающий не хочет быть спасенным.
     
    Последнее редактирование: 1 июн 2018
  8. b707

    b707 Гуру

    все люди разные. У Паровоза такая "харизма" - он пишет очень эмоционально и даже иногда агрессивно. Но на самом деле в его текстах много полезного.
    Что касается отношения к "нубам" - многие из них сами провоцируют отношение к себе абсолютным нежеланием чему-либо учиться.
     
  9. b707

    b707 Гуру

    а что касается вашей задачки - она совсем несложная. Тут отлично подходит т.н. "машина состояний" или "конечный автомат" - почитайте в гугле.
    У меня есть похожий проект - управление компрессором. Скажете, "что же тут похожего?" - да все :)
    У вас есть датчик влажности, который включает вентилятор. В компрессоре есть датчик дваления...
    Вы хотите, кроме автоматики, включать вентилятор кнопками? - на компрессоре тоже есть кнопка принудительного включения-выключения.

    Работает система элементарно. У мотора компресора есть два состояния - "вкл" и "выкл". Все управляющие элементы просто меняют это состояние.Упало давление ниже определенного предела - процедура перевела переменную состояния мотора в состояние "вкл". Нажали кнопку - текущее состояние компрессора "инвертирорвалось". И все!
     
    bibo нравится это.
  10. bibo

    bibo Нерд

    Еще раз повторяю простую мысль: то, что ясно и понятно вам, не обязательно столь же явно для других. Откуда мне знать, что нужно рисовать алгоритмы? Вот образовался у меня после работы свободный час, мне всегда хотелось познать нечто абсолютно не связанное с моей сферой деятельности и обязательно связанное с электроникой. Начал я смотреть видео и читать статьи по ардуино, но ни в одной из них я не нашел подробного алгоритма написания программ, ни в одном из просмотренных мною видео не было рассказа о блоках(видимо авторы видео и статей подразумевают, что все начинающие это изначально знают и понимают, либо эти авторы сами толком не шарят, либо я смотрел что-то не то), о том, какова логика построения программы.
    Может здесь имело бы смысл написать мини ЧаВо, к которому сначала отсылать нубов? И ежели после прочтения которого нуб все равно задает тупые вопросы на ваш взгляд, тогда, уже имея все основания, его пинать, отшивать и грубить ему?
     
  11. bibo

    bibo Нерд

    спасибо, читану намедни.
    Я только в этом споре начал осознавать, что нужно расписать блоки, а потом уж хвататься за написание программы. Если бы это было бы изначально объяснено, то может и не было бы перепалки.
     
  12. parovoZZ

    parovoZZ Гуру

    Не.не, не... Конечный автомат он потому так и называется, что на безумное количество входных возмущений у него есть конечное количество выходных состояний. Внутри - какая-то функция, которая даёт какое-то выходное состояние на определенное входное. Здесь это не подходит, т.к. внутри таймер тикает. В противном случае под конечный автомат можно подвести любой алгоритм, что не так.
     
  13. parovoZZ

    parovoZZ Гуру

    в алгоритме! Потом каждый такой блок в коде реализуешь в виде определённой функции. А в главном цикле тебе только и останется, что вызывать эти функции и обрабатывать их результат вызова. И цикл main будет очень короткий, а, главное, код будет красиво выглядеть и легко читаться.
     
  14. b707

    b707 Гуру

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

    parovoZZ Гуру

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

    bibo Нерд

    Признаюсь честно, нифига из посоветованной литературы не читал. Проблему решил просто: создал собственную функцию ручного управления, функцию автоматического управления, добавил кнопку-триггер, которая переключает режимы с отображением на экране. Плюс такого подхода еще в том, что на те же кнопки можно повесить много других "способностей", написав для них свою функцию и использовав в loop(). Так, две кнопки, отвечающие за ручное управление релешками, в автоматическом режиме работы(от датчиков), позволяют настроить часы.
    Все же не могу не отметить вашего положительного влияния на ход моих мыслей. Так что могу сказать спасибо .
     
    Последнее редактирование: 8 июн 2018