roboforum.ru

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


Почему мотор назад не крутится?

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Почему мотор назад не крутится?

Сообщение nsk-racer » 18 дек 2010, 19:26

Почему мотор назад не крутится? Драйвер мотора DF H-мост v1.3 На каждый мотор есть выводы E и M! Как я понял на Е подаётся сигнал шим, а на М в IDE пишем HIGH или LOW и в зависимости от значения мотор будет крутится либо назад либо вперёд. Так вот цепляю один мотор, на питание М1! на Е1 цепляю на 6пин и М1 на 7пин и наоборот и мотор крутится только когда стоит HIGH!

Код: Выделить всёРазвернуть
//This motor shield use Pin 6,5,7,4 to control the motor
// Simply connect your motors to M1+,M1-,M2+,M2-
// Upload the code to Arduino/Roboduino
// Through serial monitor, type 'a','s', 'w','d','x' to control the motor
// www.dfrobot.com
// Last modified on 24/12/2009

int EN1 = 6; 
int EN2 = 5;  //Roboduino Motor shield uses Pin 9
int IN1 = 7;
int IN2 = 4; //Latest version use pin 4 instead of pin 8



void Motor1(int pwm, boolean reverse)
        {
          analogWrite(EN1,pwm); //set pwm control, 0 for stop, and 255 for maximum speed
         if(reverse)
         {
          digitalWrite(IN1,HIGH);   
         }
        else
        {
          digitalWrite(IN1,LOW);   
         }
        } 
       
void Motor2(int pwm, boolean reverse)
        {
          analogWrite(EN2,pwm);
         if(reverse)
         {
          digitalWrite(IN2,HIGH);   
         }
        else
        {
          digitalWrite(IN2,LOW);   
         }
        } 
       
void setup()
{
    int i;
   // for(i=6;i<=9;i++) //For Roboduino Motor Shield
   // pinMode(i, OUTPUT);  //set pin 6,7,8,9 to output mode

    for(i=5;i<=8;i++)  //For Arduino Motor Shield
    pinMode(i, OUTPUT);  //set pin 4,5,6,7 to output mode

    Serial.begin(9600);   
}


void loop()
{
  int x,delay_en;
  char val;
  while(1)
  {
    val = Serial.read();
    if(val!=-1)
       {
          switch(val)
           {
             case 'w'://Move ahead
                        Motor1(100,true);  //You can change the speed, such as Motor(50,true)
                        Motor2(100,true);
                     
                         break;
             case 'x'://move back
                        Motor1(100,false);
                        Motor2(100,false);
                         break;
             case 'a'://turn left
                        Motor1(100,false);
                        Motor2(100,true);
                         break;       
             case 'd'://turn right
                        Motor1(100,true);
                        Motor2(100,false);
                        break;   
               case 's'://stop
                        Motor1(0,false);
                        Motor2(0,false);
                         break;
                                 
           }     
       
       }
           
  }                           
}

Мотор крутится только по команде A! в чём проблема? может я что то не так подключаю? код для драйвера 293, у меня 298, вот такой:
http://robotshop.su/e-store/catalog/203/835/
Помогите пожалуйста... А то из-за ерунды не могу начать программировать нормальные вещи, а не просто тупо заставить крутить моторами...
Мой блог о роботах http://robo-world.ru
nsk-racer
 
Сообщения: 141
Зарегистрирован: 08 дек 2010, 19:27
Откуда: Новосибирск
прог. языки: C и PHP
ФИО: Павел

Re: Почему мотор назад не крутится?

Сообщение RootAdmin » 23 дек 2010, 16:05

Сумбурно как-то... А подключено правильно?
А Logic supply power - сколько?
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Почему мотор назад не крутится?

Сообщение Myp » 23 дек 2010, 16:17

провода точно подключены так как надо?

у драйверов 293 и 298 точно совпадает распиновка разъёмов??
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Почему мотор назад не крутится?

Сообщение RootAdmin » 23 дек 2010, 16:33

Myp писал(а):у драйверов 293 и 298 точно совпадает распиновка разъёмов??

У него плата, там судя по фото просто разъемы. Но написано что питание логики драйвера 6~12 вольт. Подозреваю что может не хватать до лог. "1".
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Почему мотор назад не крутится?

Сообщение Myp » 23 дек 2010, 17:13

но в одну же сторону крутитсо :) значит хватает
судя по картинкам там вобще разное количество проводов по разному подключается)))
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Почему мотор назад не крутится?

Сообщение nsk-racer » 26 дек 2010, 11:29

Разобрался =) Проблема была в плохой земле на драйвере =) Хотя странно..)
Мой блог о роботах http://robo-world.ru
nsk-racer
 
Сообщения: 141
Зарегистрирован: 08 дек 2010, 19:27
Откуда: Новосибирск
прог. языки: C и PHP
ФИО: Павел


Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6