Где может быть ошибка кода?

Тема в разделе "Arduino & Shields", создана пользователем sanik, 8 окт 2013.

  1. Megakoteyka

    Megakoteyka Оракул Модератор

    В нужном месте можно ткнуть пальцем и сказать - "тут ремень будет" или веревочку повязать вместо ремня :) Лишь бы понятно было, как что работать должно.
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    А они нам нужны на самом деле, эти импульсы? Мы же вроде и так мотор крутим с желаемой скоростью. Что именно мы будем контролировать, подсчитывая импульсы?
     
  3. sanik

    sanik Гик

    Вот и я про что! Заходят тут иногда путают людей http://forum.amperka.ru/threads/Где-может-быть-ошибка-кода.2047/page-11#post-16078 Вы много пропустили с 10 страницы :)
     
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    Я все видел, просто не было времени подумать и сказать что-то по делу :)
    Насчет прерываний мысль не такая уж плохая. Если пытаться считывать в основном алгоритме программы сигнал с фотоинтерраптора, можно запросто пропустить некоторые импульсы.
    Если же настроить ножку контроллера, на которую подается сигнал от фотоинтерраптора таким образом, чтобы при изменении сигнала (с высокого уровня на низкий либо наоборот - как пожелаем) контроллер сам вызывал функцию-обработчик (в которой можно прибавлять счетчик импульсов), то мы гарантированно посчитаем все импульсы. Нам останется только в тот момент, когда мы хотим начать считать импульсы, обнулить счетчик и в основном цикле следить за его значением - как только значение станет равно желаемому - мы выполним то, что хотели.
    Но главный вопрос все же в том, нужно ли нам вообще считать эти импульсы или достаточно просто контролировать время работы мотора и вовремя его останавливать, чтобы добиться желаемого количества совершенных им оборотов?
     
  5. Unixon

    Unixon Оракул Модератор

    А как происходит процесс съемки в этом режиме? Каретка встала к одному концевику - поехала обратно - встала через X сантиметров - фото-щёлк - каретка поехала дальше - снова встала через Y сантиметров - фото-щёлк - снова поехала - и т.д. до другого концевика?
     
  6. Megakoteyka

    Megakoteyka Оракул Модератор

    http://forum.amperka.ru/threads/Где-может-быть-ошибка-кода.2047/page-6#post-15694

    Как я понимаю, каретка к этому моменту уже стоит в нужном исходном положении, затем делает заранее определенное количество продвижений, каждое на заранее определенное расстояние. Видимо, имеет смысл контролировать, чтобы каретка во время этих продвижений не уперлась в концевик.
    Подождем, пока sanik не подтвердит или не опровергнет мое понимание.
     
  7. sanik

    sanik Гик

    Импульсы считать нужно так как по времени ровные расстояния меньше мм. будет невозможно проехать
     
  8. sanik

    sanik Гик

    Да именно так и задумано для того что если задано большое количество кадров каретка начала возвращаться пока не закончиться значение количества кадров. контролировать упирание каретки в концевик не нужно это будет выглядеть так после очередного снимка каретка если наехала на него то она вернется немного назад. Вот удалось выбрать время нарисовать схему скоро зарядятся аккумуляторы займусь видео.
    Kontroler new.JPG
     
  9. sanik

    sanik Гик

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

    2. Крутим потенциометром, устанавливая желаемое положение каретки. Чем
    больше потенциометр повернут от среднего положения, тем больше скорость
    перемещения каретки, ожидаем нажатие кнопки select. Если каретка дошла до концевика останавливаем пока не будет повернут потенциометр в другое направление.
    По нажатию кнопки select, переходим в режим 3.

    3. Задаем, (количество импульсов с фотоитераптора) на сколько должна продвинуться каретка, нажатием кнопок plus или minus, по нажатию кнопки stop, сбрасываем настройки движения
    каретки, ждем нажатие кнопки select. Выводим значение на экран. По нажатию кнопки select,
    переходим в режим 4.

    4. Устанавливаем время (с шагом 1 сек) отсчета таймера pause нажатием, кнопок plus или minus в секундах, ждем нажатие кнопки select. Выводим значение на экран По нажатию кнопки select, переходим в режим 5.

    5. Устанавливаем время (с шагом 1 сек) отсчета таймера exposure нажатием, кнопок plus или
    minus в секундах, ждем нажатие кнопки select. Выводим значение на экран По нажатию кнопки
    select, переходим в режим 6.

    6. устанавливаем количество кадров shutter нажатием кнопок кнопок plus или
    minus, ждем нажатие кнопки select. Выводим значение на экран По нажатию кнопки
    select, переходим в режим 7.


    7.Ожидание нажатия кнопки start, ожидание нажатия кнопки stop, По
    нажатию кнопки start, переходим в режим 8. , По нажатию кнопки stop
    переходим в режим 2.

    8. Запускаем таймер pause в соответствии установленных параметров
    режимом 4., ожидание нажатия кнопки stop, по окончанию отсчета таймера
    pause, переходим в режим 9., , По нажатию кнопки stop переходим в
    режим 2.

    9. Запускаем таймер exposure в соответствии установленных параметров
    режимом 5. управляем срабатыванием реле focus ждем немного и реле shutter,
    уменьшаем значение счетчика количество кадров shutter на единицу заданого
    в режиме 6. Выводим на экран остаток кадров ,ожидание нажатия кнопки stop,
    по окончанию отсчета таймера exposure, отпускаем оба реле одновременно,
    переходим в режим 10., По нажатию кнопки stop отпускаем оба реле переходим в режим 2.
    При обнулении счетчика количество кадров shutter отпускаем оба реле переходим в режим 2.

    10.Запускаем таймер pause в соответствии установленных параметров режимом
    4., двигаем каретку в соответствии установленных параметров режимом 3.
    ожидание нажатия кнопки stop, ожидание срабатывание датчика направления
    каретки, останавливаем каретку в соответствии установленных
    параметров режимом 3. Переходим в режим 9. По нажатию кнопки stop
    переходим в режим 2. При срабатывание датчика направления каретки
    переходим в режим 11.

    11.Устанавливаем движение каретки в обратном направлении, двигаем каретку в соответствии установленных параметров режимом 3, останавливаем каретку в соответствии установленных
    параметров режимом 3 переходим в режим 9.
     
    Последнее редактирование: 24 окт 2013
  10. lerik2703

    lerik2703 Гик

    интересно с каком месте запутал?:confused:
    кстати если все-же вы будете использовать внешнее прерывание , то тогда выход с фотоитераптора подключите тогда к 4 или 5 ноге контроллера !
     
  11. sanik

    sanik Гик

    Хорошо учту Почему именно на них?
     
  12. sanik

    sanik Гик

     
  13. lerik2703

    lerik2703 Гик

    Разработчики Ардуино посчитали что есть пару штатных выводов (INT0 и INT1 ) для внешних прерываний и хватит (ну а вообщем контролер поддерживает 26 прерываний ):)
     
    Последнее редактирование: 24 окт 2013
  14. sanik

    sanik Гик

    Ну как раз у меня пятый пин свободен получается..
     
  15. sanik

    sanik Гик

    Наконец то отредактировал видео там хорошо видно как будет работать концевик в обоих режимах...
     
  16. lerik2703

    lerik2703 Гик

    туда вроде кнопка S4 подключена?!
     
  17. sanik

    sanik Гик

    Пятый пин свободен! :)
     
  18. lerik2703

    lerik2703 Гик

    вам видней я чисто руковожусь схемой :)
    мне вот интересен момент потенциометр без возврата в центральное положение (т.е.не джойстик) предположим что ручка уже была случайно повернута в этом месте ожидаем поворот ручки в центральное положение или сразу может ехать каретка?
     
  19. sanik

    sanik Гик

    Каретка может ехать сразу после включения, для случайности стоит концевик который остановит её, после остановки каретка ждет когда потенциометр будет повернут в обратном направлении, на видео видно работу датчика.
     
  20. lerik2703

    lerik2703 Гик

    ваше право )))) просто если будете устройством только вы то тогда да,а если одолжите кому нибудь то человек просто не поймет почему уже началась жизнь хотя он только включил установку :) у а в целом неясностей ещё много !