Нужна помощь
- Войдите на сайт для отправки комментариев
Втр, 26/08/2014 - 09:58
Здраствуйте дорогие форумчани. Прошу помоши в написании програмного аналога шим по типу кода написаного ниже
digitalWrite(13, HIGH) delaymicosecond(temp_d) digitalWrite(13, LOW)
Суть вопроса состоит в том что мне нужно регулировать скфажность между импульсами от temp_d = 300 по установлную например temp_d = 10
Этот код необходим для управления AC SERVO DRIVER
while (1) { if (param_X != 0) {digitalWrite(p_imp_X, HIGH); --param_X;} else {digitalWrite(13, HIGH); param_X=param_X+0;} delayMicroseconds(t_delay_x); if (param_X != 0) {digitalWrite(p_imp_X, LOW); param_X=param_X+0;} else {digitalWrite(13, LOW); param_X=param_X+0;} if (temp_count_imp_y >= 100){ if (param_X+param_Y+param_Z > 10000) {if (t_delay_x > delay_l) {--t_delay_x;} else {t_delay_x=delay_l+0;t_delay_x=delay_l+0;t_delay_x=delay_l+0;}} else {if (t_delay_x <= def_delay) {++t_delay_x;} else {t_delay_x=def_delay+0;t_delay_x=def_delay+0;t_delay_x=def_delay+0;}} temp_count_imp_y = 0; } else { t_delay_x = t_delay_x+0; t_delay_x = t_delay_x+0; t_delay_x = t_delay_x+0; t_delay_x = t_delay_x+0; t_delay_x = t_delay_x+0; t_delay_x = t_delay_x+0; t_delay_x = t_delay_x+0; t_delay_x = t_delay_x+0; t_delay_x = t_delay_x+0; } ++temp_count_imp_y; if (param_X == 0) {break;} }
Код написан, в нём непонятка его работы тоесть когда задержка уменьшается до минимальной происходит рывок двигателя и тоже самое происходи при увеличении задержки. Вообщем БЕДА ребята помогите. Библиотека для управления шаговым двигателем неустраивает из за своей малой сокрости.
Буду рад любомй помощи.
Плохо что никто незнает как можно исправить проблему.
Ну тут как бы никто никому не должен. Захотят - ответят.
И переоформите код, иф елсе в строку ломают моск напополам.
Ну тут как бы никто никому не должен. Захотят - ответят.
И переоформите код, иф елсе в строку ломают моск напополам.
я пишу для экранов 600 точек но этот кадр чудо :)
ты тоже не смог постич сего замысла :)
пущай мне из ночного найдет косяк в ШИМ-е, если у него такой чудо экран. Когда на 768 экране откроешь сразу виден косяк сииметрично паралельности повторяльности
его код надо на моем экране с шириной 1600 по горизонтали смотреть
что-то прояснятся
и все равно мутно
А что у Вас этот блок делает?
А что у Вас этот блок делает?
как что это препод дал для изучения?
значит правильный код
а ну ка быстренько накинулись решили курсовую
Люди добрые я ниоткого ничего нетребую. Просто както не по себе читая форум сложилось впечетление что некоторые люди с Arduino просто спят в одной кровате.
Сразу скажу никакого препода нет и это не курсовая.
Этот участок кода.
Создаёт псевдо задержку когда условие ложное. Я думал что может из за этого рывок уменьшится на двигателе и даже вродебы его сглаживает но есть большое НО! даже когда я их добавляю ещё штук 50 дальше рывок не сглаживается.
И поповоду длиноты условий извините я просто програмирую на 2 мониторах с 55 диогональю и для меня такой вид условий больше устраивает. (На вкус и цвет серавно фломастеры разные)
Спят с ардуино. . Народ, мне кажется что он что то о нас знает.
а чем delay() не устраивает?
тоесть вместо той фигни что я написал при ложном условии поставить delayMicrosecons(2 или что то типо того ?). Но всёже когда я увеличил количество ложных выражений рывок на двигателе не уменьшился. Да я и толком не могу представить как я DelayMicroseconds могу заменить логическое выражение для выполнения условия как мне помнится уходит 3 такта а delayMicrosecons намого больше чем 3.
Но видать я слишком глубоко полез. (у меня догатка в том что рывок какраз происходит когда я достигаю минимальной задержки и где просто больше невыполняется условие и соответсвенно задерка ещё больше уменьшается...)
То есть, если выжать всё и взять сухой остаток, то вы делаете собственный ШИМ, который, при уменьшении скважности до значения X вызывает нервное подёргивание двигателя? Так? Или вы под "рывком" что-то иное подразумеваете?
То есть, если выжать всё и взять сухой остаток, то вы делаете собственный ШИМ, который, при уменьшении скважности до значения X вызывает нервное подёргивание двигателя? Так? Или вы под "рывком" что-то иное подразумеваете?
Да всё верно. Только в отличии от других реализаций ШИМ мене критично отсчитывать количество импульсов.
Или может кто знает как увеличить скорость в библиотеке AccelStepper. В ней что я только не делал но скорость оборота двигателей очень низкая.
Да и не будет у вас на шаговике высокая скорость с любой библиотекой. Шаговый двигатель для получения большой скорости нужно РАЗГОНЯТЬ.
Да и не будет у вас на шаговике высокая скорость с любой библиотекой. Шаговый двигатель для получения большой скорости нужно РАЗГОНЯТЬ.
Я в первом посте написал это не шаговый двигатель это Servo Motor с управление от AC Servo Driver Panasonic (на 5 киловат).
нормально
Может мне Lisec драйвера асинхронных трехфазных с енкодерами на 2 киловата присобачить к ардцуине?
А нука быстренько мне код написали еа Intel80386 на немецкой DR-DOS6.22 ?
Там датчики от Omron-а неужели не подключали номер по каталогу 12341239057812395012 ?
Я вот CAN шину опрашиваю а она отвечает быстро и сразу ось X включается и несется эти 120 килограм на меня.
Страшно.
я правильно делаю
count++++++
столько задержек хватит?
Деточка отойди от станка.
Эй на охране вы что спите?
Почему дети в опасной зоне роботов?
Мы так сразу поняли какая у вас схема, потому что мы с ней спим ночами.
... я просто програмирую на 2 мониторах с 55 диогональю и для меня такой вид условий больше устраивает. ...
и че?
У меня 4 монитора общим полем 1600+1600х1455+1455 это не значит что надо превышать стандартные 80 символов в тексте или 600 пикселей в графике.
Где интрукции читать? Ах да у меня код на всю область. А инструкция где-то там под слоями третьими...десятыми.
Ну молодцы обгадели как могли.
По поводу Lisec. У нас на заводе стоит Liseс (мойка, Экструдер, Первичная гермитизация и Порезочный стол) Мойка пока ещё работает на своих мозгах, а стол, Экструдер и первичную гермитизация я полностью перевёл на работу от ардуино+Raspberry PI и нафик выкинул стандартные ихние мозги. А вот с управлением AC SERVO DRIVER PANASONIC у меня получилась загвозка.
Да и вообще причём тут внешний вид кода если кому ненравится скопируйте и приведите его к той визуальной форме какая вас больше всего устраивает, и вообще код был приведён как примерочный я больше чем на 100% уверен что он ошибочный, и хотел бы узнать может кто сталкивался с такого рода проблемой и решил её.
Кто может занимался разработкой кода программного ШИМ с регулировкой скважности и отсчитывания количества импульсов.
И странно зачем писать в теме посты которы никак некасаются возникшего вопроса?
... я просто програмирую на 2 мониторах с 55 диогональю и для меня такой вид условий больше устраивает. ...
и че?
У меня 4 монитора общим полем 1600+1600х1455+1455 это не значит что надо превышать стандартные 80 символов в тексте или 600 пикселей в графике.
Где интрукции читать? Ах да у меня код на всю область. А инструкция где-то там под слоями третьими...десятыми.
Так выглядит лутше ?
софтварный шим
скважность конечно регулируется
перечитывать лень. вам просто нужно увеличить количество шимов или другая задача? если количество шимов только сколько надо и для чего. возможно есть более элегантное решение
софтварный шим
скважность конечно регулируется
перечитывать лень. вам просто нужно увеличить количество шимов или другая задача? если количество шимов только сколько надо и для чего. возможно есть более элегантное решение
Задача состоит в том чтобы отправлять миандр с плавным понижением длинны импульса до указанной и при достижении допустим Х-4000 импульсов начать плавное увеличение ширины импульса
ну тогда это почти то что вам нужно
нужно просто переделать ее и будет делать то что нужно
вы что сканер собираете?
Ну молодцы обгадели как могли.
По поводу Lisec. У нас на заводе стоит Liseс (мойка, Экструдер, Первичная гермитизация и Порезочный стол) Мойка пока ещё работает на своих мозгах, а стол, Экструдер и первичную гермитизация я полностью перевёл на работу от ардуино+Raspberry PI и нафик выкинул стандартные ихние мозги. А вот с управлением AC SERVO DRIVER PANASONIC у меня получилась загвозка.
Да и вообще причём тут внешний вид кода если кому ненравится скопируйте и приведите его к той визуальной форме какая вас больше всего устраивает, и вообще код был приведён как примерочный я больше чем на 100% уверен что он ошибочный, и хотел бы узнать может кто сталкивался с такого рода проблемой и решил её.
Кто может занимался разработкой кода программного ШИМ с регулировкой скважности и отсчитывания количества импульсов.
И странно зачем писать в теме посты которы никак некасаются возникшего вопроса?
GLASSBEL ?
да как бы не одну тонну стекла сьели
и ЧПУ не последний построил
кто знает твою схему
код писать можно как угодно
но под что?
дарю
и вот куда ты его всунешь?
перевожу на русский
Шаговый биполярный мотор для напольного станка с ЧПУ требует
1.разгон
2.рабочий ход и
3.торможение
4.удержание.
5 снятие напряжения(сервисный режим)
я правильно понял?
пока схемы твоего дравера мотора не будет в студии разовор ни о чем
щас произойдет
о чудо так в связке драйвер-мотор уже реализованы 1 и 3 пункты и там не импульсы надо анапрвления и шаги
ой ач то это за микрики на дравере
ой а что это за предохранитель на драйвере
но ничего продолжаем обусжать черти что
и так
о чем мы там
о милисекундах?
короче наймите меня я вам починю старые процы в станках
дарю
Если там сразу регистры портов дергать, то еще быстрее будет.
а зачем быстрее если даже задержка добавлена. слишком быстро шаговик может не успеть
а зачем быстрее если даже задержка добавлена. слишком быстро шаговик может не успеть
Анекдот про мужиков и японскую пилу знаешь? Вот затем и надо быстрее, что кругом все тупые, оригинальные мозги еле шевелят лапками, а мы ща на ардуино в 100 раз быстрее всё сделаем, сразу стока денег у нас будет, что мы даже отремонтировать станок сможем, который только что разломали.
вот вот. если слишком быстро будет просто пищать, но не будет крутится
вот вот. если слишком быстро будет просто пищать, но не будет крутится
Если станок пищит и не крутится, то значит мыши устали и хотят пить.
ТС почитай
http://darxton.ru/articles/cnc-diy/vybor-shagovogo-dvigatelya/
Вообще, я про накладные расходы при вызове digitalWrite, я не про увеличение частоты.
Вообще, я про накладные расходы при вызове digitalWrite, я не про увеличение частоты.
А это действительно настолько критичная часть?
Здраствуйте ещё раз. Не было возможности зайти на форум.
AC SERVO DRIVER управление происходит один в один как на шаговые двигатели (DIR, STEP, ENB).
функция перемещения переписал до вот такого вида
Но в итоге происходит тоже самое.
может кто сталкивался с Panasonic MFDDTA390003. Думаю что можно решить этот вопрос уменьшением количества импульсов на 1мм, сейчас что бы зделать передвижение на 1мм мне необходимо подать param_X = 50 импульсов. Документацию перечитывал уже несколько раз немогу понять где в параметрах можно отредактировать количество импульсов на оборот (На драйверах шагового двигателя есть такая байда можно выставить количество импульсов за 1 полный оборот, надеюсь и в серво драйвере тоже это можно зделать)
Ссылка на документацию:
http://industrial.panasonic.com/ww/i_e/25000/minas_a4_e/minas_a4_e.pdf
нельзя поменять количество импульсов за оборот. ну нельзя, это железо в моторе определяет количество шагов на оборот
единственное что можно это использовать микрошаг. 1/2 1/4 1/8
нельзя поменять количество импульсов за оборот. ну нельзя, это железо в моторе определяет количество шагов на оборот
единственное что можно это использовать микрошаг. 1/2 1/4 1/8
Извените я и имелл введу микрошаг.