1. В сообществе нашего форума Вконтакте создан раздел по продаже электронных компонентов.
    Каждый может продать в нем свои залежавшиеся детали. Подробности здесь.

Свет в общем коридоре (на лестничной площадки)

Тема в разделе "Проекты на Arduino", создана пользователем RADmir, 22 окт 2015.

  1. RADmir

    RADmir Частый гость

    Сообщения:
    15
    Симпатии:
    0
    Управление светом в общем коридоре (на лестничной площадки). Выключатель обычный в квартире (двухпозиционный с фиксацией).
    Задача 1(22.10.15): Когда выходишь на улицу из квартиры, что бы свет в коридоре выключался автоматически. Выключения света с задержкой при кратковременном переключении выключателя (Включил свет и сразу же выключил - до 2 сек). Если свет включен больше 2 сек, выключение происходит без задержки, после нажатия выключателя в положение ВЫКЛ).
    Хотел использовать команду "PulseIn", не получилось применить для данной задачи.
    На форуме хотел бы узнать: Возможно ли оптимизировать мой код. Заранее спасибо!


    PHP:
    int lamp 2// ЛАМПА
    int breaker 3// ВЫКЛЮЧАТЕЛЬ
    int SEK 0//Таймер времени
    unsigned long wait 0;
    boolean state false;
    #define pulse 2
    #define delayOff 20

    void setup()
    {
    //Serial.begin(9600);
    pinMode(lampOUTPUT);
    pinMode(breakerINPUT);
    //digitalWrite(breaker, HIGH);
    }

    void loop()
    {
      
    int button 0// локальная переменная
      
    button digitalRead(breaker);
      if(
    button == HIGH){
      if(
    SEK == 0state true;}
      if(
    state == true){
      if(
    millis() - wait 1000){
      
    wait millis();
      
    SEK++;}}
      if(
    button == HIGH){
      if(
    SEK pulse){
      
    SEK = -10;
      
    state false;}}

      if(
    SEK >= && SEK pulsedigitalWrite(lamp,HIGH);
      if(
    SEK delayOff){
      
    SEK 0;
      
    digitalWrite(lampLOW);
      
    state false;}
      if(
    SEK == -10){
      
    digitalWrite(lampbutton);
      if(
    button == LOWSEK 0;}

      
    /*Serial.print("State - ");
      Serial.print(state);
      Serial.print(" Delay - ");
      Serial.println(SEK);
      delay(250);*/
    }
    Последнее редактирование: 23 окт 2015
     
  2. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.558
    Симпатии:
    354
    Адрес:
    Алматы
    5 раз перечитал задачу и ничего не понял:) Каким образом определяется, что человек выходит на улицу? Что значит "при кратковременном переключении выключателя ( до 2 сек)" - это как, я просто не могу смоделировать ситуацию. "Если свет включен больше 2 сек, выключение происходит без задержки" - почему 2 секунды?
  3. RADmir

    RADmir Частый гость

    Сообщения:
    15
    Симпатии:
    0
    Спасибо за редактирование, так стало красивее. Дополнил текст, может так будет попонятней.
    Идея в том что бы, когда я выхожу из квартиры. Я включаю свет на лестничной площадки (кратковременно переключаю выключатель: Вкл и Выкл) и нужна задержка выключения, что бы я закрыл дверь и вышел на улицу и после того только выключился свет. Сейчас стоит простой выключатель.
    Когда мне не нужна задержка выключения. Я включаю свет на неопределенное время (больше 2 сек) и после этого свет выключается сразу после выключения света (нажать в положение Выкл). Кого нибудь должен прийти или для каких то других целей нужен свет в коридоре. Или срочно нужно выключить свет в коридоре. Своего рода экономия.
    Последнее редактирование: 23 окт 2015
  4. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.558
    Симпатии:
    354
    Адрес:
    Алматы
    Вот теперь стало понятнее, получается если свет включается более чем на 2 секунды, то он не отключается сам или отключается сразу после истечения 2 секунд?
  5. RADmir

    RADmir Частый гость

    Сообщения:
    15
    Симпатии:
    0
    Он не отключается сам, а выключается когда отключить свет (нажать в положение Выкл). То есть без задержки. Поправил предыдущие сообщение.
  6. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.558
    Симпатии:
    354
    Адрес:
    Алматы
    Теперь все ясно! Поразбираюсь в коде.
  7. RADmir

    RADmir Частый гость

    Сообщения:
    15
    Симпатии:
    0
    Спасибо! Постараюсь сделать поскорее рабочую версию.
  8. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.558
    Симпатии:
    354
    Адрес:
    Алматы
    Посмотрел код, особо тут не пооптимизируешь, должно все работать корректно, можно сделать внешнее прерывание для подсчета секунд, но для этой задачи это лишнее.
  9. RADmir

    RADmir Частый гость

    Сообщения:
    15
    Симпатии:
    0
    Спасибо за уделенное время! В "строчном" программирование не силен. Алгоритмов не знаю, только начал изучать Arduino.
  10. MetallEngineer

    MetallEngineer Живет здесь

    Сообщения:
    227
    Симпатии:
    15
    Род занятий:
    энергетика
    Адрес:
    Талгар
  11. RADmir

    RADmir Частый гость

    Сообщения:
    15
    Симпатии:
    0
    Путевой выключатель можно было бы поставить, если бы это было в квартире. А это на лестничной площадки. Свет нужен для того, чтобы закрыть дверь ключом и выйти на улицу.
    Вариант 2 для моих задач не подходит, так как свет должен включаться только от хозяев квартиры (живу в многоэтажки). Ну и как проще было бы)
    В следующих задачах будет включение по радиоканалу (предпочтительней WiFi). Жду модуль.
  12. SeregaZ

    SeregaZ В доску свой

    Сообщения:
    391
    Симпатии:
    38
    когда-то у товарища стоял "шумовой" чтоль выключатель... открыл дверь - топнул, свет загорелся :) погорел пару минут - потух.
  13. Buba_Chkhadze

    Buba_Chkhadze Модератор Команда форума

    Сообщения:
    4.345
    Симпатии:
    355
    Адрес:
    Талгар
    это называлось акустическое реле, схемы довольно простые :)
  14. RADmir

    RADmir Частый гость

    Сообщения:
    15
    Симпатии:
    0
    Идея есть такая. Включать свет по голосу (только моему и родных). Такие шилды на Arduino, вроде дорого стоят. Пока не искал информации об этом.
  15. .ctor

    .ctor В доску свой

    Сообщения:
    715
    Симпатии:
    202
    Род занятий:
    парогенератор
    Адрес:
    Алматы
    Во время гриппа или ангины вы без света останетесть..
  16. RADmir

    RADmir Частый гость

    Сообщения:
    15
    Симпатии:
    0
    Об этом не задумывался. Все способы включения света будут одновременно использоваться. Предпочтение отдаю WiFi. По голосу думаю красивее будет.

Поделиться этой страницей