Вопросы новичка, подключение шаговика

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

по отзывам 400 - это предел для друины. Но для большой скорости нужно поднимать напряжение (лучше питать током) до 24 вольт

kadushkin
Offline
Зарегистрирован: 18.12.2011

Где бы взять еще эти 24В.... :)

Купил два шаговика. Первый 42BYGH801 - 12V

Второй мотор - 42BYGH301T8 на 12В, а пришел судя по размеру и количеству фаз (4 фазы) вроде 42BYGH401T8 на 2,4В.

И шаг какой-то странный 0,01

Вот не знаю какой же второй мотор, обозначения на нем нет.

Можно ли как-то определить тип шагового мотора, на какое он напряжение?

А если мотор на 2,4В от 12В если запитать не сгорит?

 

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

Да, шаг странный. Если верить табличке, то 36000 шагов на оборот :) Скорее всего опечатка и тут 0.01 от целого оборота, т.е. 100 шагов. А по поводу питания - почитайте мой ответ arduino.ru/forum/apparatnye-voprosy/para-voprosov-po-shagoviku

kadushkin
Offline
Зарегистрирован: 18.12.2011

Ну то есть я могу данный движок использовать.

Хорошо, теперь другая проблема, распиновка проводов

Обычно провода имеют цвет:

BLK - GRN

RED - BLU

 У меня:

RED - GRN

YEL - BLU

Попарно звонятся, имеют сопротивление 2,4Ом

Поключил, в итоге мотор стоит и дергается:

01	#include <Stepper.h>
02	int Motor2A1Pin = 50;// Контакт 50 для второго привода
03	int Motor2B1Pin = 51;// Контакт 51 для второго привода
04	int Motor2A2Pin = 52;// Контакт 52 для второго привода
05	int Motor2B2Pin = 53;// Контакт 53 для второго привода
06	Stepper Motor2(100, Motor2A1Pin, Motor2A2Pin, Motor2B1Pin,  Motor2B2Pin);
07	 
08	void setup()
09	{
10	Motor2.setSpeed(100);
11	}
12	 
13	void loop()
14	{
15	Motor2.step(100);
16	delay(1000);
17	}

 С этим же кодом 12 вольтовый мотор работает, а этот на 2,4В - нет.

Провода перекидывал, не помогло.

Интересно, что с неправильной строкой: Stepper Motor2(200, Motor2A1Pin, Motor2B1Pin, Motor2A2Pin, Motor2B2Pin) мотор работает, но радиатор контроллера разогревается моментально.

Есть ли альтернативные библиотеки, для подключения шаговика. Или пример его использования без библиотеки stepper?

 

бмм
Offline
Зарегистрирован: 04.04.2012

а у кого нибудь,кто подключал 28BYJ-48 5VDC к ULN2003 эта микросхема греется?у меня меньше,чем через минуту реально обжечься можно

 

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

Странно, по идее всего 100 мА должен кушать. Не должна ULN греться, она до 500 мА. Измерьте ток.

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

kadushkin пишет:

...  но радиатор контроллера разогревается моментально.

А что вы хотели, он же больше ампера кушает!

kadushkin
Offline
Зарегистрирован: 18.12.2011

AlexFisher

Да но при этом строка инициализации ШД как бы с ошибкой

Stepper Motor2(200, Motor2A1Pin, Motor2B1Pin, Motor2A2Pin, Motor2B2Pin)

kadushkin
Offline
Зарегистрирован: 18.12.2011
Вариант 1

  case 0:    
      digitalWrite(Motor2A1Pin, HIGH);
      digitalWrite(Motor2B1Pin, LOW);
      digitalWrite(Motor2A2Pin, LOW);
      digitalWrite(Motor2B2Pin, LOW);
      break;
      case 1:   
      digitalWrite(Motor2A1Pin, LOW);
      digitalWrite(Motor2B1Pin, LOW);
      digitalWrite(Motor2A2Pin, HIGH);
      digitalWrite(Motor2B2Pin, LOW);
      break;
      case 2:   
      digitalWrite(Motor2A1Pin, LOW);
      digitalWrite(Motor2B1Pin, HIGH);
      digitalWrite(Motor2A2Pin, LOW);
      digitalWrite(Motor2B2Pin, LOW);
      break;
      case 3:    
      digitalWrite(Motor2A1Pin, LOW);
      digitalWrite(Motor2B1Pin, LOW);
      digitalWrite(Motor2A2Pin, LOW);
      digitalWrite(Motor2B2Pin, HIGH);
      break;

Вариант 2
  case 0:   
      digitalWrite(Motor2A1Pin, HIGH);
      digitalWrite(Motor2B1Pin, LOW);
      digitalWrite(Motor2A2Pin, HIGH);
      digitalWrite(Motor2B2Pin, LOW);
      break;
      case 1:    
      digitalWrite(Motor2A1Pin, LOW);
      digitalWrite(Motor2B1Pin, HIGH);
      digitalWrite(Motor2A2Pin, HIGH);
      digitalWrite(Motor2B2Pin, LOW);
      break;
      case 2:   
      digitalWrite(Motor2A1Pin, LOW);
      digitalWrite(Motor2B1Pin, HIGH);
      digitalWrite(Motor2A2Pin, LOW);
      digitalWrite(Motor2B2Pin, HIGH);
      break;
      case 3:   
      digitalWrite(Motor2A1Pin, HIGH);
      digitalWrite(Motor2B1Pin, LOW);
      digitalWrite(Motor2A2Pin, LOW);
      digitalWrite(Motor2B2Pin, HIGH);
      break;

Запустил таки движок....

Вот выдержки из функции

Вариант1: радиатор не греется, но усилие слабое

Вариант 2: радиатор греется, но усилие то что надо.

Скрость вращения одинакова

Первый вариант видимо шаги пропускает? Стало быть второй верный

leshak
Offline
Зарегистрирован: 29.09.2011

 Ну, как минимум видно что в первом варианте одновременно включается только одна обмотка, а во втором две. Следовательно потребляемый ток - в два раза выше. И усилие два раза выше (если обмотки тянут в этот момет в одну сторону, но, по вашим словам с этим все нормально).

Снизить нагрев можно взяв, внешний блок, не 12-ти вольтовый, а а поменьше 9V или даже 7, 7.5V

Одно дело когда ему нужно "рассеять в воздух" падение напряжение с 12-ти до 5-ти, другое с 7-ми до 5-ти.

Р = U * I

У некототорых ардуин, с некачественным регулятором питания, он может грется даже без всяких нагрузок. Поэтому можете встретить что питать, снаружи, ардуину можно "максимум до 12-ти вольт", но "рекомендуется" диапазон 7-9V.

Так что, если у вас нет потребителей которым нужно именно 12-ть - снижайте напряжение внешнего питания.

 

leshak
Offline
Зарегистрирован: 29.09.2011

 А... простите. Перечитал ветку с начала, не увидел что вы через какой-то шилд питаете. Так что, возможно, мои советы про снижение питание для ардуины - мимо кассы. А с шилдами и их регуляторами питания - я не вкурсе ;(  

leshak
Offline
Зарегистрирован: 29.09.2011

Хм... вообщем запутался я как у вас подключенно. Шилдом, ULN, чей регулятор (шилда или дуины) дает 5V.

Если 5v вы берете, все-таки с 5v pin-на ардуины, то  снижение напряжения внешнего питания - должно помочь.

 > ULN2003 эта микросхема греется

Если верить дихальту http://easyelectronics.ru/upravlenie-moshhnoj-nagruzkoj-postoyannogo-toka-chast-2.html

То можно попробовать запаралетить ноги. Использовать по две ноги на каждый провод. Возможно это снизит нагрев.

 

kadushkin
Offline
Зарегистрирован: 18.12.2011

Я использую шилд http://item.taobao.com/item.htm?id=12466272238

А как реверс сделать? что-то из библиотеки stepper не понял

от шага 0 к шагу 3 это в одну сторону

а от шага 3 к 0 в другую?

Что-то не получилось...

boolean step_motor(int steps)
{ 
  
 int stepped=1; 
 if (steps>0) {phase=0;}
 if (steps<0) {phase=3;}
int stepcount=abs(steps);
  while (stepped<=stepcount)
  {
//delay (1);
 delayMicroseconds(1000);
	      switch (phase) 
      { 
      case 0:    // 1010
      digitalWrite(Motor2A1Pin, HIGH);
      digitalWrite(Motor2B1Pin, LOW);
      digitalWrite(Motor2A2Pin, HIGH);
      digitalWrite(Motor2B2Pin, LOW);
      break;
      case 1:    // 0110
      digitalWrite(Motor2A1Pin, LOW);
      digitalWrite(Motor2B1Pin, HIGH);
      digitalWrite(Motor2A2Pin, HIGH);
      digitalWrite(Motor2B2Pin, LOW);
      break;
      case 2:    //0101
      digitalWrite(Motor2A1Pin, LOW);
      digitalWrite(Motor2B1Pin, HIGH);
      digitalWrite(Motor2A2Pin, LOW);
      digitalWrite(Motor2B2Pin, HIGH);
      break;
      case 3:    //1001
      digitalWrite(Motor2A1Pin, HIGH);
      digitalWrite(Motor2B1Pin, LOW);
      digitalWrite(Motor2A2Pin, LOW);
      digitalWrite(Motor2B2Pin, HIGH);
      break;
      }      	
       if (steps<0)
      {
      phase--;
	        if(phase<0)phase=3;  
      }
    if (steps>0)
      {
              phase++;
	        if(phase>3)phase=0;
      } 
 
 stepped++;
  }
  
      digitalWrite(Motor2A1Pin, LOW);
      digitalWrite(Motor2B1Pin, LOW);
      digitalWrite(Motor2A2Pin, LOW);
      digitalWrite(Motor2B2Pin, LOW); 
  
       	  }

 

 

leshak
Offline
Зарегистрирован: 29.09.2011

 >Я использую шилд http://item.taobao.com/item.htm?id=12466272238

Ссылка на даташит (хотя-бы английский) была-бы более полезна.

Глядя на фотку (поэтому только догадки): видно большой радиатор, есть вероятность что шилд имеет собственный регулятор питания, причем мощный. И насиловать слабенький ардуиновский - нет надобности.

Использовть его можно, скорее всего, заводя питание не на 5v входа, а на вход VDS (если мне правильно удалось разглядеть надпись, и там действительно VDS написанно).  И заводить, конечно, не 5v, а что-то побольше. От 7-ми и выше (до сколько "выше" - опять без даташита тяжко).

>А как реверс сделать? что-то из библиотеки stepper не понял

Даже никуда не глядя, просто из здравый смысл говорит, что наиболее вероятны два варианта

  1. Установить отрицательну скрость 
  2. Или "положительная скорость", но сделать "отрицательный шаг". (вызвать функцию step с отрицательным значением).

Если же посмотреть примеры идущие с библиотекой, а особенно пример stepper_oneRevolution.ino , то мы увидим что второе предположение правильное. Нужно делать отрицательный шаги.

 

kadushkin
Offline
Зарегистрирован: 18.12.2011

разобрался

вместо

byte step_number;
надо
int step_number;

 

leshak спасибо за подсказку с питанием!!!

Успокой меня - мотор 2,4V я могу до какого напряжения "разогнать"? 15V нормально?

Хочу именно 14-15V

leshak
Offline
Зарегистрирован: 29.09.2011

 >byte step_number;

Ну в преведенном выше коде, вообще нет такое переменной. Но хорошо что зарабтоало.

>leshak спасибо за подсказку с питанием!!!

Еще раз напоминаю. Что без даташита это только мои рассуждение-догадки. Не более. Все на свой страх и риск ;)

>Успокой меня - мотор 2,4V я могу до какого напряжения "разогнать"? 15V нормально?

Не успокою. Мой здравый смысл говорит "раз 2.4 - больше нельзя". Но похоже "он врет" и "таки можно". А вот "насколько, как и почему" - для меня самого пока загадка. Посмотри ветку http://arduino.ru/forum/apparatnye-voprosy/para-voprosov-po-shagoviku  (блин, сколько же дублей развелось). Особенно второе сообщение. Похоже там человек гораздо больше понимает в разгоне.

kadushkin
Offline
Зарегистрирован: 18.12.2011

Интересно, что мотор 2,4В я разогнал только до 300 об/мин при питании 12В. Ни двигатель, ни контролер (ни тем более ардуино) не греются. Режим работы ШД 0,2сек через 2 сек (причем удержание отключил - мне не нужно).

Помогите подобрать ШД с редуктором:

http://item.taobao.com/item.htm?id=14490455206

Думаю взять модель с ШД 42BYGH403 с редуктором 5.2:1

Параметры движка такие же как и того, что я разогнал до 300 об/мин. Режим работы тоже: 0,2сек работает, 2 сек стоит.

При редукции 5.2:1 получится на выходе ~60 об/мин или 1 об/сек, что мне и нужно.

Вот все же смущает, что мотор 2,4В я запитываю от 12В, но даже при запитке от 5В мотор теряет усилие и динамику.

Что ШД  изначально расчитаны на подключение к повышенному напряжению?

Посоветуйте, какой же мотор взять?

ШД              град. длина    V      A        R     Инд.   Ст. мом.  Фаз. kg*cm2
42BYGH3401 1.8       34     3.8  0.95    4       3        2.7          4     0.034  
42BYGH403   1.8       40     2.4  1.65   1.5    2.7      3.5          4     0.054 
42BYGH4817 1.8       48     2.4  1.65   1.7     3        3.5          4     0.054 
42BYGH4812 1.8       48     2.4  1.2     3        5.5     4.3          4     0.054  
42BYGH603   1.8       60      4    1.2    1.6      3        5.2          4     0.082

leshak
Offline
Зарегистрирован: 29.09.2011

>Что ШД изначально расчитаны на подключение к повышенному напряжению

Похоже на то (хотя сам смутно это понимаю). Из того что я понял, важнее "какой ток через него идет". И следить нужно именно за этим.

Например с помощью L298N http://easyelectronics.ru/upravlenie-shagovym-dvigatelem.html

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

 

Sergo1st
Offline
Зарегистрирован: 10.05.2012

В этой теме собрались все спецы я смотрю, может кто подскажет чайнику, вот здесь ?

kadushkin
Offline
Зарегистрирован: 18.12.2011

Добиться больших оборотов от ардуины не удалось, максимум 300 об\мин.

Вообще-то нужен крутящий момент хороший, а не скорость, поэтому взял ШД 42BYGH с редуктором 1:5,18

Засматриваюсь на следующий типоразмер 57BYGH, но они уже жрут по 3А, а модули упраления ШД имеют макс. ток 2А (на базе L298N).

Может нужен контроллер другой (мощнее) типа :

Какое напряжение от номинального оптимальнее для ШД? По моим наблюдениям на ШД 3V для более менее приемлемого момента 10-12V нужно.

Как правильно подобрать шаговик для ардуины?  Есть ли методика для ардуины какая-то?

 

 

kadushkin
Offline
Зарегистрирован: 18.12.2011

Интересная история:

Собрал привод на базе шагового двигателя, в качестве блока питания двигателя использую старый блок питания ПК 12В.

Для питания ардуины на этапе отладки использовал USB (т.е питание ардуины было независимое). Как только переключился в режим питания ардуины от источника питания 7В (этот блок также подключен к старому блоку питания ПК),  получил задержки при начале запуска шагового двигателя.

Или блок питания просаживается или я что-то не понимаю.

Кстати источник питания 7В, при первоначальной подаче напряжения подвешивает ардуину, нужно нажимать кнопку сброса.

Вот источник питания 7В :

http://item.taobao.com/item.htm?id=13688667509

что может быть?

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

Просаживается напряжение движком. Подвесте конденсатор побольше.

IceHardy
Offline
Зарегистрирован: 01.10.2012

Хочется сделать привод на рулонные шторы

вопрос с выбором двигателя

тот что обсуждался выше 28BYJ-48 похоже через редуктор слишком медленно выходит

в описании к нему пишут:

Phase 2

Rated Voltage 12 DC.V

Resistance Per Phase 130±8%Ω/Phase

Step Angle 5.625 /64

Reduction Ratio 1/64

Pull-in Torque ≥70mN.m

Detent Torque ≥60 mN.m

No load pull-in Frequency ≥500 Hz - непонятно

No load pull-out Frequency ≥700Hz - непонятно

Insulation Resistance ≥50MΩ (DC.500)

Dielectric Strength Condition of AC 600V 1 mA. 1Second: No Breakdown

Temperature Rise ≤40 K

Noise ≤40 dB(A)

если у него действительно предел 500 Герц значит, читая отзыв (Хороший шаговик. Двигатель с редуктором с предаточным соотношением 64 всего на один оборот около 4000 шагов, вращается со скоростью один оборот за несколько секунд, зато крутящий момент очень приличный для такого малыша.)

получаем оборот за 8 секунд - очень медленно

есть ли аналоги но более резвые ?

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

IceHardy пишет:

если у него действительно предел 500 Герц значит, читая отзыв (Хороший шаговик. Двигатель с редуктором с предаточным соотношением 64 всего на один оборот около 4000 шагов, вращается со скоростью один оборот за несколько секунд, зато крутящий момент очень приличный для такого малыша.)

получаем оборот за 8 секунд - очень медленно

есть ли аналоги но более резвые ?

Вы не правы в расчетах. На каждый "герц" двигатель делает 4 шага (проанализируйте диаграмму шаговика), значит, максимальная скорость 1 оборот за 2 секунды.

IceHardy
Offline
Зарегистрирован: 01.10.2012

Спасибо за разъяснение :)
но посчитав обороты шторы понял что всеравно медленно пожалуй
15 оборотов на полное закрытие/открытие
руками штора открывается за 5 секунд максимум - это шумно и надо за веревку дергать

Хотя закажу, сделаю опытный вариант с часами реального времени и расписанием
нашел обычный двигатель постоянного тока с редуктором
http://dx.com/p/high-torque-60rpm-12v-dc-geared-motor-91625?item=8
и на нём попробую сделать

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

Ну... выигрыш в скорости небольшой - в 2 раза (60 RPM - это 1 оборот в секунду). С другой стороны, использовать коллекторник - более правильно, не забудте концевики. 

IceHardy
Offline
Зарегистрирован: 01.10.2012

 концевики не красиво :)

в таком варианте будет энкодер для подсчета оборотов

и режим обучения началу и концу при первом включении

leshak
Offline
Зарегистрирован: 29.09.2011

 

IceHardy пишет:

 

концевики не красиво :)

в таком варианте будет энкодер для подсчета оборотов

и режим обучения началу и концу при первом включении

Зато надежно. Можно их подключить так что-бы не только давал "сигнал ардуине", но и вообще вырубали двигать в этом направлении. Даже если ардуина говрит "крути дальше" (от багов никто не застрахован).
Красиво-не красиво - зависит от вас. Никто же не заставляет делать брутальные промышленные кнопки. Концевиком может быть и какая-то пластина, и пружиночка, и полосочка. Вполне можно "замаскировать" под какой-то декоративный элемент. Лишь бы он ток проводил. Или вообще невидимым со стороне, на фотодиоде-фототранзисторе сделать.
К тому же, режим обучения у вас будет "на глаз"? Он нужен, конечно, но ведь откалиброватся по концевикам - тоже намнго точнее/быстрее/приятней/автоматичней.
К тому же энкодер тоже может "подвирать" - накапливать ошибку. При выключении - энкодеру тоже нужно сказать "а где ты". Значит как-то еще с EEPROM заморачиватся.

 

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

Да-да!!! Надежно! Поставте по геркончику, магнитики аккуратные. Соберите такую схему, и даже без обратной связи у Вас проблем не бкдет!

 

IceHardy
Offline
Зарегистрирован: 01.10.2012

Насчет энкодера я погорячился, достаточно просто импульсы обороты/полуобороты считать, механическим или оптическим датчиком - в случае с двигателем постоянного тока, или считать импульсы шагового двигателя

а концевики не хочу, ну вот совсем не хочу :)

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

IceHardy пишет:

а концевики не хочу, ну вот совсем не хочу :)

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

IceHardy
Offline
Зарегистрирован: 01.10.2012

муфта хороший вариант, но её надо сделать или от чего то подобрать, пока не нашел готовой

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

Нужно делать...

Как leshak не любит делать в электронике то, что можно сделать в программе, так я не люблю делать в механике то, что можно сделать в электронике.

Есть еще вариант с датчиком тока мотора - контроллировать его перегруз. Нужно или завести обратно сигнал токовый, или ограничить ток. Все зависит от реализации схемы управления мотора (драйвера мотора) 

leshak
Offline
Зарегистрирован: 29.09.2011

 

AlexFisher пишет:

 

Нужно делать...

Как leshak не любит делать в электронике то, что можно сделать в программе, так я не люблю делать в механике то, что можно сделать в электронике.


Да.Да.Да. Как ни крутите, а "стоимость размножения" прогамного решения - намного ниже. Скопи-пастать в другой проект, к примеру, програмный дебаунсер гораздо легче чем железный. Или добавить/подтюнить/пофиксать в существующем. Если разобратся, то собственно потому и имеем "взрыв" потребительских девайсов, что одним "универсальным вычислителем" можно заменить (пусть иногда и хуже) кучу различных схем.

Да и помним что "не может сломатся только та деталь которой нет".

AlexFisher пишет:

Есть еще вариант с датчиком тока мотора - контроллировать его перегруз. Нужно или завести обратно сигнал токовый, или ограничить ток. Все зависит от реализации схемы управления мотора (драйвера мотора)


Тоже думал на этим. Но уровень моей схемо-знаний не позволяет это "легко" сделать. Было-бы крайне любопытно посмотреть на это решение.
Особенно если возможно, помимо подачи сигнала ардуине, насильно вырубать движок. Даже если контроллер "мертв". С концевиком - я это себе представляют, а вот как это сделать "глядя на сам двигатель" - не очень.
Исходя из принципа "меньше деталей", IMHO, это было-бы даже лучше чем "концевики" (не нужно к ним проводки тягать на растояние, доп.элементы крепить и т.п.).

 

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

Собственно, есть куча решений, вот например:

IceHardy
Offline
Зарегистрирован: 01.10.2012

В варианте со шторами нет смысла в такой супер защите

вероятность программного глюка или аппаратного сбоя тут думаю совсем не велика, а в случае чего последствия не страшны

так что обойдусь обучением шторки в первый раз и потом пусть сама работает :)

Если бы я делал автоматические ворота, тогда конечно озадачился бы защитами, а то мало ли кого снесут )

leshak
Offline
Зарегистрирован: 29.09.2011

IceHardy пишет:

В варианте со шторами нет смысла в такой супер защите

вероятность программного глюка или аппаратного сбоя тут думаю совсем не велика, а в случае чего последствия не страшны

А я бы сказал "практически не избежны". Банально "потеряли/ошиблиcь" в текущией позиции. :) К тому же "не страшны"? Перегревшийся-загоревшийся двигатель/блок питания возле ткани не страшно? Да банально "испроченный двигатель" не жалко?

IceHardy пишет:

так что обойдусь обучением шторки в первый раз и потом пусть сама работает :)

Если бы я делал автоматические ворота, тогда конечно озадачился бы защитами, а то мало ли кого снесут )

Ну хозяин-барин :)  Тольк ведь концевики-то (или их аналоги) не толко для защиты, но и для калибровки нужны. Как калибравать-ть то будете без них?

leshak
Offline
Зарегистрирован: 29.09.2011

AlexFisher пишет:

Собственно, есть куча решений, вот например:

Спасибо. Я вот "как-то так" это себе и представлял, но "смутно". Правильно ли я понимаю, 

  1. Номинал R2 задает "порог сработки".
  2. Если я хочу что-бы еще и дуина "узнавала" о том что предел достигнут, то мне нужно смотреть на базу T2? Как минимум аналоговым входом (хотя цифровым, конечно, было-бы удобней).

Хотя... вроде и на базу T3 тоже можно смотреть. Там 100% 5v. Правда нужно будет пауза, что-бы с PWM выходящим не перепутать. Типа "срабатывать если там ноль дольше чем частота PWM".

IceHardy
Offline
Зарегистрирован: 01.10.2012

Соберу, испытаю, а там уже решу как быть, концевики или нет...

Вообще сначала была мысль просто реверсивный счетчик поставить на строго заданное число оборотов

но потом решил изучить ардуину :)

Так что напишу о проделанной работе уже после каких то экспериментов и результатов

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

leshak пишет:

AlexFisher пишет:

Собственно, есть куча решений, вот например:

Спасибо. Я вот "как-то так" это себе и представлял, но "смутно". Правильно ли я понимаю, 

  1. Номинал R2 задает "порог сработки".
  2. Если я хочу что-бы еще и дуина "узнавала" о том что предел достигнут, то мне нужно смотреть на базу T2? Как минимум аналоговым входом (хотя цифровым, конечно, было-бы удобней).

Хотя... вроде и на базу T3 тоже можно смотреть. Там 100% 5v. Правда нужно будет пауза, что-бы с PWM выходящим не перепутать. Типа "срабатывать если там ноль дольше чем частота PWM".

нет, все не так.

Ток срабатывания определяет R3 (обратите внимание на его номинал).

Чтобы определить, сработало ли, нужно перевести вывод в режим INPUT_PULUP. Если 0 - то сработала защита. Этот режим вообще можно использовать для "включения" движка. То есть вывод оставить входом, включать движок подключением подтяжки. Но это ненадежно. Есть 2 пути. Первый - это переключать вывод на вход с подтяжкой, чтобы проверить защиту (при условии, что двигатель включен, тогда лучше вывод подтянуть 10к к питанию и уменьшить R1 до 200 Ом), второй - более очевидный - контроллировать другим входом, подключив его к затвору VT3 (правый вывод R1).

Ну и как вариант, прямое измерение напряжения на R3 (будем иметь ток потребления). Тут, правда, придется позаботиться об опорном напряжении для АЦП порядка 1 вольта.

irinna88
Offline
Зарегистрирован: 04.10.2012

Подскажите как новичку. Купила вот такой набор http://dx.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?... там есть 4 мотора и только 1 драйвер моторов L298N http://dx.com/p/l298n-stepper-motor-driver-controller-board-for-arduino-... Насколько я понимаю он расчитан только на 2 мотора.  Можно ли к нему подключить 4 мотора? Если да - то как?  Спасибо

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

Нет, только 2 мотора. Нужно было взять что-то типа этого - для Вашего набора должно хватить. 

irinna88
Offline
Зарегистрирован: 04.10.2012

спасибо за ответ. Простите за предположение...а если спаять соответствующе выходы (плюс сплюсом и минус с минусом) моторов с правой стороны и с левой чтоб получилось только 4 провода на 4 мотора? просто мне не нужно управление каждого мотора отдельно, а чтоб все колеса с одной стороны (правой или левой) поворачивались в одну сторону и с одинаковой скоростью. или это полный бред? 

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

Нет, это не бред, это вполне допустимо. Только нужно, чтобы моторчики были одинаковые. Тогда Вам этой платы хватит.

leshak
Offline
Зарегистрирован: 29.09.2011

AlexFisher пишет:

Нет, это не бред, это вполне допустимо. Только нужно, чтобы моторчики были одинаковые. Тогда Вам этой платы хватит.

Не еще, естественно, проверить что-бы мощи хватало. Два моторчика будут жрать соотвественно в два раза больше. Причем лучше смотреть не "номинальный ток", а граничный. Стартовый ток может быть больше чем "просто крутится" и когда "заклинили мотор" (уперлись в стенку) - тоже может существенно больше кушать. Нужно сверится с даташитом что-бы даже "граничные ситуации" они "впаре" не перенапрягли плату.

irinna88
Offline
Зарегистрирован: 04.10.2012

Спасибо большое:) Моторы одинаковые. Попробую так сделать. А с платой ничего не будет (она не сгорит?) от того что к ней в 2 раза больше моторов будет подключено?   

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

Зависит от тока потребления моторов. Но, судя по картинкам, у Вас они слабенькие :) 

leshak
Offline
Зарегистрирован: 29.09.2011

irinna88 пишет:

Спасибо большое:) Моторы одинаковые. Попробую так сделать. А с платой ничего не будет (она не сгорит?) от того что к ней в 2 раза больше моторов будет подключено?   

Ну кто же вам сможет ответить кроме вас? Может и сгореть. Может сгореть и от одного мотора. Сколько моторов - вообще не важно. Важно сколько они потребляют в сумме. Если взять один мотор который жрет 50 ампер, то и им одним можно упалить. А если взять мотор который есть 5mA то и 10-ток можно подключить вместе.

Где-то на моторе должно быть написанно "сколько он кушает". Умножаете на два. Смотрите превышает ли это то что плата может пропустить через себя (у нее в спецификациях тоже написанно).

Но, по поводу мотора - я бы не верил китайцам. Могут написать что угодно. Так что кроме "прочитать" еще бы взял один мотор и амперметром померял сколько в реальности он кушает (особенно когда его рукой тормозишь). Потом бы умножил на два и посмотрел как вписывается. Если "вроде хватает" - подклчил. Но все равно, опять-таки не веря китайцам, погонял-бы внимательно следя за тем греется плата или нет (регулятор питания, сам драйвер).

irinna88
Offline
Зарегистрирован: 04.10.2012

спасибо за совет:) все-таки придется учиться пользоваться амперметром, потому что на моторах никакой маркировки нет. Вот так покупай товар из Китая - купила непонятно что.

irinna88
Offline
Зарегистрирован: 04.10.2012

Здравствуйте!

С моторами разобралась - подключила попарно - работают:)

Возникла другая проблема. Подскажите пожалуйста или ткните носом где об этом можно почитать.

Запуталась как правильно подключать моторы через мой драйвер моторов. Здесь http://www.geekonfire.com/wiki/index.php?title=Dual_H-Bridge_Motor_Driver все предельно понятно описано. Но! Непонятно куда подключать +5V  (надо ли подключать его к ардуино) и правильно ли подключено GND сразу от питания моторов? Здесь http://billwaa.wordpress.com/2012/06/06/arduino-l298-dual-h-bridge-motor... подключаются все выводы +5V к питанию Ардуино а земля вся соединяется (от ардуино и от драйвера моторов). В видеоуроках по ардуино http://www.youtube.com/watch?v=KSMqtOh2JSY тоже говорят что надо соединять всю землю.

А как правильно?

Спасибо.