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

Кнопки со сложной логикой

Тема в разделе "Arduino", создана пользователем ilay, 6 фев 2016.

Статус темы:
Закрыта.
  1. Дмитрий BASIC

    Дмитрий BASIC Живет здесь

    Сообщения:
    171
    Симпатии:
    91
    На бейсике( while Wend )= на Ардуино ( do while )
  2. ilay

    ilay Гость

    Сообщения:
    16
    Симпатии:
    0
    Да это я знаю...логику не могу понять...туго доходит чевой-то.
  3. Дмитрий BASIC

    Дмитрий BASIC Живет здесь

    Сообщения:
    171
    Симпатии:
    91
  4. ilay

    ilay Гость

    Сообщения:
    16
    Симпатии:
    0
    Эти циклы нужно использовать в связке "delay"...а delay блокирует дальнейшие действия...т.е. delay останавливает все после себя...код написанный ниже delay. Поэтому приходится изворачиваться с ключами и флагами.
    --- Сообщения объединены, 7 фев 2016 ---
    Пример кода

    Код:
    void setup()
    {  
      pinMode(13, OUTPUT);  
    }
    void loop() {
      digitalWrite(13, HIGH);   // зажигаем светодиод
      delay(1000);              // ждем секунду
      digitalWrite(13, LOW);    // выключаем светодиод
      delay(1000);              // ждем секунду
    }
    
    Если прописать ниже какое нибудь действие, оно не будет исполняться...т.к. delay() блокирует код на себе.
  5. Дмитрий BASIC

    Дмитрий BASIC Живет здесь

    Сообщения:
    171
    Симпатии:
    91
    Но вместо delay можно использовать time = millis()
    И подставить его в цикл
  6. ilay

    ilay Гость

    Сообщения:
    16
    Симпатии:
    0
    Вот я и использую millis()...но лучше использовать micros() для миллисекунд...т.к. millis() при ошибке сбрасывается на ноль через 50 суток...а micros() через 70 минут.
    --- Сообщения объединены, 7 фев 2016 ---
    Суть не в этом...логически изворачиваться приходится...хоть с micros(), хоть с while...у меня знаний пока маловато...вот и хожу по форумам за помощью.
  7. Дмитрий BASIC

    Дмитрий BASIC Живет здесь

    Сообщения:
    171
    Симпатии:
    91
    Вообще еще проще можно можно просто for использовать чтобы с функцией времени не заморачиваться, но это просто советы решать вам какой код писать
  8. ilay

    ilay Гость

    Сообщения:
    16
    Симпатии:
    0
    Вернусь я все таки к ключам...с ними мне гораздо понятней.Пусть код большой...главное чтобы работал.
    Добавил еще кусок для проверки ключа.
    Код:
    bool keyStop = true; // ключ отпускания кнопки
    if ((digitalRead(pinButton3) == LOW) && (keyStop == false) keyStop = true;// отпускаем кнопку взводится ключ
    && (keyStop == true)  
    keyStop = false; // сброс ключа
    Ошибку показывает...разбираюсь.
  9. _VN_

    _VN_ В доску свой

    Сообщения:
    482
    Симпатии:
    64
    Род занятий:
    Инженер
    Адрес:
    Алматы
    Литературный способ изложения алгоритма понятен только его автору. Советую изложить его в виде набора последовательных инструкций. В Вашем сообщении #19 описан какой-то трёхмерный цикл выполняемых операторов...
  10. ilay

    ilay Гость

    Сообщения:
    16
    Симпатии:
    0
    Так я же разжевал уже несколько раз...сейчас напишу в виде блок-схемы тогда.
  11. ilay

    ilay Гость

    Сообщения:
    16
    Симпатии:
    0
    [​IMG]

    Нажали кнопку-1(кликнули или кликнув удерживаем) загорается лед-1...Нажали кнопку-2(кликнули или кликнув удерживаем) загорается лед-1 и загорается Лед-2.
    Кнопка-1 включает Лед-1 только при первом нажатии, при повторных нажатиях не включает, пока не нажмем кнопку-2.....
    Кнопка-2 включает Лед-1 только при первом нажатии, при повторных нажатиях не включает, пока не нажмем кнопку-1...так же кнопка-2 одновременно с включением Лед-1, включает лед-2..Лед-2 горит пока не отпустим кнопку-2.
    Лед-1 горит 2 секунды не зависимо кликнули или кликнув удерживаем, как кнопку-1 так и кнопку-2.
  12. _VN_

    _VN_ В доску свой

    Сообщения:
    482
    Симпатии:
    64
    Род занятий:
    Инженер
    Адрес:
    Алматы
    Не пытаюсь казаться навязчивым, но попробуйте изложить вот таким образом...

    Вложения:

  13. ilay

    ilay Гость

    Сообщения:
    16
    Симпатии:
    0
    Ты или пиши по существу, или гуляй лесом.
  14. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.842
    Симпатии:
    311
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Блок-схемы в школе не проходили что-ли?
  15. ilay

    ilay Гость

    Сообщения:
    16
    Симпатии:
    0
    Покидаю форум...как на всех форумах, имеется пара-тройка неадекватных "в доску своих" и "живет здесь" возомнивших о себе что они гуру все-и-вся...а по сути своей такие же неучи...нечем мне этот ------ форум не помог...адье ------.

    За неадекватное поведение и оскорбление других участников форума заблокирован до наступления Рагнарёка.
    Последнее редактирование модератором: 8 фев 2016
  16. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.842
    Симпатии:
    311
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Давай... и вам не болеть. Мозг береги, вдруг пригодится когда-нибудь. Хотя...



    Да уж... дураков нигде не любят. Вот и скитаются они горемыки, везде чужие, везде обиженные. И пишут код для двух кнопок годами...
    А извилинами пошевелить - с детства не научены.

    PS: Что за люди? 20 минут на блок-схему потратить лень, а целый день мозг себе выносить - нет. Эх.. блин... поколение даунов...

    Этот м-к вот это хотел. Только ни объяснить, ни нарисовать не смог
    222.jpg
    Последнее редактирование: 8 фев 2016
  17. SeregaZ

    SeregaZ В доску свой

    Сообщения:
    391
    Симпатии:
    38
    эм... я тож схему не понимаю :) думаю флаги и таймеры нужны. точнее были нужны, пока топик стартер не обиделся, что ему не дали сразу готовый код.
  18. _VN_

    _VN_ В доску свой

    Сообщения:
    482
    Симпатии:
    64
    Род занятий:
    Инженер
    Адрес:
    Алматы
    Автор темы, возможно, неполностью описал алгоритм работы. А начинать нужно с описания реального механизма, которым управляет эта программа. Если нажать обе кнопки одновременно, то Л1 будет постоянно включён, а Л2 мигать с периодом 4 секунды. Это допустимо по технике работы такой программы?
  19. aman

    aman Завсегдатай

    Сообщения:
    149
    Симпатии:
    10
    я тоже было приготовил свою для одной из версий входного описания, спортивного интереса ради, но .. на нет и суда нет
  20. .ctor

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

    Сообщения:
    713
    Симпатии:
    201
    Род занятий:
    парогенератор
    Адрес:
    Алматы
Статус темы:
Закрыта.

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