Перейти к содержимому






Фотография
- - - - -

Arduino драйвер щит (ID:359)

Написано admin , 21 July 2015 · 4881 Просмотров

Arduino драйвер щит (ID:359) Arduino драйвер щит выполнен в особом форм- факторе, и поэтому полностью совместим со всеми платами Arduino в том числе и с Arduino Mega. Драйвер собран на двух микросхемах L293D, поэтому позволяет одновременно управлять либо двумя шаговыми двигателями, либо 4 двигателями постоянного тока, либо двумя двигателями постоянного тока и двумя серводвигателями. При одновременном управления четырьмя двигателями, потребление тока каждым из них не должно превышать 600 мА.
Двух контактный разъем с зажимом под винт "Ext_PWR" предназначен для подключения внешнего мощного источника питания электродвигателей. Желательный диапазон - от 6 до 15 Вольт постоянного напряжения. Двух контактная перемычка- джампер отвечает за подключения внешнего питания драйвера. При снятом джампере питания платы драйвера и электродвигателей происходит от платы Arduino. Если на плату Arduino подавать питание через USB - шнур, а на электродвигатели подать питание от внешнего мощного источника через разъём "Ext_PWR", то джампер нужно снять. Зеленый светодиод на плате - индикатор подачи напряжения питания на плату драйвера.
Серводвигатели к плате драйвера подключаются через разъёмы "SER1" и "SERVO_2".
Управление серводвигателями происходит соответственно через цифровые выводы 10 и 9 платы Arduino.
Для управления сервоприводами нужна стандартная библиотека Servo.h, которая есть в любой среде программирования Arduino IDE.
Простой пример для управления серводвигателем, подключенным к разъему "SER1" выглядит так:

#include <Servo.h> 
Servo myservo;  
int pos = 0;    // начальная позиция двигателя
void setup() 
{ 
  myservo.attach(10);  // подключаем серводвигатель на разъём SER1 ( цифровой вывод 10 )
} 

void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // вращаем двигатель слева направо до конца
  {                                  
    myservo.write(pos);              
    delay(15);                       
  } 
  for(pos = 180; pos>=1; pos-=1)     // вращаем двигатель справа налево в исходное положение
  {                                
    myservo.write(pos);              
    delay(15);                       
  } 
} 
Пример для управления серводвигателем, подключенным к разъему "SERVO_2" выглядит так:
#include <Servo.h> 
Servo myservo;  
int pos = 0;    // начальная позиция двигателя
void setup() 
{ 
  myservo.attach(9);  // подключаем серводвигатель на разъём  SERVO_2 ( цифровой вывод 9 ) 
} 

void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // вращаем двигатель слева направо до конца
  {                                  
    myservo.write(pos);              
    delay(15);                       
  } 
  for(pos = 180; pos>=1; pos-=1)     // вращаем двигатель справа налево в исходное положение
  {                                
    myservo.write(pos);              
    delay(15);                       
  } 
}
Для подключения шаговых и обычных электродвигателей на плате драйвера предусмотрены пяти контактные разъёмы с зажимом под винт. Средний контакт (№3 по счету) этих разъёмов всегда соединён с общим проводом. Это удобно для подключения пяти проводных шаговых двигателей. При подключении обычных электродвигателей контакт №3 не используется, подключение происходит к контактам №1, №2 и №4, №5. Эти пары контактов обозначены на разъёме как М1, М2, М3 и М4.
Для управления мотором М1 и шаговым двигателем 1 используется цифровой вывод 11 платы Arduino.
Для управления мотором M2 и шаговым двигателем 1 используется цифровой вывод 3 платы Arduino.
Для управления мотором M3 и шаговым двигателем 2 используется цифровой вывод 5 платы Arduino.
Для управления мотором M4 и шаговым двигателем 2используется цифровой вывод 6 платы Arduino.
Направление вращения двигателей переключается с помощью сдвигового регистра 74HC595. Для этого используются цифровые выводы 12, 8, 7 и 4 платы Arduino. Как мы видим, практически все цифровые выводы задействованы в работе этого драйвера. Свободными остаются только аналоговые входы, поэтому для аналоговых входов на плате драйвера имеются незапаянные контактные площадки. В них можно установить дополнительные разъёмы и использовать аналоговые входы как цифровые входы- выходы.
Для управления электродвигателями потребуется скачать библиотеку AFmotor.zip


После скачивания файла архива AFmotor.zip, поместите содержимое архива в папку libraries, которая находится в папке с программой Arduino.
Подключите электродвигатели к разъёмам М1, М2, М3 и М4.
Пример управления сразу четырьмя двигателями- плавный разгон и плавное торможение, выглядит так:

#include <AFMotor.h> // подключаем библиотеку 
// Подключаем моторы к разъёмам M1, M2, M3, M4
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);

void setup() {
motor1.setSpeed(255);
motor1.run(RELEASE);
motor2.setSpeed(255);
motor2.run(RELEASE);
motor3.setSpeed(255);
motor3.run(RELEASE);
motor4.setSpeed(255);
motor4.run(RELEASE);
}
int i;
void loop() {
  // Разгон двигателей в вперед
  motor1.run(FORWARD);
  motor2.run(FORWARD);
  motor3.run(FORWARD);
  motor4.run(FORWARD);
  for (i=0; i<255; i++) {
    motor1.setSpeed(i); 
    motor2.setSpeed(i); 
    motor3.setSpeed(i); 
    motor4.setSpeed(i); 
    delay(30);
  }
  // Торможение двигателей назад
  motor1.run(BACKWARD);
  motor2.run(BACKWARD);
  motor3.run(BACKWARD);
  motor4.run(BACKWARD);
  for (i=255; i>=0; i--) {
    motor1.setSpeed(i); 
    motor2.setSpeed(i); 
    motor3.setSpeed(i); 
    motor4.setSpeed(i); 
    delay(30);
  }
}
Пример управления сразу четырьмя двигателями- вращение вперед и назад, выглядит так:
#include <AFMotor.h>  // Подключаем библиотеку

// Подключаем моторы к разъёмам M1, M2, M3, M4
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);

void setup() {
 motor1.setSpeed(255);
 motor1.run(RELEASE);
 motor2.setSpeed(255);
 motor2.run(RELEASE);
 motor3.setSpeed(255);
 motor3.run(RELEASE);
 motor4.setSpeed(255);
 motor4.run(RELEASE);
}
void loop() {
  // Движения вперед  
  motor1.run(FORWARD); // Устанавливаем направление движения 
  motor2.run(FORWARD);
  motor3.run(FORWARD);
  motor4.run(FORWARD);
  motor1.setSpeed(255); // Устанавливаем скорость движения из диапазона 0-255
  motor2.setSpeed(255); 
  motor3.setSpeed(255); 
  motor4.setSpeed(255); 
  delay(1000); // Движение вперед одну секунду

  // Остановка двигателей с небольшой паузой
  motor1.run(RELEASE); 
  motor2.run(RELEASE);
  motor3.run(RELEASE);
  motor4.run(RELEASE);
  delay(300);

  // Двигаемся в обратном направлении
  motor1.run(BACKWARD);  // Устанавливаем направление движения
  motor2.run(BACKWARD);
  motor3.run(BACKWARD);
  motor4.run(BACKWARD);
  motor1.setSpeed(255);  // Устанавливаем скорость движения из диапазона 0-255 
  motor2.setSpeed(255); 
  motor3.setSpeed(255); 
  motor4.setSpeed(255); 
  delay(1000); // Движение назад одну секунду

  // Остановка двигателей с небольшой паузой
  motor1.run(RELEASE);
  motor2.run(RELEASE);
  motor3.run(RELEASE);
  motor4.run(RELEASE);
  delay(300);
}
Пример управления шаговым двигателем- вращение вперед и назад, выглядит так:
#include <AFMotor.h> // Подключаем библиотеку
// разъёмы M1 и M2 - подключение шагового двигателя № 1
// разъёмы M3 и M4 - подключение шагового двигателя № 2
AF_Stepper stepper(128, 2); // Двигатель № 2 (подключенный к разъёмам М3 и М4) 128 шагов за один полный оборот
void setup() {
}
int i;

void loop() {
  for (i=0; i<128; i++) {
    stepper.step(1, FORWARD, DOUBLE); // Значение шага, направление вращения, тип шага
    delay(50);
  } 
  for (i=128; i!=0; i--) {
    stepper.step(1, BACKWARD, DOUBLE); // Значение шага, направление вращения, тип шага
    delay(50);
  } 
}
Если вращение шагового двигателя неравномерное и неустойчивое, то нужно поменять местами подключение проводов на разъёме М3 или М4.
Если нагрев микросхем L293 на плате драйвера слишком сильный и обжигает пальцы, значит вам попался слишком мощный серводвигатель с большим током потребления. В этом случае нужно использовать более мощный драйвер.
Ссылка на витрину магазина http://dvrobot.ru/237/222.html.





Trackbacks для записи [ Trackback URL ]

Для данной записи нет trackbacks.

Последние комментарии