Как писать программы с мотором?
-
- Сообщения: 4
- Зарегистрирован: 13 фев 2014, 11:14
Как писать программы с мотором?
Здравствуйте, меня зовут Лёня, я бы хотел узнать как на Ардуино писать программы с мотором - мне нужно написать программу чтобы работала такая система:
если кнопка не нажата, то всё остаётся по прежнему,
если кнопка нажата, то...
...то тогда мотор включается и крутится N-ное время в одну сторону, затем N-ное время в другую, и затем выключается (до тех пор, пока я снова не нажму кнопку).
если кнопка не нажата, то всё остаётся по прежнему,
если кнопка нажата, то...
...то тогда мотор включается и крутится N-ное время в одну сторону, затем N-ное время в другую, и затем выключается (до тех пор, пока я снова не нажму кнопку).
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Как писать программы с мотором?
Привет, Лёня!
Для начала, чтобы управлять мотором от ардуино потребуется дополнительная плата Motor Shiled, которая усиливает сигнал управления. Конечно можено спаять такой усилитель и самостоятельно.
Теперь насчет программы. Я приведу сразу исходный код с комментариями:
Для начала, чтобы управлять мотором от ардуино потребуется дополнительная плата 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);
}
}
-
- Сообщения: 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: Как писать программы с мотором?
Для начала можно ознакомиться с темой на этом форуме - "Как подсоединять быстро два обычных мотора к Motor Shield R3".
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Как писать программы с мотором?
Нарисовал схему подключения для платы расширения Motor Shiled 2A. Управление мотором будет через порты: 5-включение мотора и 4-направление вращения. Поэтому надо изменить значения для переменных pinMotorPwr и pinMotorDir соответственно.
-
- Сообщения: 4
- Зарегистрирован: 13 фев 2014, 11:14
Re: Как писать программы с мотором?
Mr.Kubikus писал(а):Нарисовал схему подключения для платы расширения Motor Shiled 2A. Управление мотором будет через порты: 5-включение мотора и 4-направление вращения. Поэтому надо изменить значения для переменных pinMotorPwr и pinMotorDir соответственно.
Но у меня не жёлтый и зелёный, а красный и чёрный провода.
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Как писать программы с мотором?
Я думаю цвет провода не сильно влияет на его проводимость электрического тока
-
- Сообщения: 4
- Зарегистрирован: 13 фев 2014, 11:14
Re: Как писать программы с мотором?
Я подключил, правда убрал из программы всё связанное с кнопкой, но мотор не заработал.Mr.Kubikus писал(а):Я думаю цвет провода не сильно влияет на его проводимость электрического тока
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Как писать программы с мотором?
То есть вы использовали мой пример кода без изменений и мотор не заработал?
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Как писать программы с мотором?
Обратите внимание, что для этой схемы для управления мотором используются следующие порты:
5-включение мотора
4-направление вращения
Вы поменяли в программе значения для переменных pinMotorPwr и pinMotorDir чтобы они соответствовали написанному выше? Покажите ваш код.
5-включение мотора
4-направление вращения
Вы поменяли в программе значения для переменных pinMotorPwr и pinMotorDir чтобы они соответствовали написанному выше? Покажите ваш код.