Jump to content

pndbr

Members
  • Content Count

    20
  • Joined

  • Last visited

Community Reputation

3 Обычный

About pndbr

  • Rank
    Новенький

Информация

  • Город
    Альметьевск

Электроника

  • Стаж в электронике
    1-2 года
  • Сфера радиоэлектроники
    Gps
  • Оборудование
    Lukey702,fluke175,ez5020

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Вам не показалось, многое я убрал в отдельные ф-ии для того чтобы удобнее было воспринимать код(недокод). И это почти первый мой код,и концептуальному подходу тут,пока неоткуда взяться. За этим я и обратился на форум,чтобы подпинывали в нужном направлении) Устройство имеет 3 кнопки выбора режима,2 с фиксацией(4н 4l) и одна сбрасывающая любую из них в режим (2h). Имеется привод вращающий исполнительный механизм от упора до упора влево и вправо. На этом механизме установлен энкодер на котором во время вращения есть 8 состояний. 3 из них соответствуют положениям кнопок 1- это режим 2н(первое крайнее) когда кнопки не нажаты или сброшены(состояние энк 1),и 4н и 4л(второе крайнее соответствующее енк 8). Из положения 2н мы можем перейти 4н и 4л(при условии срабатывания контакта кнтр) из 4н в 2н и 4л(при кнтр),из 4л мы можем перейти в 2н и 4н только при срабатывании контакта "кнтр". При срабатывании режимов 4н и 4л загораются соответствующие индикаторы . В выше написанной простыни я сначала опрашиваю текущее состояние энкодера каждые 50 мс по спец функции,дабы уйти от delay и записываю состояние чз маску и даю им значения от 1 до 8,потом опрашиваю кнопки 4н и 4л каждую секунду с антидребезгом в 150 мс,после исходя из текущего состояния энкодера и кнопок вращаю двигатель влево или вправо с 3 мя этапами контроля: 1- это контроль вращения не дольше 2-секунд(чтобы не сжечь в крайнем положении двигатель) 2- это контроль состояния режима энкодера соответствующего кнопке. 3- контроль контакта "кнтр"(дабы переключать только в безопасных режимах) Так же добавил аккумулятор ошибки,при ошибке переходов больше или равное 3 двигатель вращать перестаём,дабы не сжечь. В итоге в бесконечном цикле я опрашиваю состояние энкодера с частотой 50 мс и стояние кнопок каждую секунду и исходя из этих данных кручу двигатель в нужную сторону и зажигаю соответствующий режиму светодиод. Вот такая задача,с статьей я начал ознакамливаться, очень интересно, позже внесу поправки в свою простыню. Спасибо
  2. Спасибо за совет, прислушался я к Вам и накидал простыню кода.
  3. Здравствуйте. Записал все возможные комбинации в массив(кнопки и считывающий энкодер) подскажите пожалуйста как это можно красиво завернуть в код...с моими недознаниями получается ужас из кучи switch case или if else-ов спасибо спасибо и вам за ответ. Но 4 сигнала с энкодера + 2 кнопки + контрольный сигнал и возможными 60 (даже больше,не все возможные ошибки пока учел)комбинациями разрастаются в страшную мешанину в моих руках
  4. Провел работу над ошибками Пока снова много ерунды не написал,напишу часть.. так правильнее?
  5. еще раз спасибо попытался сделать таблицы состояний..это оказалось сложнее чем я думал. Не рассмотрел варианты ошибок на следящем устройстве. Устройство представляет собой дпт с следящим устройством(4 канала). у устройства есть 3 рабочих состояния 2H 4H 4L Устройство управляется 3 -мя кнопками, 2 - с фиксацией but4h but4l и одной кнопкой без фиксации - сбрасывающей эти кнопки . Также контакт contro контролирующий любой переход с режима и на режим 4L. but4h определение нажатия 4н but4l определения нажатия 4l flag4h флаг режима 4н flag4l флаг режима 4l control любой переход связанный с режимом 4l проходит через control таблица 1(опрос режима и кнопок) режим but4h | but4l | flag4h | flag4l | control | действие 2h 0 | 0 | 0 | 0 | - | опрос кнопок 2h 0 | 0 | 1 | 0 | - | 4H->2H 2h 0 | 0 | 0 | 1 | 1 | 4L->2H 2h 0 | 0 | 0 | 1 | 0 | вывод сообщения об ошибке - опрос кнопок 4h 1 | 0 | 1 | 0 | - | опрос кнопок 4h 1 | 0 | 0 | 1 | 1 | 4L->4H 4h 1 | 0 | 0 | 1 | 0 | вывод сообщения об ошибке - опрос кнопок 4h 1 | 0 | 0 | 0 | - | 2H->4H 4l 0 | 1 | 0 | 0 | 0 | вывод сообщения об ошибке - опрос кнопок 4l 0 | 1 | 0 | 0 | 1 | 2H->4L 4l 0 | 1 | 1 | 0 | 0 | вывод сообщения об ошибке - опрос кнопок 4l 0 | 1 | 1 | 0 | 1 | 4H->4L 4l 0 | 1 | 0 | 1 | - | вывод сообщения об ошибке - опрос кнопок err 1 | 1 | | опрос кнопок Таблица 2 (состояний) contr2 contr3 contr4 contr 5 - контакты следящего устройства режимов работы. contr2 contr3 contr4 contr 5 2h 0 1 0 1 4h 1 1 0 1 4l 0 0 1 1 таблица3 (переходов(без учета ошибок) ) RIGHT - крутим вправо LEFT - крутим влево start_contr2345 начальное положение test_contr2345 предварительное положение fin_contr2345 конечное положение tictok() задержка перед остановкой вращения RIGHT | LEFT | start_contr2345 | test_contr2345 | tictoc | fin_contr2 | flag4h | flag4l| 2H-4H 1 | 0 | 0101 | 1101 | 500 | 1100 | 1 | 0 | 2H-4L 1 | 0 | 0101 | 0011 | 100 | 0011 | 0 | 1 | 4H-2H 0 | 1 | 1100 | 1101 |100 | 0101 |0 | 0 | 4H-4L 1 | 0 | 1100 | 0011 |100 | 0011 |0 | 1 | 4L-2H 0 | 1 | 0011 | 1101 | 100 | 0101 |0 | 0 | 4l-4h 0 | 1 | 0011 | 1110 | 500 * | 1100 | 1 | 0 | Задержка при переходах на 4H обусловлена конструктивными особенностями режима 4Н (будет корректироваться на месте) график переходов состояний следящего устройства при вращении RIGHT 0101(2H) ->1101->1001->1101->1100(4H)->1100->0110->0111->0110->0111->0110->0011(4L) Положения 0101(2H) и 0011(4L) являются крайними и двигатель дальше не крутит. Таблицы получились не к черту,но хотябы свои наработки изложил..и самому стало яснее) Спасибо и Вам @parovoZZ Но тут я добавил еще зависимость положения лап от цвета,и в зависимости от положения лап он не всегда может окраситься в нужный цвет.А только при определенном положении лап он может стать зеленым,красным или синим. А еще если он нарушит последовательность движения лапами(сделает лишний шаг) он не превратится из зеленого в красного,из красного в синего и . т .д. вот это и основная сложность,как лаконично и ясно решить эту задачу, знаний у меня не много,но научится хочется)
  6. Здравствуйте. Хочу разобраться с "конечным автоматом" Думаю эта тема будет очень полезна для начинающих ,а для меня особенно) Поморгать светодиодом,прочитать состояние с кнопки и вывести значение на индикатор могу. Как дело касается более сложного алгоритма - там нужен (желателен)конечный автомат..а так как язык Си ,язык высокого уровня абстракции то весьма сложно применить чьи-то наработки,т.к каждый пишет по своему,а примеров по запросу Гугла не так много... попрошу вас выложить свои наработки в этом направлении,чтобы было больше примеров,а так же была возможность задать вопрос касательно кода. P.s:Возникла необходимость отремонтировать мой старый автомобиль,схему заменяющую на реле я собрал. Но захотелось более технологичного решения на МК авр, попытавшись написать код,я зашёл в тупик,опытные участники подсказали что лучший вариант - конечный автомат. Спасибо за внимание, надеюсь на помощь.
  7. 400 р, минимум 2 шт в одни руки. Ап
  8. Продам б/у конденсаторы. 450р шт. В наличии 5 шт. Отправлю транспортной.
  9. Про подавления дребезга в курсе,,но это я оставил на потом) Мне как раз нужны были советы относительно осного алгоритма,как реализовывать подобные задачи.. Спасибо за ссылки и совет и за то что рассмотрели это мракобесие) Спасибо, а то я ломал голову почему не правильно работала написанная мной конструкция)
  10. здравствуйте. я тут набыдлокодил..с си знакомство только начал,да и вообще с языками программирования пытался вставить как код,но выдает ошибку,видимо плохой код) прошу Вас указать на критичные ошибки. это только заготовка,усложнять задержками и таймерами буду позже,пока главное отладить быдлокод на этом этапе.. спасибо за внимание. сильно не пинать,только учусь,..)
  11. Здравствуйте. Решил собрать свой первый металлоискатель,точнее 2 - себе и жене. Остановился на квазаре арм и терминаторе. Стоит ли собирать 2 разных прибора?или лучше 2 одинаковых. Цели- золотые украшения в песке,ну и монеты в чернозёме, так же было бы хорошо с хорошей чуйкой на медь,у нас очень много зарытого отключенного медного кабеля(но посчитав форум я понял что с медью не все так просто).прошу совета. Спасибо.
  12. Спасибо за эту тему,прикупил два блока,один из них поселил в гараж,в качестве универсального бп. Вместо резистров впаял накрученные на резисторе 15 см куски медного провода,знаю не лучший вариант,но работает . Показомер интересный,если есть исходники прошивки буду признателен. Но я бы добавил в первую строку и цифровое значение тока.
  13. Не поленился и разобрал готовую gsm антенну,при желании можно развести односторонюю палатку и не покупать готовые решения
×
×
  • Create New...