Я реально минуту тупил,думал одна переменная и меньше и больше нуля должна быть🤣
Конечно можно,на то программист и существует.
Как думаете,жестянщик и моторист возьмут в ремонт автомобиль,который попал под поезд? Или авиабомбу прям на крышу уронили.
Ваш код это и есть автомобиль. Проще сказать какие строчки нормальные. С 1 по 7 можно оставить. Ну ещё 21 ничё так,пойдёт.
Строка 9 - здесь нужно указать, какой уровень является активным. Судя по коду, - высокий. Это нестандартное решение, поэтому тем более следует указать в комментариях.
Строки 19 и 22 - эти переменные нигде кроме loop не используются, поэтому лучше их там и описать. Вторую - как static.
Строка 37 - комментарий не соответствует тому, что в коде. Под “нажали” обычно подразумевается переход из ненажатого состояния в нажатое, а в коде анализируется само состояние, а не переход.
Я не понял смысла строк 41 и 43. Мне кажется, обе их можно удалить, а заодно удалить вообще все строки, где используется flag.
Строки 53-57 - странная конструкция. Обычно от шагового двигателя требуется, чтобы он прошел заданное количество шагов, у Вас же задается время работы безотносительно числа шагов. Сколько шагов он при этом сделает, можно лишь приблизительно оценить. Вы уверены, что это именно то, что Вам нужно?
Далее, этим циклом Вы формируете прямоугольный сигнал. Положительная часть периода при этом определяется константой frequerncy_X, а отрицательная лишь длительностью исполнения обрамляющих команд и составит от долей до единиц мкс в зависимости от выбранного микроконтроллера. Т.е. скважность такого сигнала более сотни, что не есть хорошо.
Сравнивая константы move_forward_time и move_back_time, замечаем, что они отличаются лишь на несколько единиц. Глядя на исходник, понимаем, что, скорее всего, автор пытался ручками так подобрать константы, чтобы количество шагов туда и обратно совпадало. Отмечу, что совпадать оно будет лишь для одного конкретного вида микроконтроллера, для другого - поплывет. Это к тому, что если надо обеспечить одинаковое количество шагов, то именно шаги и надо считать, а не затраченное время.
Строка 84. Я Вас предупреждал, но это Ваш выбор. Раз так, целесообразно будет выключать мотор и на всех остальных паузах в строках 59, 71.
Ну и последнее: как только будет запущен цикл движения, скетч не будет реагировать ни на какие внешние воздействия, например, нажатия кнопок и, кроме того, не сможет вообще больше выполнять какие-либо действия. Т.е. добавить к этому коду какую-нибудь функциональность в дальнейшем будет весьма проблематично.
Думаете, код без описания и документации кому-то нужен?
Вы, похоже, вообще не в курсе для чего и как пишутся программы, вам любой код чудом кажется.
Уважаемый lilik,поймите, те коды которые я нашел и сохранил решают мой вопрос по поводу управления двумя или тремя двигателями,пусть они даже последовательно будут вращаться,это не важно,так как я не говорил,что это станок 3д принтер,или 3д плоттер или какой нибудь другой 3д ЧПУ станок,там где я живу 3д ЧПУ принтеры не нужны, здесь нужны станки попроще и попроизводительнее,я увидел несколько похожих тем на форуме,может ребята заглянут в данную тему,кому то может понадобится, я не говорил,что это вот идеальный код для трех несинхронных моторов. Я вижу,что 17 строчку никто так не обьяснил, вы не поняли алгоритм логики того программиста ,который придумал данный код,пусть даже сделаный не по правилам программирования, и я напрмню,я сразу сказал,что в самом начале изучения данного языка программирования и да,для меня каждый код имеет свой неповторимый стиль
Что вам непонятно в 17 строке?
В медицине безумцев лечат в основном, а не пытаются понять их мир.
Условие в строке 43 не имеет смысла. Всё что там происходит нужно просто вставить в тело условия в строке 37.
146% пригодится. Вдруг кто не умеет блокирующий говнокод, а тут редчайший образец! Такого в интернетах бесплатно не сыскать. Еще найдете - выкладывайте тут. Может кому еще пригодится
Ладно вам. Поглумились и все довольны.
Александр,сформулируй задачу вообще. Желающие помогут по крупицам.
Я об этом писал пятью постами ранее, но ТС, похоже, застрял на строке 17. (а эта строка - пустая)
два,три шаговых двигателя для тпа станка(термо-пласт автоматический),один вращает шнек,второй соединяет и разьединяет две половинки одной формы,третий вставляет в форму металлическую шпильку по внутреннему диаметру формы,если форма полая(к примеру пластиковый соединительный тройник для капельных линий,шлангов),два из трех могут работать одновременно, третий-шнек вообще после двух(форма,шпилька).Шнековому мотору вообще необязательно быть под напряжением после совершения вращения на какое то количество оборотов(отключение фазы в период ожидания), два формовых мотора не знаю,откатятся от своих позиций или не откатятся,если отключить фазу в период ожидания,стопорный механизм делать это усложнять,если это моторам не вредно то данным двум моторам отключать фазу необязательно.Хочу сделать начальный ,небольшой тпа станок для формы обьемом до 100 см.кубических или меньше,чувствую это длительный процесс,запчасти,моторы дорого стоят.
Стоит попробовать нормальный драйвер, который не будет насиловать мотор в режиме простоя.
Ну тогда выбранный подход не подходит: у промышленного оборудования должна быть возможность остановить движение в любой момент (например, в случае аварии, попадания постороннего предмета и пр.). Значит, программа должна иметь принципиально другую структуру. Об этом упоминалось в постах 15, 20, 23. Здесь Вам важно понять, что слово “одновременно” подразумевает не только одновременную работу двух-трех двигателей, но и работу хотя бы одного двигателя одновременно с опросом кнопок, концевиков и прочих устройств, обеспечивающих безопасность.
Опять же, как сами шаговики, так и (тем более) подключенное к ним оборудование не могут сразу стартовать с большой скоростью, поэтому нужно предусмотреть движение с ускорением и замедлением.
Такую программу Вам ближайшие годы не одолеть, даже если будете ежедневно уделять этому время. Мне кажется, единственный разумный вариант - воспользоваться достаточно хорошо проработанными наработками для ЧПУ - там решено уже более 95% тех задач, без которых Ваш проект не будет удовлетворительно работать. И, кстати, Вы напрасно думаете, что это сильно избыточно для Вашего проекта. Избыточно там может быть только работа с SD картой, разбор файла и выделение из него команд управления аппаратурой, т.е. вряд ли больше 5-10% всего проекта.
Та программа, которая Вам нужна, стоит на несколько порядков дороже. Так что упоминание стоимости комплектующих не может вызывать ничего кроме недоумения.
а ничего, что усилие запирания форм должно быть 100 тонн?
или для электических ТПА 100cм3
к какому-нибудь Nema 17, или Nema 23 если прикрутить сервомашинку,всовывающую фиксирующий шплинт в шкив,препятствующий откату от позиций на форме,я думаю не трудно.На что способны по мощности Nema17 и Nema 23 видосиков в ютьюбе много,к тому же если к данным движкам прикрутить хороший редуктор,с конкретным передаточным числом…,то данные движки и поршень смогут двигать,вместо шнека ) ребят,я собираюсь идти от простого к сложному,от самого простого и дешевого тпа станочка к более сложному и дорогому,пусть это процесс длительный,но лучше идти в данном направлении,чем вообще бездействовать
ну то-есть для начало ознакомиться с технологией литья под давлением, думаешь конструкторы всего мира идиоты?
Понимаете,я даже не знаю как такая специальная программа называется,или какая нибудь похожая. Я понимаю,те кто умеют писать такие программы хотят на этом что заработать,вопрос сколько.В третьих,в интернете много самоучек,мастеров,которые сами собирали данные аппараты,естественно я могу и у них узнать,даром или за определенную плату,как получится,поживем увидем.Если можете что посоветовать,подсказать ,помочь,то я от советов не отказываюсь ,для того я на форуме открыл данную тему
Это похвально, только идти нужно не от станочка, а от светодиодика.
Для начала попытайтесь написать программу, которая одновременно мигает тремя светодиодами, каждым - со свой частотой.
А это и не нужно знать.
Невозможно научиться писать программы конкретно для станков, не умея писать для светодиодов, жк-экранов, датчиков температуры и давления, карт памяти и т.п.
Так что ибо Вы умеете, либо не умеете. Нельзя уметь наполовину.
То, на что замахнулись сейчас Вы стоит дороже, чем набор деталей для десятков-сотен станков. Вообще, изготовление прошивки может быть экономически целесообразным только в случае, если речь идет об изготовлении партий от тысячи и более.
Проблема в том, что Вы пока не обладаете квалификацией, чтобы суметь отличить это
от этого
а потому, найдя на просторах И-нета второе, считаете, что точно так же можно найти и первое.