Считывания с CD карты массива (бюджет 1000р)

Тема в разделе "Закажу проект", создана пользователем Artclonic, 25 янв 2018.

  1. DIYMan

    DIYMan Guest

    По поводу команд, ещё раз: не надо никакой вычитки змейкой! НЕ НАДО! Просто вводите команду с каким-либо номером, например, 100, которая говорит - следующие команды будут двигать шаговик назад. В ON_COMMAND при приходе команды с номером 100 запоминаете флаг, что шаговик надо двигать назад, а не вперёд. Впоследствии двигаете шаговик в зависимости от текущего флага - либо вперёд, либо назад. Всё просто.
     
  2. DIYMan

    DIYMan Guest

    Дык и я о чём! Автор сам себе создаёт ненужные грабли. При этом СОВЕРШЕННО не понимая, что от этого только хуже будет, во всех смыслах.
     
  3. b707

    b707 Гуру

    Не расстраивайтесь, в программировании каждую задачу можно решить многими способами.
    Это не значит, что наш с вами способ лучше или хуже, чем DIYMana
     
  4. b707

    b707 Гуру

    погоди, не горячись - ТС уже согласился с командами направления.
     
  5. DIYMan

    DIYMan Guest

    Нет, змейкой там ничего не надо. Вот смотрите, я вам приведу пример простой линейной программы (каждая строка - это как команда в файле):

    ШАГОВИК_БУДЕТ_КРУТИТЬСЯ_ВПЕРЁД
    ШАГОВИК_10_ШАГОВ
    СВЕТОДИОД_ВКЛ
    ЖДАТЬ_5_СЕКУНД
    ШАГОВИК_5_ШАГОВ
    СВЕТОДИОД_ВЫКЛ
    ШАГОВИК_БУДЕТ_КРУТИТЬСЯ_НАЗАД
    СВЕТОДИОД_ВКЛ
    ШАГОВИК_50_ШАГОВ

    Зачем здесь змейка?
     
  6. b707

    b707 Гуру

    DIYMan
    погоди, не пиши ничего. Ты ТС запутаешь. Прочитай внимательно предыдущую страницу - мы с ним именно эту идею только что разобрали.
     
  7. DIYMan

    DIYMan Guest

    Да я прочитал уже :) Осталось только, чтобы ТС согласился, и прописать нужное поведение в ON_COMMAND, и всё :)
     
  8. Artclonic

    Artclonic Гик

    Да мне это понятно! Это как раз о чем я говорил. Но теперь эти команды должны быть в строчку? Или ни какого значения не имеет - все будет читаться справа налево сверху внизу ПОДРЯД?

    И надеюсь последний вопрос
    в ON_COMMAND -
    {
    // тут что-то делаем с командой, пока - просто выводим в Serial
    Serial << F("Command to execute: ") << command << ENDLINE;
    Это команда F
     
  9. b707

    b707 Гуру

    :)))
    Удачи, DIYMan :)
    вот поэтому я и не берусь писать за деньги.... :)
     
  10. Artclonic

    Artclonic Гик

    Ой...Ой...Ой..
    Напишите плиз пример команды и действие на нее.
     
  11. Artclonic

    Artclonic Гик

  12. Artclonic

    Artclonic Гик

    Вот так

     
  13. DIYMan

    DIYMan Guest

    Это макрос, который размещает строку во флеше - экономлю вашу оперативку :)

    Вам нужно просто убрать всё из ON_COMMAND и прописать внутрь этой функции реагирование на приход каждой команды. Если вы мне дадите список всех номеров команд с расшифровкой, какая что делает - я вам допишу внутрь разбор каждой команды с комментариями, куда вставить ваш актуальный код по работе с шаговиком, светодиодом и пр.
     
  14. b707

    b707 Гуру

    Как у вас быстро настроение меняется. И пошутить нельзя (причем по делу :)
    Сразу и забыли. что я вам только что 500 рублей спас :)
     
  15. Artclonic

    Artclonic Гик

    Не в 500 руб дело! В ИДЕЕ!!!!
    СПАСИБО!
     
  16. DIYMan

    DIYMan Guest

    Они читаются СЛЕВА-НАПРАВО СВЕРХУ-ВНИЗ, как вы читаете книгу, например. Никакого значения, сколько команд в строке - не имеет.
     
  17. Artclonic

    Artclonic Гик

    Напишите мне пример реакции 4 команд, а я дальше допишу, к примеру
    команда

    «1»

    Действие

    digitalWrite(ob1,HIGH); delay(1000); digitalWrite(ob1,LOW);


    команда

    «2»

    Действие

    digitalWrite(ob2,HIGH); delay(1000); digitalWrite(ob2,LOW);


    команда

    «R»

    Действие

    motor1.step(1, FORWARD, SINGLE);

    команда

    «L»

    Действие

    motor1.step(1, BACKWARD, SINGLE);
     
  18. Artclonic

    Artclonic Гик

    На видео станок по выкладке бисера
     
  19. DIYMan

    DIYMan Guest

    Мы ВНЕЗАПНО вводим вместо чисел ещё и буквенные команды? В исходном файле ТЗ - были только числа, парсер выдаёт наружу только числовые идентификаторы команд. Ок, я вам вот прям здесь сейчас напишу пример, но только без R и L, а числовыми командами:
    Код (C++):
    void ON_COMMAND(int command)
    {
      switch(command)
      {
        case 1:
        {
          digitalWrite(ob1,HIGH); delay(1000); digitalWrite(ob1,LOW);
        }
        break;

        case 2:
        {
          digitalWrite(ob2,HIGH); delay(1000); digitalWrite(ob2,LOW);
        }
        break;

        case 3: // R
        {
         motor1.step(1, FORWARD, SINGLE);
        }
        break;

        case 4: // L
        {
          motor1.step(1, BACKWARD, SINGLE);
        }
        break;
      } // switch


    }
     
  20. Artclonic

    Artclonic Гик

    Не проблема! Будут только числа!