Ну, с радиаторами проблем нет!!! Их полно! Жду с нетерпением поездки на радиорынок.
Кстати, крутил стандартными библиотвеками свои улн2003 и движки 28bjy-48, которые купил на эбее, так сказать для обучения. Так вот, грю ему сделать 100 шагов в направлении вперед, и 100 назад, а он, гад, крутится постоянно в одном направлении. А когда пытался присобачить уже новые движки, те для которых ща буду драйвер делать, то те отлично - туда-сюда и никаких проблем. Не правильно подключены обмотки?
Я помню, что нужно программу под другой пороц переписать... Даже проект в VS создан, доки скачаны... не запутаться и переназначить порты ввода-вывода с прерываниями (главное)
Вы имеете ввиду сам двигатель, то есть, его обмотки? Мотор использую EM-181 TYPE 17PM-H005-P2VA, Транзисторы я взял КТ972Б, выпрямительные диоды 1N5822, один конденсатор 3300 16V, с ним резистор на 200 Ом и резисторы в базы по 750 Ом. На это все дело подается 12V от компьютерного БП!
Все это хозяйство собрал временно на плате прототипирования, есть подозрение, что может контакты где-то плохие. Сегодня попробую спаять на печатной плате, может поможет. На Эмиттеры я подаю "-", правильно? и выпрямительные диоды я соединяю минусом к минусу конденсатора?
собирал я ее давно, точно не помню, конечно, да и в электронике не силен сообо. Но вот проблема долго была подобная - моторчики не крутились, оказалось что моя логика шла в разрез с той, что на схеме и двигатель почему-то подключался не так, как казалось н первый момент :) В общем перетыкав всяко-разно обмотки - нашел как правильно его подключать.
Поначалу у меня он тоде только гудел либо подергивался.
сегодня вечером нормально спаяю, и проверю еще раз. Здается мне, что на макетке где-то не дожимают контакты... Хотя вчера до 12 ночи издевался над схемой как мог! :)
К сожалению, я сейчас на работе, и схему не сфоткал (сфотаю вечером, выложу). Но схема такая, могу на память рассказать.
4шт - КТ972Б, к БАЗАМ каждого, подключил резисторы на 750 Ом, они же идут к ардуинке, к пинам 8,9,10,11.
Эмитеры соеденены меж собой и подключены к МИНУСу.
От коллекторов контакты идут к обмоткам двигаетля, и на каждый колектор, каждого КТ872Б подходят АНОДы выпрямителей, КАТОДы которых, соеденены между собой и подключеный к МИНУСу конденсатора 3300мкф 16V и одному концу резистора на 200 Ом. Плюс конденсатора и второй вывод резистора, подключены к +12V.
Может имеет значение какой стороной подключать резисторы? Ну схема реально простая, после 5 раз сборки, должно было заработать.
Скетч самый стандартный выбрал, для наглядности тот что крутит вал "туда-сюда":
#include <Stepper.h>
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8,9,10,11);
void setup() {
// set the speed at 60 rpm:
myStepper.setSpeed(60);
// initialize the serial port:
Serial.begin(9600);
}
void loop() {
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}
На всякий пожарный, прикрепил даташит на двигатель, который смог найти. (папка на ДропБоксе) .
Думаю, что описал не хуже чем сфоткал! ) Простите, если отвлекаю глупыми вопросами.
это электрлитический. Батарейка в общем. Нужен простой. Трубчатый или плоский керамический. Для начала попробуй убрать электролит вообще, если нет чего постаивть заместо. Может и так поедет.
Общий блока питания (-12В) и общий ардуины должны быть соединены! Иначе остается незамкнутой цепь управления "выход ардуино" - "резистор" - "транзистор" - "общий провод ардуино"
Ох ты ж ёлки-маталки..... )) В этом то и вся загвоздка скорее всего.
Значит, я беру пин ардуины GND и Минус от БП и соединяю.
СПАСИБО вам огромное. жду окончания дня и быстро домой дальше паять.
Кстати. у меня по-моему дома несколько пакетов с керамическими конденсаторами (такие желтые, маленькие, с циферками разными - 103, 104 и т.п.) могут подойти?
СПАСИБО ОГРОМНОЕ!!! Все заработало! сделал общий минус и все с пол тычка.!!! Немного греются при 12В транзисторы, но я прицеплю сейчас радиатор и все будет зер гуд!
AlexFisher, если вас не затруднит, и когда будет свободная минутка, могу ли я попросить вас подредактировать вашу програму для подключения двигателей по 4-м контактам? я сам этого сделать не смогу. Я пока только Ось Х и У буду использовать. ось Z буду делать позже.
Ну наконец-то приехали EasyDriver v4.4. Вот, решил покрутить стандартными примерами свои моторы. Все бы ничего, только никак не могу понять, как управлять режимами шага.
MS1
MS2
Resolution
low
low
Full Step (2 phase)
high
low
Half step
low
high
Quarter step
high
high
Eight step
На сайте драйвера нашел таблицу, но не понятно что нужно делать с этими выходами MS1 и MS2? Если один движек подключен - то крутится нормально, а если через ассел-степпер, то как то они жостко проскакивают шаги... При инициализации моторов в Ассел-Степпер, что означает еденица перед заданием пинов? и в примерах стоит какая-то заоблочная скорость вращения.
AccelStepper stepper1(1, 9, 8);
AccelStepper stepper2(1, 7, 6);
Необходимо как то замыкать эти пины или в самом скетче описывать режим шага?
Ага, примерно понял! А если я MS1 и MS2 подключу к пинам Ардуины и скажу им, к примеру, LOW, LOW то у меня будет работать полный шаг? как то так.. Это будет применимо на библиотеке Ассел Степпер?
Спасибо! Буду сегодня пробовать. Не подскажите, нет ли часом описания ИзиДрайвера на русском языке где-то? Так туговато у мну с переводом.. или тока методом научного тыка... Кстати, AlexFisher, так я и не укумекал до конца, как тот подстроечный транзистор правильно выставлять на Изи Драйвере, чтоб ток понизить... Крутил-вертел, никакой разницы. как проверить что я выставил на нем?
Господа, выручайте! Спалил или нет? При заливке очередного скетча, сильно нагрелась Атмега328 на Ардуино УНО после, сказало что порт занят... выключил сразу... Включаю и теперь постоянно при заливке пишет - avrdude: stk500_getsync(): not in sync: resp=0x00 при этом сильно греется микруха. Ничего не происходит, но пишет: Заливка выполнена.
Жаль... Придется ждать новую плату. Я уже примерно понял, что я сделал не так. :( Ладно, что ж поделаешь.
Может схожу на радио рынок, посмотрю есть ли в продаже Atmega 328p или ее замена ничего не даст, так как я задел еще что-то? Просто смотрю на цену самого чипа, так его стоимость не намного ниже новой Ардуины УНО! ((
Понял! Благодарю за совет. Тогда буду заказывать еще один. А пока, все прикручу да припаяю, подготовлю к приезду новой платы... времени жалко, и так его совсем мало.
Под ардуино - сразу не получилось, только под 2560, который на МЕГЕ стоит... Под ардуину - это сначала писать алгоритм на основе программы, потом новую программу по алгоритму (еще та задача). Любой другой подход - это костыль, и в отладке проблема.
Что- то я не понял... Не находите исходный проект, а с чем Вы тогда работаете ? Или Вы про что- то другое ? Вы же хотели попробовать переписать, проект 644, для Arduino 2560...
Разница в том, какие порты (ноги) Вы можете использовать, а какие нет. У процессора можно использовать все (разводка платы - Ваша головная боль соответственно), у дуины - только то, что выведено. И выведено это так, как было удобно разработчику. По методологии ардуино управление вводом-выводом идет "поножно" - то есть одновременно - только одна нога, при этом постоянно идет вычисление, где же, на каком порту, какая нужна маска для этой ноги. Удобно конечному пользователю при раработке программы, потеря в быстродействии существенная.
Ваша же программа изначально "правильная", управление идет сразу всем портом (по 8 ног), функции табличные - чтобы время на расчеты не тратить... Поэтому применить вместо атмеги644 адуино2560 очень не просто.
Давайте поступим так:
1. изучите PIN-mapping arduino
2. разработайте схему с процом или адуиной вместо проца - как хотите (тлько учтите, что сигналы прерываний должны остаться на ногах с прерываниями, логические группы сигналов, использующие ноги одного порта должны остаться на одном порту и желательно - в той же битовой последовательности); мне пришлите таблицу соответсвий сигнал-нога644-нога_новая. Я заменю прямой доступ в программе подпрограммами, в которых будет происходить замена. Подпрограммы будут инлайновыми, возможно, ассемблерными, чтобы не тратили зря процессорное время.
Еду на радиорынок в пятницу, подскажите, что за выпрямительные диоды стоят на схеме #331, какие брать?
Я остановился таки на КТ972А, тока в 4А хватит думаю за глаза.
Только стоит поставить на радиатор, хотя бы на небольшой.
Диоды любые на 2 А. Скажем, 1N5822.
Спасибо вам большое, AlexFisher!!!
Ну, с радиаторами проблем нет!!! Их полно! Жду с нетерпением поездки на радиорынок.
Кстати, крутил стандартными библиотвеками свои улн2003 и движки 28bjy-48, которые купил на эбее, так сказать для обучения. Так вот, грю ему сделать 100 шагов в направлении вперед, и 100 назад, а он, гад, крутится постоянно в одном направлении. А когда пытался присобачить уже новые движки, те для которых ща буду драйвер делать, то те отлично - туда-сюда и никаких проблем. Не правильно подключены обмотки?
28bjy-48 - биполярный движек, его к улн-ке не прикрутишь. Ему нужна мостовая схема.
Эта схема расчитана на униполярный двигатель (у которого выводов не менее 5, бывает 4, 5, 6 или 8)
Не забудте про резисторы в базы транзисторов.
Что ж они, негодяи, тогда его в комплекте с улн-ками мне втюхали!! :)
Да, резисторы записал. возьму разных номиналов на всяк пож.
AlexFisher, что- нибудь скажете ?
AlexFisher, что- нибудь скажете ?
А чтосказать? 8 марта. От меня-то жена не ушла :)
Сегодня, надеюсь, заказчик примет программу...
Я помню, что нужно программу под другой пороц переписать... Даже проект в VS создан, доки скачаны... не запутаться и переназначить порты ввода-вывода с прерываниями (главное)
Ваша доля тоже есть, в том что, моя ушла... Когда же мне ожидать, счастья то ?
Собрал схемку из 331 поста, и так и сяк крутил - не работает!! Движок гудит, но ни одного шага не сделал... (((
Что-то до меня не дошло. Мы к первой схеме из 331 поста, подключаем улн2003 или только верхняя схема должна работать?
если гудит - то может неправильно подключен быть.
Вы имеете ввиду сам двигатель, то есть, его обмотки? Мотор использую EM-181 TYPE 17PM-H005-P2VA, Транзисторы я взял КТ972Б, выпрямительные диоды 1N5822, один конденсатор 3300 16V, с ним резистор на 200 Ом и резисторы в базы по 750 Ом. На это все дело подается 12V от компьютерного БП!
Все это хозяйство собрал временно на плате прототипирования, есть подозрение, что может контакты где-то плохие. Сегодня попробую спаять на печатной плате, может поможет. На Эмиттеры я подаю "-", правильно? и выпрямительные диоды я соединяю минусом к минусу конденсатора?
собирал я ее давно, точно не помню, конечно, да и в электронике не силен сообо. Но вот проблема долго была подобная - моторчики не крутились, оказалось что моя логика шла в разрез с той, что на схеме и двигатель почему-то подключался не так, как казалось н первый момент :) В общем перетыкав всяко-разно обмотки - нашел как правильно его подключать.
Поначалу у меня он тоде только гудел либо подергивался.
Проверяйте монтаж. Для теста нужно использовать стандартную библиотеку (инициализация на 4 выхода)
сегодня вечером нормально спаяю, и проверю еще раз. Здается мне, что на макетке где-то не дожимают контакты... Хотя вчера до 12 ночи издевался над схемой как мог! :)
Не работает. :(
Приведите полную схему и скетч - подумаем.
К сожалению, я сейчас на работе, и схему не сфоткал (сфотаю вечером, выложу). Но схема такая, могу на память рассказать.
4шт - КТ972Б, к БАЗАМ каждого, подключил резисторы на 750 Ом, они же идут к ардуинке, к пинам 8,9,10,11.
Эмитеры соеденены меж собой и подключены к МИНУСу.
От коллекторов контакты идут к обмоткам двигаетля, и на каждый колектор, каждого КТ872Б подходят АНОДы выпрямителей, КАТОДы которых, соеденены между собой и подключеный к МИНУСу конденсатора 3300мкф 16V и одному концу резистора на 200 Ом. Плюс конденсатора и второй вывод резистора, подключены к +12V.
Может имеет значение какой стороной подключать резисторы? Ну схема реально простая, после 5 раз сборки, должно было заработать.
Скетч самый стандартный выбрал, для наглядности тот что крутит вал "туда-сюда":
На всякий пожарный, прикрепил даташит на двигатель, который смог найти. (папка на ДропБоксе) .
Думаю, что описал не хуже чем сфоткал! ) Простите, если отвлекаю глупыми вопросами.
Конденсатор вроде не электролит нужен, на 3300 пкф
Вот такой конденсатор, нашел картинку в гугле
Схема не полная. (память выборочная ;) )
Еще должно быть:
1. общий ардуино - минус 12 вольт
2. +12 вольт - общий вывод обмоток мотора
Это есть?
Кстати, резистор с конденсатором можно выбросить, подключить катоды диодов прямо к +12
это электрлитический. Батарейка в общем. Нужен простой. Трубчатый или плоский керамический. Для начала попробуй убрать электролит вообще, если нет чего постаивть заместо. Может и так поедет.
Ой, сорри... память немного сбойнула! :)
Да, +12 на общий провод двигателя есть!
А что означает 1. общий ардуино - минус 12 вольт ?? Ардуина от ноута питается, а к схеме подходят свои +12 и МИНУС от БП!
С конденсатором понял! Попробую без, либо выколупаю где-то
минус от БП будет общим.
Общий блока питания (-12В) и общий ардуины должны быть соединены! Иначе остается незамкнутой цепь управления "выход ардуино" - "резистор" - "транзистор" - "общий провод ардуино"
Ох ты ж ёлки-маталки..... )) В этом то и вся загвоздка скорее всего.
Значит, я беру пин ардуины GND и Минус от БП и соединяю.
СПАСИБО вам огромное. жду окончания дня и быстро домой дальше паять.
Кстати. у меня по-моему дома несколько пакетов с керамическими конденсаторами (такие желтые, маленькие, с циферками разными - 103, 104 и т.п.) могут подойти?
103 это вроде 1000. типо 10 в 3 степени если правильно помню :) На советских так цифрами и писалось 4700, 3300
Ааа.. понял! Ща на вики зайду почитаю про Фарада :)
103 это вроде 1000. типо 10 в 3 степени если правильно помню :) На советских так цифрами и писалось 4700, 3300
103 - это 10000 пФ или 0,01 мкФ
Последняя цифра - количество нулей, значение в пикофарадах.
а мне нужно 3300... это должен быть типа 332? ))
а мне нужно 3300... это должен быть типа 332? ))
Именно так. Перечитайте мой пост выше (#370), я предлагаю вместо конденсатора короткое замыкание :) Это будет нормально, если диоды "правильные".
СПАСИБО ОГРОМНОЕ!!! Все заработало! сделал общий минус и все с пол тычка.!!! Немного греются при 12В транзисторы, но я прицеплю сейчас радиатор и все будет зер гуд!
AlexFisher, если вас не затруднит, и когда будет свободная минутка, могу ли я попросить вас подредактировать вашу програму для подключения двигателей по 4-м контактам? я сам этого сделать не смогу. Я пока только Ось Х и У буду использовать. ось Z буду делать позже.
ОК. Сообщу, когда сделаю. Там немного править.
Ну наконец-то приехали EasyDriver v4.4. Вот, решил покрутить стандартными примерами свои моторы. Все бы ничего, только никак не могу понять, как управлять режимами шага.
На сайте драйвера нашел таблицу, но не понятно что нужно делать с этими выходами MS1 и MS2? Если один движек подключен - то крутится нормально, а если через ассел-степпер, то как то они жостко проскакивают шаги... При инициализации моторов в Ассел-Степпер, что означает еденица перед заданием пинов? и в примерах стоит какая-то заоблочная скорость вращения.
Необходимо как то замыкать эти пины или в самом скетче описывать режим шага?
По умолчанию, если ничего ко входам не подключать, то там "High" - то есть будет 1/8 шага.
"1" в качестве первого параметра задает режим "Step/Dir"
Скорости нужно подбирать экспериментально - чтобы не пропускались шаги.
Ага, примерно понял! А если я MS1 и MS2 подключу к пинам Ардуины и скажу им, к примеру, LOW, LOW то у меня будет работать полный шаг? как то так.. Это будет применимо на библиотеке Ассел Степпер?
да
Спасибо! Буду сегодня пробовать. Не подскажите, нет ли часом описания ИзиДрайвера на русском языке где-то? Так туговато у мну с переводом.. или тока методом научного тыка... Кстати, AlexFisher, так я и не укумекал до конца, как тот подстроечный транзистор правильно выставлять на Изи Драйвере, чтоб ток понизить... Крутил-вертел, никакой разницы. как проверить что я выставил на нем?
Господа, выручайте! Спалил или нет? При заливке очередного скетча, сильно нагрелась Атмега328 на Ардуино УНО после, сказало что порт занят... выключил сразу... Включаю и теперь постоянно при заливке пишет - avrdude: stk500_getsync(): not in sync: resp=0x00 при этом сильно греется микруха. Ничего не происходит, но пишет: Заливка выполнена.
:( Тока этого не хватало. Можно как то проверить?
Скорее всего спалил. Наверно, был где-то коротыш.
Жаль... Придется ждать новую плату. Я уже примерно понял, что я сделал не так. :( Ладно, что ж поделаешь.
Может схожу на радио рынок, посмотрю есть ли в продаже Atmega 328p или ее замена ничего не даст, так как я задел еще что-то? Просто смотрю на цену самого чипа, так его стоимость не намного ниже новой Ардуины УНО! ((
С чипом лучше не заморачиваться - нет гарантии, что качественно поменяете, там нет бутлоадера...
Понял! Благодарю за совет. Тогда буду заказывать еще один. А пока, все прикручу да припаяю, подготовлю к приезду новой платы... времени жалко, и так его совсем мало.
AlexFisher, ну если не получается под Arduino переписать, может под 1284 сможете переписать ?
Ну не прилично как- то получается...
Под ардуино - сразу не получилось, только под 2560, который на МЕГЕ стоит... Под ардуину - это сначала писать алгоритм на основе программы, потом новую программу по алгоритму (еще та задача). Любой другой подход - это костыль, и в отладке проблема.
Доку на 1284 посмотрю, может на него даже проще.
Ну хорошо, подожду. Спасибо.
Ну хорошо, подожду. Спасибо.
Что- то я не понял... Не находите исходный проект, а с чем Вы тогда работаете ? Или Вы про что- то другое ? Вы же хотели попробовать переписать, проект 644, для Arduino 2560...
Все нашлось. Просто тупил после сильного недосыпа сильно тупил.
Только я хотел переписать не для aduino2560 а для atmega2560 - разница все же есть.
Я согласен, что разница есть. Только я в ней мало чего понимаю. Так что, есть надежда, что получится на Arduino запустить мой проект ?
Разница в том, какие порты (ноги) Вы можете использовать, а какие нет. У процессора можно использовать все (разводка платы - Ваша головная боль соответственно), у дуины - только то, что выведено. И выведено это так, как было удобно разработчику. По методологии ардуино управление вводом-выводом идет "поножно" - то есть одновременно - только одна нога, при этом постоянно идет вычисление, где же, на каком порту, какая нужна маска для этой ноги. Удобно конечному пользователю при раработке программы, потеря в быстродействии существенная.
Ваша же программа изначально "правильная", управление идет сразу всем портом (по 8 ног), функции табличные - чтобы время на расчеты не тратить... Поэтому применить вместо атмеги644 адуино2560 очень не просто.
Давайте поступим так:
1. изучите PIN-mapping arduino
2. разработайте схему с процом или адуиной вместо проца - как хотите (тлько учтите, что сигналы прерываний должны остаться на ногах с прерываниями, логические группы сигналов, использующие ноги одного порта должны остаться на одном порту и желательно - в той же битовой последовательности); мне пришлите таблицу соответсвий сигнал-нога644-нога_новая. Я заменю прямой доступ в программе подпрограммами, в которых будет происходить замена. Подпрограммы будут инлайновыми, возможно, ассемблерными, чтобы не тратили зря процессорное время.