Задать вопрос
  • Как организовать мини колл центр?

    mrusklon
    @mrusklon Автор вопроса
    Andrey Barbolin, это слишком мажорный колл центр выйдет))
  • Почему таймер milis ардуино не работает 2 раза?

    mrusklon
    @mrusklon Автор вопроса
    kalapanga, в прошлом коде были светодиоды как подопытные вместо реле, мне казалось все работало, но как дело до релюх дошло оказалось что нет, я всю ночь сидел гуглил, думал и дебажил код, путем отладки в консоль я понял что не выйдет у меня сделать это, по крайней мере с моим текущим уровнем знаний
  • Почему таймер milis ардуино не работает 2 раза?

    mrusklon
    @mrusklon Автор вопроса
    kalapanga, геркон работает только когда нет света, а кнопка независимо от остальных датчиков, но это не важно сейчас. Хоть бы с кнопки первое реле ключать, а с геркона второе , первое на 5000мс, а второе на 7000мс к примеру
  • Почему таймер milis ардуино не работает 2 раза?

    mrusklon
    @mrusklon Автор вопроса
    Дмитрий Павлов, у меня там будет таймер максимум 15 минут, но их будет 2, какой вариант мне подойдет? То есть пока первый таймер работает допустим на 10 минут, во время него чтоб можно было запустить второй на 2 минуты 4 раза к примеру
  • Почему таймер milis ардуино не работает 2 раза?

    mrusklon
    @mrusklon Автор вопроса
    что вы пытаетесь этим сказать? Надо обнулять это значение или значение previousMillis_ul ? Или совсем не использовать?
  • Есть способ или программа для тегирования файлов и фильтрации?

    mrusklon
    @mrusklon Автор вопроса
    Владимир Коротенко, может есть где на ютубе пример? Я не понимаю как это работает(
  • Есть способ или программа для тегирования файлов и фильтрации?

    mrusklon
    @mrusklon Автор вопроса
    вопрос не стоит конкретно о винде, можно что угодно использовать, даже не обязательно кроссплатформенное, например тотал бы подошел или мало ли что там еще... главное задачу выполнить
  • Есть способ или программа для тегирования файлов и фильтрации?

    mrusklon
    @mrusklon Автор вопроса
    Владимир Коротенко, я не это имел введу, индексация это поиск, поиск по названию, разширению но ведь там нет такого что я сам у файла пропишу какой то тег и по нему искать будет
  • Есть способ или программа для тегирования файлов и фильтрации?

    mrusklon
    @mrusklon Автор вопроса
    что то гугл молчит... это где такое есть?
  • Как узнать какую оперативку докупить в сервер?

    mrusklon
    @mrusklon Автор вопроса
    wtvCZyK.png
    я правильно понимаю стоит 4 планки Hynix HMT351U7CFR8A-H9 по 4гб ? 1333 частотой
    а как узнать максимально поддерживаемое количество памяти?
  • Как разрешить редактирование файла через админку ВП?

    mrusklon
    @mrusklon
    Александр Кошелев, через админку некак нельзя, FTP/SSH/SFTP/ или на сервере напрямую , можешь хостингу в поддержку написать, там помогут 100%
  • Какой процессор нужен для rtx 3070?

    mrusklon
    @mrusklon Автор вопроса
    Дмитрий Павлов, так там пропасть между ними же...
  • Какой процессор нужен для rtx 3070?

    mrusklon
    @mrusklon Автор вопроса
    так блин я об этом и спрашиваю)))) информации то нет, или есть?
  • Как сделать 2 не связанных таймера?

    mrusklon
    @mrusklon Автор вопроса
    аргумент конечно уместный но как решение выбрать не могу , это итак очевидно )
  • Как сделать 2 не связанных таймера?

    mrusklon
    @mrusklon Автор вопроса
    да ну это слишком сложно, для того чтоб на автомобиле ездить не стоит быть автомехаником
  • Как сделать 2 не связанных таймера?

    mrusklon
    @mrusklon Автор вопроса
    kalapanga, остался вопрос какой ответ выбрать решением)) , может вынесете свое решение в отдельный комментарий?
  • Как сделать 2 не связанных таймера?

    mrusklon
    @mrusklon Автор вопроса
    kalapanga, спустя какое то время, я его победил)
    #define rele_dom 9    // пин реле в доме
    #define rele_ul 6    // пин реле на улице
    #define dsveta 7     // пин датчика света
    #define ddvij 2  // датчик движения
    #define gerkon 5  // геркон
    #define knopka 3  // кнопка
    
    // test
    // Variables will change:
    unsigned long previousMillis_dom = 0;        // храним время последнего переключения светодиода
    unsigned long previousMillis_ul = 0;
    bool rele_dom_on = false;
    bool rele_ul_on = false;
    // /test
    void setup() {
      Serial.begin(9600);
    
      pinMode(rele_dom, OUTPUT);
      pinMode(rele_ul, OUTPUT);
    
      digitalWrite(rele_dom, HIGH); // выключаем реле по умолчанию
      digitalWrite(rele_ul, HIGH);
    
      pinMode(dsveta, INPUT);
      pinMode(gerkon, INPUT);
      pinMode(knopka, INPUT);
    
    
    }
    
    void loop()
    {
      Serial.println(digitalRead(dsveta));
      unsigned long currentMillis = millis();
    
      if (!rele_dom_on && (digitalRead(dsveta) == 1)) {
        digitalWrite(rele_dom, LOW); // включить
        rele_dom_on = true; // запомнить состояние
        previousMillis_dom = currentMillis; // запомнить момент включения
      }
      // Если не включено, то и проверять нечего
      // Если включено, то смотрим не прошло ли заданное время
    
      if (rele_dom_on && currentMillis - previousMillis_dom > 3000) { // время в милисекундах
        
        if (digitalRead(dsveta) == 1) {
          rele_dom_on = false;
        } else {
          digitalWrite(rele_dom, HIGH); // прошло больше 30 секунд - выключаем
          rele_dom_on = true;
        }
      }
    
      ///////////////////////////////////////////////////////////////////////
    
      if (!rele_ul_on && (digitalRead(dsveta) == 1)) {
        digitalWrite(rele_ul, LOW); // включить
        rele_ul_on = true; // запомнить состояние
        previousMillis_ul = currentMillis; // запомнить момент включения
      }
      // Если не включено, то и проверять нечего
      // Если включено, то смотрим не прошло ли заданное время
      if (rele_ul_on && currentMillis - previousMillis_ul > 5000) { // время в милисекундах
        
        if (digitalRead(dsveta) == 1) {
          rele_ul_on = false;
        } else {
          digitalWrite(rele_ul, HIGH); // прошло больше 30 секунд - выключаем
          rele_ul_on = true;
        }
      }
    
    }


    вы мне очень помоги с осознанием запоминания состояния, я о таком не думал раньше, спасибо вам большое!
  • Как сделать 2 не связанных таймера?

    mrusklon
    @mrusklon Автор вопроса
    kalapanga,
    #define rele_dom 9    // пин реле в доме
    #define rele_ul 6    // пин реле на улице
    #define dsveta 7     // пин датчика света
    #define ddvij 2  // датчик движения
    #define gerkon 5  // геркон
    #define knopka 3  // кнопка
    
    // test
    // Variables will change:
    unsigned long previousMillis_dom = 0;        // храним время последнего переключения светодиода
    unsigned long previousMillis_ul = 0;
    bool rele_dom_on = false;
    bool rele_ul_on = false;
    // /test
    void setup() {
      Serial.begin(9600);
    
      pinMode(rele_dom, OUTPUT);
      pinMode(rele_ul, OUTPUT);
    
      digitalWrite(rele_dom, HIGH); // выключаем реле по умолчанию
      digitalWrite(rele_ul, HIGH);
    
      pinMode(dsveta, INPUT);
      pinMode(gerkon, INPUT);
      pinMode(knopka, INPUT);
    
    
    }
    
    void loop()
    {
      Serial.println(digitalRead(dsveta));
      unsigned long currentMillis = millis();
    
      if (!rele_dom_on && (digitalRead(dsveta) == 1)) {
        digitalWrite(rele_dom, LOW); // включить
        rele_dom_on = true; // запомнить состояние
        previousMillis_dom = currentMillis; // запомнить момент включения
      }
      // Если не включено, то и проверять нечего
      // Если включено, то смотрим не прошло ли заданное время
    
      if (rele_dom_on && currentMillis - previousMillis_dom > 3000) { // время в милисекундах
        digitalWrite(rele_dom, HIGH); // прошло больше 30 секунд - выключаем
        rele_dom_on = false;
      }
    
      if (!rele_ul_on && (digitalRead(dsveta) == 1)) {
        digitalWrite(rele_ul, LOW); // включить
        rele_ul_on = true; // запомнить состояние
        previousMillis_ul = currentMillis; // запомнить момент включения
      }
      // Если не включено, то и проверять нечего
      // Если включено, то смотрим не прошло ли заданное время
      if (rele_ul_on && currentMillis - previousMillis_ul > 5000) { // время в милисекундах
        digitalWrite(rele_ul, HIGH); // прошло больше 30 секунд - выключаем
        rele_ul_on = false;
      }
    
    }


    по времени работает как надо теперь, но почему не запоминает if rele_dom_on ? Если кнопку нажать и держать (в моем случае датчик света) то реле через промежуток времени перевключается, может я синтаксис напутал? Но без скобок компилятор выдает ошибку
  • Как сделать 2 не связанных таймера?

    mrusklon
    @mrusklon Автор вопроса
    то что я написал работает не корректно, кто подскажет в чем косяк?

    #define rele_dom 9    // пин реле в доме
    #define rele_ul 6    // пин реле на улице
    #define dsveta 7     // пин датчика света
    #define ddvij 2  // датчик движения
    #define gerkon 5  // геркон
    #define knopka 3  // кнопка
    
    // test
    // Variables will change:
    long previousMillis = 0;        // храним время последнего переключения светодиода
    long previousMillis2 = 0;
    bool one = false;
    
    // /test
    void setup() {
      Serial.begin(9600);
    
      pinMode(rele_dom, OUTPUT);
      pinMode(rele_ul, OUTPUT);
    
      digitalWrite(rele_dom, HIGH); // выключаем реле по умолчанию
      digitalWrite(rele_ul, HIGH);
    
      pinMode(dsveta, INPUT);
      pinMode(gerkon, INPUT);
      pinMode(knopka, INPUT);
    
    
    }
    
    void loop()
    {
      Serial.println(digitalRead(dsveta));
      // здесь будет код, который будет работать постоянно
      // и который не должен останавливаться на время между переключениями свето
      unsigned long currentMillis = millis();
    
      if (digitalRead(dsveta) == 1) {
        digitalWrite(rele_dom, LOW);
      } else {
        
        if (currentMillis - previousMillis > 30000) { // время в милисекундах
          previousMillis = currentMillis;
          digitalWrite(rele_dom, HIGH);
        }
        
      }
    
    
      if (digitalRead(dsveta) == 1) {
        digitalWrite(rele_ul, LOW);
      } else {
        
        if (currentMillis - previousMillis2 > 4000) { // время в милисекундах
          previousMillis2 = currentMillis;
          digitalWrite(rele_ul, HIGH);
        }
        
      }
    }
  • Как сделать 2 не связанных таймера?

    mrusklon
    @mrusklon Автор вопроса
    нашел вот такой пример
    arduino.ru/tutorials/BlinkWithoutDelay
    но тут выходит время считает как до так и после срабатывания, например если интервал поставить 10 сек то надо держать кнопку 10 сек чтоб сработало реле, потом 10 сек оно будет работать и выключится

    а мне выходит надо только кнопку нажал и реле 10 сек работает