roboforum.ru

Технический форум по робототехнике.

Модельный регулятор хода беcколекторного двигателя и Ардуино

Модельный регулятор хода беcколекторного двигателя и Ардуино

snailmaster » 04 янв 2012, 17:34

Люди помогите разобратся . Стоит задача подключить регулятор хода с безколекторным двигателем от авио модели к Ардуино Уно.
Не могу чтото сообразить как это зделать . С обычным колекторным двигателем разобрался а с этим чтото не вкурю. Вот и прошу вашей помощи.
Есть Ардуино Уно на нем стоит мотор шилд V3 и вот к нему пытаюсь подключить. Как это зделать?????

Re: Люди помогите разобратся

=DeaD= » 04 янв 2012, 17:45

Регулятором хода рулят как обычной сервой. Вот и весь секрет :)

Re: Люди помогите разобратся

snailmaster » 04 янв 2012, 18:06

=DeaD= писал(а):Регулятором хода рулят как обычной сервой. Вот и весь секрет :)

ОК , попробывал загрузить стандартную программу пример в ардуино , подключил регулятор с мотором , но он крутится процентов на 20 от всей мошности , а на максимум как его запустить. А в программе для примера можно чтото привезти????
вот то что было загружено

#include <Servo.h>

Servo myservo;

int potpin = 0;
int val;

void setup()
{
myservo.attach(9);
}

void loop()
{
val = analogRead(100);
val = map(val, 0, 1023, 0, 179);
myservo.write(val);
delay(15);
}

Re: Люди помогите разобратся

noonv » 04 янв 2012, 18:44

попробуйте подобрать максимальное и минимальное значения (см attach)

Re: Люди помогите разобратся

cjA » 04 янв 2012, 22:00

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

Re: Люди помогите разобратся

snailmaster » 04 янв 2012, 22:31

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


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

Re: Люди помогите разобратся

Duhas » 05 янв 2012, 00:01

cja, сами вы.. асинхронник.. честное слово, учите матчасть!

Re: Люди помогите разобратся

boez » 05 янв 2012, 00:55

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

Re: Люди помогите разобратся

cjA » 05 янв 2012, 02:27

какого еще газа-фуяза? это электрический двигатель. безколлекторник. управляется частотой.
snailmaster, правильно?
(ну duhas как всегда где то в своем мире)

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

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

Re: Люди помогите разобратся

Duhas » 05 янв 2012, 02:36

ТС, меня в вашем коде смущает вот это
Код: Выделить всёРазвернуть
val = analogRead(100); 
val = map(val, 0, 1023, 0, 179);
myservo.write(val);


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

и подумайте над советом boez

ПС чукча не читатель..

Re: Люди помогите разобратся

cjA » 05 янв 2012, 02:48

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

Добавлено спустя 2 минуты 41 секунду:
duhas
листинг того что вы предложили вы видели?

Re: Люди помогите разобратся

Michael_K » 05 янв 2012, 04:02

А что такое аналогрид(100)?
Это номер канала такой красивый?

Re: Люди помогите разобратся

Duhas » 05 янв 2012, 11:55

cja, давайте не будем тут дискутировать.. это я не предложил, а процитировал код ТС..

Re: Люди помогите разобратся

snailmaster » 05 янв 2012, 22:16

cjA писал(а):какого еще газа-фуяза? это электрический двигатель. безколлекторник. управляется частотой.
snailmaster, правильно?
(ну duhas как всегда где то в своем мире)

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

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

да это обычный безколекторник , управление частотой от 1 милисек до 2 милисек , как в серве
я значит вот что зделал , подключил потенцеометр , все как в примере с серво , но вместо серво подключил регулятор хода, и вывел значения на ком порт , значит вот что получилось
значения в терминале:

20 - писк и моторчик дергается
34 - мотор 0%
37 - вращение 1%
40 - вращение 5%
и т.д.
120 - вращение 50%
179 - вращение 100%
как прописать , чтоб эти все действия выполнялись автоматически без патенциометра????

Re: Люди помогите разобратся

nsk-racer » 05 янв 2012, 22:25

Код: Выделить всёРазвернуть
 :cry: // Sweep
// by BARRAGAN <http://barraganstudio.com>
// This example code is in the public domain.


#include <Servo.h>

Servo myservo;  // create servo object to control a servo
                // a maximum of eight servo objects can be created

int pos = 0;    // variable to store the servo position

void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}


void loop()
{
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}
попробуй этот


Rambler\'s Top100 Mail.ru counter