MX1508 motor driver, кто использовал?

Kiroslav
Offline
Зарегистрирован: 07.08.2017

День добрый,

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

для тех кто хочет отправить "Ищу исполнителя", тоже здесь срите. Все таки первый пост).

ЗЫ: И да, я новичек, и да, я не программист. Технику починить могу, даже дохлую, но с программированием на стадии обучения.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

http://lmgtfy.com/?q=mx1508+arduino

А вообще, могли бы и догадаться. 4 входа, два выхода на моторы по два пина - логика...

Kiroslav
Offline
Зарегистрирован: 07.08.2017

Поиском я тоже умею пользоваться. Там магазины. Если заметили. Я бы не задал вопрос без поиска.

Вот и испугало, что на 298 есть en-2 и in-4, а тут только in-4.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

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

//  mx1508 arduino ide example
//  By #Techn0man1ac

#define IN1 14 // left motor, PWM
#define IN2 13 // left motor
#define IN3 12 // right motor, PWM
#define IN4 15 // right motor

#define motorLeft 0
#define motorRight 1

int motrSpd = 0;  

void setup() {
  Serial.begin(115200);
  pinMode(IN1, OUTPUT); // PWM
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT); // PWM
  pinMode(IN4, OUTPUT);
}

void loop() {

  for (motrSpd = 0; motrSpd <= 255; motrSpd += 1) {
    speedMotors(motorRight, motrSpd);
    speedMotors(motorLeft, motrSpd);
    Serial.println(motrSpd);
    delay(15);
  }

  for (motrSpd = 255; motrSpd >= -255; motrSpd -= 1) {
    speedMotors(motorRight, motrSpd);
    speedMotors(motorLeft, motrSpd);
    Serial.println(motrSpd);
    delay(15);
  }

  for (motrSpd = -255; motrSpd <= 0; motrSpd += 1) {
    speedMotors(motorRight, motrSpd);
    speedMotors(motorLeft, motrSpd);
    Serial.println(motrSpd);
    delay(15);
  }
  delay(5000);
}

void speedMotors(int motor, int spd)
{

  if (motor == motorLeft) {
    if (spd >= 0) {
      analogWrite(IN1, spd);
      digitalWrite(IN2, LOW);
    } else {
      spd = 255 + spd;
      analogWrite(IN1, spd);
      digitalWrite(IN2, HIGH);
    }
  } else {
    if (spd >= 0) {
      analogWrite(IN3, spd);
      digitalWrite(IN4, LOW);
    } else {
      spd = 255 + spd;
      analogWrite(IN3, spd);
      digitalWrite(IN4, HIGH);
    }
  }
}

 

Kiroslav
Offline
Зарегистрирован: 07.08.2017

Спасибо огромное,  попробую.

Должна рабатать до 10В, это два акб по 18560. чего мне и хватит.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

2 18650 - это 8.4В в лучшем случае...