Как писать программы с мотором?

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY
Ответить
Лёня Осетинский
Сообщения: 4
Зарегистрирован: 13 фев 2014, 11:14

Как писать программы с мотором?

Сообщение Лёня Осетинский »

Здравствуйте, меня зовут Лёня, я бы хотел узнать как на Ардуино писать программы с мотором - мне нужно написать программу чтобы работала такая система:
если кнопка не нажата, то всё остаётся по прежнему,
если кнопка нажата, то...
...то тогда мотор включается и крутится N-ное время в одну сторону, затем N-ное время в другую, и затем выключается (до тех пор, пока я снова не нажму кнопку).
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Как писать программы с мотором?

Сообщение Mr.Kubikus »

Привет, Лёня!
Для начала, чтобы управлять мотором от ардуино потребуется дополнительная плата Motor Shiled, которая усиливает сигнал управления. Конечно можено спаять такой усилитель и самостоятельно.

Теперь насчет программы. Я приведу сразу исходный код с комментариями:

Код: Выделить всё

// Номера портов
int pinButton = 0; // Номер порта, к которому подключена кнопка
int pinMotorPwr = 1;  // Номер порта, к которому подключен сигнал включения мотора
int pinMotorDir = 2;  // Номер порта, к которому подключен сигнал направления вращения мотора

void setup() {
  // Настраиваем режимы работы портов
  pinMode(pinButton, INPUT);
  pinMode(pinMotorPwr, OUTPUT);
  pinMode(pinMotorDir, OUTPUT);
}

void loop() {
  // Обрабатываем нажатие на кнопку
  if (digitalRead(pinButton)){
    digitalWrite(pinMotorPwr, HIGH);
    digitalWrite(pinMotorDir, HIGH);    
    delay(3000);
    digitalWrite(pinMotorDir, LOW);    
    delay(3000);
    digitalWrite(pinMotorPwr, LOW);
    digitalWrite(pinMotorDir, LOW);    
  }
}

С уважением, Григорий
GitHub FB ВК
Лёня Осетинский
Сообщения: 4
Зарегистрирован: 13 фев 2014, 11:14

Re: Как писать программы с мотором?

Сообщение Лёня Осетинский »

Mr.Kubikus писал(а):Привет, Лёня!
Для начала, чтобы управлять мотором от ардуино потребуется дополнительная плата Motor Shiled, которая усиливает сигнал управления. Конечно можено спаять такой усилитель и самостоятельно.

Теперь насчет программы. Я приведу сразу исходный код с комментариями:

Код: Выделить всё

// Номера портов
int pinButton = 0; // Номер порта, к которому подключена кнопка
int pinMotor = 1;  // Номер порта, к которому подключен мотор

// Глобальные переменные
bool motorStateOn = false;  // Флаг состояния мотора:
                            // false - выключен
                            // true - включен

void setup() {
  // Настраиваем режимы работы портов
  pinMode(pinButton, INPUT);
  pinMode(pinMotor, OUTPUT);
}

void loop() {
  // Обрабатываем нажатие на кнопку
  if (digitalRead(pinButton)){
    if (motorStateOn == true) {
      motorStateOn = false;
    } else {
      motorStateOn = true;
    }
    delay(10);
  }

  // Управляем мотором в заисимости от состояния флага motorStateOn
  if (motorStateOn == true) {
    digitalWrite(pinMotor, HIGH);
  } else {
    digitalWrite(pinMotor, LOW);
  }
}

Спасибо, но... даже если я приобрету эту плату, то всё равно - как мне собирать с ней схему - я не умею (у меня набор SparkFun Inventor's Kit - V3.1)?
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Как писать программы с мотором?

Сообщение Mr.Kubikus »

Для начала можно ознакомиться с темой на этом форуме - "Как подсоединять быстро два обычных мотора к Motor Shield R3".
С уважением, Григорий
GitHub FB ВК
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Как писать программы с мотором?

Сообщение Mr.Kubikus »

Нарисовал схему подключения для платы расширения Motor Shiled 2A. Управление мотором будет через порты: 5-включение мотора и 4-направление вращения. Поэтому надо изменить значения для переменных pinMotorPwr и pinMotorDir соответственно.
motor-connect-1.jpg
motor-connect-1.jpg (65.59 КБ) 33096 просмотров
С уважением, Григорий
GitHub FB ВК
Лёня Осетинский
Сообщения: 4
Зарегистрирован: 13 фев 2014, 11:14

Re: Как писать программы с мотором?

Сообщение Лёня Осетинский »

Mr.Kubikus писал(а):Нарисовал схему подключения для платы расширения Motor Shiled 2A. Управление мотором будет через порты: 5-включение мотора и 4-направление вращения. Поэтому надо изменить значения для переменных pinMotorPwr и pinMotorDir соответственно.
motor-connect-1.jpg

Но у меня не жёлтый и зелёный, а красный и чёрный провода.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Как писать программы с мотором?

Сообщение Mr.Kubikus »

Я думаю цвет провода не сильно влияет на его проводимость электрического тока :roll:
С уважением, Григорий
GitHub FB ВК
Лёня Осетинский
Сообщения: 4
Зарегистрирован: 13 фев 2014, 11:14

Re: Как писать программы с мотором?

Сообщение Лёня Осетинский »

Mr.Kubikus писал(а):Я думаю цвет провода не сильно влияет на его проводимость электрического тока :roll:
Я подключил, правда убрал из программы всё связанное с кнопкой, но мотор не заработал.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Как писать программы с мотором?

Сообщение Mr.Kubikus »

То есть вы использовали мой пример кода без изменений и мотор не заработал?
С уважением, Григорий
GitHub FB ВК
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Как писать программы с мотором?

Сообщение Mr.Kubikus »

Обратите внимание, что для этой схемы для управления мотором используются следующие порты:
5-включение мотора
4-направление вращения

Вы поменяли в программе значения для переменных pinMotorPwr и pinMotorDir чтобы они соответствовали написанному выше? Покажите ваш код.
С уважением, Григорий
GitHub FB ВК
Ответить