Отмена выполнение команды по esle

Тема в разделе "Arduino & Shields", создана пользователем thesatellite, 28 янв 2019.

  1. thesatellite

    thesatellite Нерд

    Доброго времени суток. Вопрос вот в чём:

    При появлении на A0 параметра ниже 40, запускается две функции последовательно. Как сделать, что бы при изменении параметра на A0, система сбрасывала проход фунций на любом этапе прохождения в режим ожидания? Благодарю за ответ делетанту!

    Время указанное в функциях чисто для проверки работоспособности девайса.

    void setup()
    {
    pinMode(2, OUTPUT);
    }

    void loop()
    {
    if (analogRead(A0) < 40)
    {
    motor1();
    motor2();
    }
    }


    void motor1()
    {
    for (uint8_t i = 0; i <= 2; i++)
    {
    digitalWrite (2, HIGH);
    delay (500);
    digitalWrite (2, LOW);
    delay (500);
    }
    }

    void motor2()
    {
    for (uint8_t i = 0; i <= 5; i++)
    {
    digitalWrite (2, HIGH);
    delay (500);
    digitalWrite (2, LOW);
    delay (5000);
    }
    }
     
  2. NikitOS

    NikitOS Король шутов Администратор

    Сэр, посмотрите закреплённое сообщение в разделе и исправьте ошибки
     
  3. thesatellite

    thesatellite Нерд

    ПРошу прощения, сударь, но я вас не понял)
     
  4. NikitOS

    NikitOS Король шутов Администратор

  5. parovoZZ

    parovoZZ Гуру

    Или запятой не хватает, или падежи не знаем?
     
  6. parovoZZ

    parovoZZ Гуру

    А где в коде организован режим ожидания? Два варианта - либо по вачдогу уходить на ресет, либо же убрать delay из кода как класс.
     
  7. thesatellite

    thesatellite Нерд

    А подскажите как врубить ресет?
     
  8. b707

    b707 Гуру

    не надо вам ресет, это не метод для вашей проблемы. Это лечение головной боли гильотиной :)
    Правильно так -
    Функции надо переписать без использования delay() и все время работы моторов мониторить аналоговый вход
     
  9. parovoZZ

    parovoZZ Гуру

    Вообще, обычно запоминают текущее значение переменной и сравнивают его со следующим значением. На основании этого сравнения производятся дальнейшие действия.
     
  10. thesatellite

    thesatellite Нерд

    А подскажите кодик?)
     
  11. b707

    b707 Гуру

    смотрите пример "blink without delay"
     
  12. thesatellite

    thesatellite Нерд

    Благодарю
     
  13. NikitOS

    NikitOS Король шутов Администратор

    А что это такое?:confused::eek:
     
  14. parovoZZ

    parovoZZ Гуру

    В Совецких школах рассказывали. Домашку делали, потом контрольную, затем диктант писали. Ну и на десерт экзамен.
     
  15. NikitOS

    NikitOS Король шутов Администратор

    Аа..
    Ну это не ко мне :)
    Я ж русского нифига не знаю :)
     
  16. parovoZZ

    parovoZZ Гуру

    Как сейчас - не знаю. Нет повода посетить.