ЧПУ на arduino

xxx_87
Offline
Зарегистрирован: 15.11.2012

Еду на радиорынок в пятницу, подскажите, что за выпрямительные диоды стоят на схеме #331, какие брать? 

Я остановился таки на КТ972А, тока в 4А хватит думаю за глаза.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Только стоит поставить на радиатор, хотя бы на небольшой.

Диоды любые на 2 А. Скажем, 1N5822.

xxx_87
Offline
Зарегистрирован: 15.11.2012

Спасибо вам большое, AlexFisher!!!

Ну, с радиаторами проблем нет!!! Их полно! Жду с нетерпением поездки на радиорынок. 

Кстати, крутил стандартными библиотвеками свои улн2003 и движки 28bjy-48, которые купил на эбее, так сказать для обучения. Так вот, грю ему сделать 100 шагов в направлении вперед, и 100  назад, а он, гад, крутится постоянно в одном направлении. А когда пытался присобачить уже новые движки, те для которых ща буду драйвер делать, то те отлично - туда-сюда и никаких проблем. Не правильно подключены обмотки? 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

28bjy-48 - биполярный движек, его к улн-ке не прикрутишь. Ему нужна мостовая схема.

Эта схема расчитана на униполярный двигатель (у которого выводов не менее 5,  бывает 4, 5, 6 или 8)

Не забудте про резисторы в базы транзисторов.

xxx_87
Offline
Зарегистрирован: 15.11.2012

Что ж они, негодяи, тогда его в комплекте с улн-ками мне втюхали!! :)

Да, резисторы записал. возьму разных номиналов на всяк пож. 

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

AlexFisher, что- нибудь скажете ?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

mat пишет:

AlexFisher, что- нибудь скажете ?

А чтосказать? 8 марта. От меня-то жена не ушла :)

Сегодня, надеюсь, заказчик примет программу...

Я помню, что нужно программу под другой пороц переписать... Даже проект в VS создан, доки скачаны... не запутаться и переназначить порты ввода-вывода с прерываниями (главное)

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Ваша доля тоже есть, в том что, моя ушла... Когда же мне ожидать, счастья то ?

xxx_87
Offline
Зарегистрирован: 15.11.2012

Собрал схемку из 331 поста, и так и сяк крутил - не работает!! Движок гудит, но ни одного шага не сделал... (((

Что-то до меня не дошло. Мы к первой схеме из 331 поста, подключаем улн2003 или только верхняя схема должна работать?

achuser
Offline
Зарегистрирован: 02.03.2013

если гудит - то может неправильно подключен быть. 

xxx_87
Offline
Зарегистрирован: 15.11.2012

Вы имеете ввиду сам двигатель, то есть, его обмотки? Мотор использую EM-181 TYPE 17PM-H005-P2VA, Транзисторы я взял КТ972Б, выпрямительные диоды 1N5822, один конденсатор 3300 16V, с ним резистор на 200 Ом и резисторы в базы по 750 Ом. На это все дело подается 12V от компьютерного БП! 

Все это хозяйство собрал временно на плате прототипирования, есть подозрение, что может контакты где-то плохие. Сегодня попробую спаять на печатной плате, может поможет. На Эмиттеры я подаю "-", правильно? и выпрямительные диоды я соединяю минусом к минусу конденсатора? 

 

achuser
Offline
Зарегистрирован: 02.03.2013

собирал я ее давно, точно не помню, конечно, да и в электронике не силен сообо. Но вот проблема долго была подобная - моторчики не крутились, оказалось что моя логика шла в разрез с той, что на схеме и двигатель почему-то подключался не так, как казалось н первый момент :) В общем перетыкав всяко-разно обмотки - нашел как правильно его подключать.

Поначалу у меня он тоде только гудел либо подергивался.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Проверяйте монтаж. Для теста нужно использовать стандартную библиотеку (инициализация на 4 выхода)

xxx_87
Offline
Зарегистрирован: 15.11.2012

сегодня вечером нормально спаяю, и проверю еще раз. Здается мне, что на макетке где-то не дожимают контакты... Хотя вчера до 12 ночи издевался над схемой как мог! :)

xxx_87
Offline
Зарегистрирован: 15.11.2012

Не работает. :(

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Приведите полную схему и скетч - подумаем.

xxx_87
Offline
Зарегистрирован: 15.11.2012

К сожалению, я сейчас на работе, и схему не сфоткал (сфотаю вечером, выложу). Но схема такая, могу на память рассказать.

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); 
}

На всякий пожарный, прикрепил даташит на двигатель, который смог найти. (папка на ДропБоксе) .

Думаю, что описал не хуже чем сфоткал! ) Простите, если отвлекаю глупыми вопросами. 

achuser
Offline
Зарегистрирован: 02.03.2013

Конденсатор  вроде не электролит нужен, на 3300 пкф

xxx_87
Offline
Зарегистрирован: 15.11.2012

Вот такой конденсатор, нашел картинку в гугле

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Схема не полная. (память выборочная ;) )

Еще должно быть:

1. общий ардуино - минус 12 вольт

2. +12 вольт - общий вывод обмоток мотора

Это есть?

Кстати, резистор с конденсатором можно выбросить, подключить катоды диодов прямо к +12

achuser
Offline
Зарегистрирован: 02.03.2013

это электрлитический. Батарейка в общем. Нужен простой. Трубчатый или плоский керамический. Для начала попробуй убрать электролит вообще, если нет чего постаивть заместо. Может и так поедет.

xxx_87
Offline
Зарегистрирован: 15.11.2012

Ой, сорри... память немного сбойнула! :)

Да, +12 на общий провод двигателя есть!

А что означает 1. общий ардуино - минус 12 вольт ?? Ардуина от ноута питается, а к схеме подходят свои +12 и МИНУС от БП!

С конденсатором понял! Попробую без, либо выколупаю где-то

achuser
Offline
Зарегистрирован: 02.03.2013

минус от БП будет общим. 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Общий блока питания (-12В) и общий ардуины должны быть соединены! Иначе остается незамкнутой цепь управления "выход ардуино" - "резистор" - "транзистор" - "общий провод ардуино"

xxx_87
Offline
Зарегистрирован: 15.11.2012

Ох ты ж ёлки-маталки..... )) В этом то и вся загвоздка скорее всего.

Значит, я беру пин ардуины GND и Минус от БП и соединяю.

СПАСИБО вам огромное. жду окончания дня и быстро домой дальше паять. 

 

Кстати. у меня по-моему дома несколько пакетов с керамическими конденсаторами (такие желтые, маленькие, с циферками разными - 103, 104 и т.п.) могут подойти?

achuser
Offline
Зарегистрирован: 02.03.2013

103 это вроде 1000. типо 10 в 3 степени если правильно помню :) На советских так цифрами и писалось 4700, 3300

xxx_87
Offline
Зарегистрирован: 15.11.2012

Ааа.. понял! Ща на вики зайду почитаю про Фарада :)

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

achuser пишет:

103 это вроде 1000. типо 10 в 3 степени если правильно помню :) На советских так цифрами и писалось 4700, 3300

103 - это 10000 пФ или 0,01 мкФ

Последняя цифра - количество нулей, значение в пикофарадах.

xxx_87
Offline
Зарегистрирован: 15.11.2012

а мне нужно 3300... это должен быть типа 332? ))

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

xxx_87 пишет:

а мне нужно 3300... это должен быть типа 332? ))

Именно так. Перечитайте мой пост выше (#370), я предлагаю вместо конденсатора короткое замыкание :) Это будет нормально, если диоды "правильные".

xxx_87
Offline
Зарегистрирован: 15.11.2012

СПАСИБО ОГРОМНОЕ!!! Все заработало! сделал общий минус и все с пол тычка.!!! Немного греются при 12В транзисторы, но я прицеплю сейчас радиатор и все будет зер гуд! 

AlexFisher, если вас не затруднит, и когда будет свободная минутка, могу ли я попросить вас подредактировать вашу програму для подключения двигателей по 4-м контактам? я сам этого сделать не смогу. Я пока только Ось Х и У буду использовать. ось Z буду делать позже. 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

ОК. Сообщу, когда сделаю. Там немного править.

xxx_87
Offline
Зарегистрирован: 15.11.2012

Ну наконец-то приехали 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);

Необходимо как то замыкать эти пины или в самом скетче описывать режим шага?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

По умолчанию, если ничего ко входам не подключать, то там "High" - то есть будет 1/8 шага.

"1" в качестве первого параметра задает режим "Step/Dir"

Скорости нужно подбирать экспериментально - чтобы не пропускались шаги.

xxx_87
Offline
Зарегистрирован: 15.11.2012

Ага, примерно понял! А если я MS1 и MS2 подключу к пинам Ардуины и скажу им, к примеру, LOW, LOW то у меня будет работать полный шаг? как то так.. Это будет применимо на библиотеке Ассел Степпер?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

да

xxx_87
Offline
Зарегистрирован: 15.11.2012

Спасибо! Буду сегодня пробовать. Не подскажите, нет ли часом описания ИзиДрайвера на русском языке где-то? Так туговато у мну с переводом.. или тока методом научного тыка... Кстати, AlexFisher, так я и не укумекал до конца, как тот подстроечный транзистор правильно выставлять на Изи Драйвере, чтоб ток понизить... Крутил-вертел, никакой разницы. как проверить что я выставил на нем?

xxx_87
Offline
Зарегистрирован: 15.11.2012

Господа, выручайте! Спалил или нет? При заливке очередного скетча, сильно нагрелась Атмега328 на Ардуино УНО после, сказало что порт занят... выключил сразу... Включаю и теперь постоянно при заливке пишет -  avrdude: stk500_getsync(): not in sync: resp=0x00 при этом сильно греется микруха. Ничего не происходит, но пишет: Заливка выполнена.

:( Тока этого не хватало. Можно как то проверить?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Скорее всего спалил. Наверно, был где-то коротыш.

xxx_87
Offline
Зарегистрирован: 15.11.2012

Жаль... Придется ждать новую плату. Я уже примерно понял, что я сделал не так. :( Ладно, что ж поделаешь. 

Может схожу на радио рынок, посмотрю есть ли в продаже Atmega 328p или ее замена ничего не даст, так как я задел еще что-то? Просто смотрю на цену самого чипа, так его стоимость не намного ниже новой Ардуины УНО! ((

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

С чипом лучше не заморачиваться - нет гарантии, что качественно поменяете, там нет бутлоадера...

xxx_87
Offline
Зарегистрирован: 15.11.2012

Понял! Благодарю за совет. Тогда буду заказывать еще один. А пока, все прикручу да припаяю, подготовлю к приезду новой платы... времени жалко, и так его совсем мало.

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

AlexFisher, ну если не получается под Arduino переписать, может под 1284 сможете переписать ?

Ну не прилично как- то получается...

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Под ардуино - сразу не получилось, только под 2560, который на МЕГЕ стоит... Под ардуину - это сначала писать алгоритм на основе программы, потом новую программу по алгоритму (еще та задача). Любой другой подход - это костыль, и в отладке проблема.

Доку на 1284 посмотрю, может на него даже проще.

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Ну хорошо, подожду. Спасибо.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

mat пишет:

Ну хорошо, подожду. Спасибо.

F исходный проект на 644? (что-то я у себя его не нахожу в почте...) Если так, то это одно и то же, только памяти больше.

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Что- то я не понял... Не находите исходный проект, а с чем Вы тогда работаете ? Или Вы про что- то другое ? Вы же хотели попробовать переписать, проект 644, для Arduino 2560...

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Все нашлось. Просто тупил после сильного недосыпа сильно тупил.

Только я хотел переписать не для aduino2560 а для atmega2560 - разница все же есть.

mat
mat аватар
Offline
Зарегистрирован: 05.07.2012

Я согласен, что разница есть. Только я в ней мало чего понимаю. Так что, есть надежда, что получится на Arduino запустить мой проект ?

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Разница в том, какие порты (ноги) Вы можете использовать, а какие нет. У процессора можно использовать все (разводка платы - Ваша головная боль соответственно), у дуины - только то, что выведено. И выведено это так, как было удобно разработчику. По методологии ардуино управление вводом-выводом идет "поножно" - то есть одновременно - только одна нога, при этом постоянно идет вычисление, где же, на каком порту, какая нужна маска для этой ноги. Удобно конечному пользователю при раработке программы, потеря в быстродействии существенная.

Ваша же программа изначально "правильная", управление идет сразу всем портом (по 8 ног), функции табличные - чтобы время на расчеты не тратить... Поэтому применить вместо атмеги644 адуино2560 очень не просто.

Давайте поступим так:

1. изучите PIN-mapping arduino

2. разработайте схему с процом или адуиной вместо проца - как хотите (тлько учтите, что сигналы прерываний должны остаться на ногах с прерываниями, логические группы сигналов, использующие ноги одного порта должны остаться на одном порту и желательно - в той же битовой последовательности); мне пришлите таблицу соответсвий сигнал-нога644-нога_новая. Я заменю прямой доступ в программе подпрограммами, в которых будет происходить замена. Подпрограммы будут инлайновыми, возможно, ассемблерными, чтобы не тратили зря процессорное время.