roboforum.ru

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

Драйвер двигателя на ардуино

Драйвер двигателя на ардуино

roma95 » 10 янв 2014, 21:36

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

Re: Драйвер двигателя на ардуино

Angel71 » 10 янв 2014, 22:09

"модельного драйвера двигателя" :) можно ещё раз, но уже по русски? если вы про bldc, то разбанивайтесь в поисковиках и изучайте темы на форумах, начиная с этого.

Re: Драйвер двигателя на ардуино

roma95 » 10 янв 2014, 22:18

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

Re: Драйвер двигателя на ардуино

Dmitry__ » 10 янв 2014, 22:29

Ну, дык ""V-Tail Mixer", превед из киберзоны
forum10/topic9482-45.html#p195661

Добавлено спустя 6 минут 40 секунд:
во, на аврах и дуинах:
http://www.avrfreaks.net/index.php?modu ... showinfo=1
http://forum.arduino.cc/index.php?topic=37638.0

Re: Драйвер двигателя на ардуино

roma95 » 12 янв 2014, 12:03

спасибо) интересные ссылки). но а как написать саму программу для управления двигателем? как програмно преобразовать сигнал, идущий с модельного приемника и ШИМ?

Re: Драйвер двигателя на ардуино

avr123.nm.ru » 12 янв 2014, 12:12

Измерение длительности импульса (AVR) forum2/topic9053.html

Re: Драйвер двигателя на ардуино

Nesenin » 12 янв 2014, 14:38

post263281.html#p263281
захват ШИМ с приемника. смешивание каналов для танкового управления.
1 канал используется как управляющий (у меня 3 канальный передатчик 3 канал -переключатель) см.
Код: Выделить всёРазвернуть
  if(button > 1500 || button == 0)

если предполагается управление мостом, надо вместо
Код: Выделить всёРазвернуть
digitalWrite(8, HIGH);
что на регуляторе заведует направлением вращения, выключать шим на 1 канале управления моста и вкл другой.

в оригинале http://forum.rcdesign.ru/f87/thread2405 ... ost3000083 4 канала можно принимать

Re: Драйвер двигателя на ардуино

roma95 » 12 янв 2014, 17:29

Что значит 1 канал используется как управляющий? Чем?

Re: Драйвер двигателя на ардуино

Nesenin » 12 янв 2014, 20:09

работает как вкл\выкл
Код: Выделить всёРазвернуть
#include "rc_ch4.h"
Receiver_4ch receiver;
long button = 1500;
long gas = 1500;
long rudder = 1500;
long left = 0;
long right  = 0;



void setup() {
  //Serial.begin(115200);
  //Serial.println("RC tank run");
  pinMode(8, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(11, OUTPUT);
 
  receiver.initialize();
}

void loop() {
  receiver.read();
  button = receiver.getRaw(CH_1);
  gas    = receiver.getRaw(CH_2);
  rudder = receiver.getRaw(CH_3);
  //Serial.print(button);  Serial.print("\t");
  //Serial.print(gas);  Serial.print("\t");
  //Serial.println(rudder);
 
  if(button > 1500 || button == 0)
  {left = 0;
  right = 0;
  }
  else
  {
  rudder = rudder - 1500;
  left = gas + rudder;
  right = gas - rudder;
  left = constrain(left, 1100, 1900);
  right = constrain(right, 1100, 1900);
 
   
 
  if(left >= 1550)
  { digitalWrite(8, HIGH);
    left = left - 1550;
    left = map(left, 0, 350, 0, 255);
  }
  else
  { digitalWrite(8, LOW);
    if(left <= 1450)
    {
      left = 1450 - left ;
      left = map(left, 0, 350, 0, 255);
    }
    else
    {left = 0;     
    }
  }
 
if(right >= 1550)
  { digitalWrite(3, HIGH);
    right = right - 1550;
    right = map(right, 0, 350, 0, 255);
  }
  else
  { digitalWrite(3, LOW);
    if(right <= 1450)
    {
      right = 1450 - right ;
      right = map(right, 0, 350, 0, 255);
    }
    else
    {right = 0;     
    }
  }

  //Serial.print(left);  Serial.print("\t");             
  //Serial.println(right);
  }
  analogWrite(6, left);
  analogWrite(11, right);
 
  //delay (10);
}



в одном положении ШИМ = 0 в другом уже идет расчет

Re: Драйвер двигателя на ардуино

roma95 » 12 янв 2014, 20:31

понял) но так как только начинают осваивать программирование, не понимаю толком, где в программе описано, где вход в приемника и выходы шим. вижу задействованные ноги 8,3,6,11. есть ли еще какие? и какая из них для чего? :oops:

Re: Драйвер двигателя на ардуино

Nesenin » 12 янв 2014, 20:57

6,11 шим 3,8 направление вращения( для регулятора )
тут библиотека http://forum.rcdesign.ru/f87/thread2405 ... ost3000083 там на 2 стр. написаны ножки к которым каналы с приемника подключаются

Re: Драйвер двигателя на ардуино

roma95 » 12 янв 2014, 21:22

туплю на элементарном. числа, это номера ног самого мк или вашей mini pro?

Re: Драйвер двигателя на ардуино

Nesenin » 12 янв 2014, 22:28

номера выводов ардуино

Re: Драйвер двигателя на ардуино

roma95 » 15 янв 2014, 21:38

попробовал загрузить на ардуино, вылазит это
sketch_jan15a.ino:1:20: error: rc_ch4.h: No such file or directory
sketch_jan15a:2: error: 'receiver_4ch' does not name a type
sketch_jan15a.ino: In function 'void setup()':
sketch_jan15a:19: error: 'receiver' was not declared in this scope
sketch_jan15a.ino: In function 'void loop()':
sketch_jan15a:23: error: 'receiver' was not declared in this scope
sketch_jan15a:24: error: 'CH_1' was not declared in this scope
sketch_jan15a:25: error: 'CH_2' was not declared in this scope
sketch_jan15a:26: error: 'CH_3' was not declared in this scope
как лечить?

Добавлено спустя 10 минут 45 секунд:
ниче понять не могу :(

Re: Драйвер двигателя на ардуино

Nesenin » 15 янв 2014, 21:51

ну вот же он просит файлы из библиотеки что выше по ссылке. надо свой код в папку куда нить сохранить ,а рядом разместить эти файлы rc_ch4.h и rc_ch4.cpp

Добавлено спустя 2 минуты 31 секунду:
или опять же скачать мой проект (там подредактирован под 3 канала и прочее см выше)
tank_rc.rar
(3.33 КиБ) Скачиваний: 0


Rambler\'s Top100 Mail.ru counter