автоматика ворот

Тема в разделе "Arduino & Shields", создана пользователем Адам, 10 мар 2017.

?

Как правильно?

Голосование закрыто 11 ноя 2018.
  1. Скетч?

    100,0%
  2. Скейч?

    0 голосов
    0,0%
  3. Скретч?

    0 голосов
    0,0%
  4. Скрейтч?

    0 голосов
    0,0%
  1. asam

    asam Гик

    Ну вот у вас предусмотрено 3 возможных состояния ворот
    Код (Text):

    enum{STOP, OPEN, CLOSE};// возможные состояния системы
     
    (c сточки зрения английско было бы правильнее opening/closing). А в каком сотоянии находятся ворота когда в течении минуты концевик так и не сработал? А мы не знаем. То есть может оно уже открылось или закрылось, но концевик сломался, а может просто заело и не двигается. И в любом случае при таймауте надо бы не просто мотор выключить но и включить звуковую и/или световую сигнализацию. Поэтому нужно еще одно состояние. Например FAILURE

    А вообще у вас, на самом деле в начальном коде 4 состояни а не 3. Просто вы кодируете доп состояние с помощью byte lastDir;// предыдущее направление открытия ворот

    Логичнее сделать в еnume все состояния
    OPENING, CLOSING, OPENED, CLOSED, FAILURE
     
    Адам нравится это.
  2. Адам

    Адам Нерд

    мне самое главное чтоб она силовой трансформатор отключила , а открыто оно или закрыто я и так увижу наверно , всучае отказа одного концевика устраню неполадку и перезапушю прогу , мне наверно так проще будет .
     
    Последнее редактирование: 4 ноя 2019
  3. asam

    asam Гик

    Так прогу я вам дал. Пользуйтесь. Чего еще надо?
     
    Адам нравится это.
  4. Адам

    Адам Нерд

    я не русский , для меня 50% скидка )))

    я вам очень благодарен добрый человек , просто хотелось уточнить если не трудно , при отказе концевика отключится трансформатор и заработает мигалка или просто отключится трансформатор? Если я захочю под коректировать время закрытия и открытия ворот в разделе ("#define MOTOR_TIMEOUT (60*1000) // Время допустимой работы мотора в миллисекундах") поменять время и все ?
     
    Последнее редактирование модератором: 5 ноя 2019
  5. asam

    asam Гик

    просто отключится
     
    Адам нравится это.
  6. Адам

    Адам Нерд

    Если я захочю под коректировать время закрытия и открытия ворот в разделе ("#define MOTOR_TIMEOUT (60*1000) // Время допустимой работы мотора в миллисекундах") поменять время и все (60*1000) ?
     
  7. asam

    asam Гик

    да
     
    Адам нравится это.
  8. Адам

    Адам Нерд

    (60*1000) и в конце какое из них число мне менять подскажите ,и спасибо Вам за время выделенное для меня
     
  9. asam

    asam Гик

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

    PS Звездочка это умножение
     
    Адам нравится это.
  10. alp69

    alp69 Гик

    60*1000=60000 миллисекунд. Меняйте что удобнее. Даже 20*3000 даст такой же результат - 60 секунд.
     
    Адам нравится это.
  11. Адам

    Адам Нерд

    теперь для меня все ясно ! еще раз спасибо, Вы мне очень помогли
     
  12. asam

    asam Гик

    "Спасибо" много будет. Достаточно если понажимаете "Mне нравится" на моих сообщениях :)
     
    b707, Адам и KindMan нравится это.