Тема до сих пор актуальна, появилось время, продолжу заниматься, ПП готова и спаяна, готовлю ПО под заливку в АВР-ку. думаю скоро девайс будет готов и пойдет на обкатку
Добавил 1 марта 2012г.Добрый день всем, с праздником весны всех!
Вот отписываюсь по станку... Есть проблемы с составлением программы. ЕЕ написал, но так как нужно не работает, прошу помощи в разработке. У меня проблемы с циклами в проге, она работает только как что то одно. А надо:
1- при включении станка, проверяем стоИт ли ось в начальном положении.(если да то стоим, если нет крутим до начала)
2- при нажатии кнопок с индексом ru чтобы соблюдалась последовательность действий: клапан вверх(с фиксацией положения), задержка в 2 сек на подъем клапана,вот эта часть должна выполняться до нажатия клавиши клапан вниз (мотор по час(без фиксации), мотор против час (без фиксации),после полной остановки двиг-я запоминаем значение с энкодера (незнаю куда сохранить лучше?)), ждем нажатия клавиши клапан вниз (с фиксацией положения), ждем 2 сек спуск клапана. Все реле, кроме клапан вниз сбрасываются.
3- Ждем нажатия клавиши установка в 0. Крутим двигатель в любую сторону до срабатывания по фазе Z энкодера (она у него выдает на всем протяжении периода 1 оборота только 1 и в начале каждого оборота дает 0- думаю эту единицу использовать как начало координат, то есть она 0 обозначать должна (расчет и проверка энкодера дана с учетом оптопары - инвертора(поставил для согласования напряжений 5в и 12в), т.е. на энкодере на фазах все наоборот)).
4- Ждем нажатия кнопки авто (старт),поднимаем клапан, ждем 5 сек, ждем опять нажатие кнопки авто (старт), включаем двигатель, считываем значения с энкодера и сравниваем с запомненным, как только равны - стоп двигатель, ждем 1 сек (технологически требуется), опускаем клапан вниз, ждем 2 сек, ждем нажатие кнопки установка в 0, нажали выполняем 3 пункт. Останавливаемся, ждем нажатия кнопки авто (старт), выполняем 4 пункт заново.
5- Если нажата любая кнопка из ручного управления (ru m po, ru m pr, ru kl up, ru kl dn) при условии что режим авто и установка в 0 не выполняются в данный момент, сбрасываем значение запомненное с энкодера предыдущее в 0 и блокируем кнопку авто (старт), выполняем 1 пункт и 2 пункт и далее по пунктам.
В архивах схема станка в диптрейсе (как есть она сейчас) там нужна будет корректировка для подачи фазы А или В на общее прерывание по порту Е (INT2).
Подготовил выводы под подключение дисплея для вывода значений с энкодера и текущего состояния станка (но как это сделать еще не придумал ???).
Добавлю щас чертеж одного полного оборота энкодера со всех трех фаз...в протеусе(такие же сигналы и в реале).
Набросал прошивку, но не получилась, и да как прикрутить в случае зависания контроллера WATCHDOG. Читаю даташит, но пока мало что дал.
И придется ждать любой помощи от Вас или хоть пинка в нужную сторону, с программированием еще слабоват, потому что есть вопросы на которые пояснения пока не нахожу... (простите за оффтоп...).