програмирование motor control shild l293dd
- Войдите на сайт для отправки комментариев
Втр, 19/07/2016 - 15:21
Уважаемые программисты ардуино,кто программировал ардуино уно с motor control shild l293dd помогите с кодом новичку,чтобы 2 колеса вращались вперед ,5 сек. назад,затем поворот плево или вправо,короче чтобы робот ездил по помещению, и 2 мотора вращались в одном напраилении(для щетки и кулера),хочу сделать робот пылесос ,корпус уже сделал.перепробовал скетчи ,неработает или колеса крутят в одном направлении,спасибо тем кто поможет
Так а что именно не получается? Выкладывайте свой код, с комментариями - вот тут мол, и тут, не работает как надо - и сразу поможем.
Пробовал програмировать свое изделие на подобие с сайта
http://geekelectronics.org/arduino/vedroid-mobil-robot-na-arduino-chast-2-podklyuchaem-motor-shield.html
код:
#include <AFMotor.h> // Подключаем библиотеку для управления двигателями
#include <Servo.h> // Подключаем библиотеку для сервоприводом
//Создаем объекты для двигателей
AF_DCMotor motor1(1); //канал М1 на Motor Shield — задний левый
AF_DCMotor motor2(2); //канал М2 на Motor Shield — задний правый
AF_DCMotor motor3(3); //канал М3 на Motor Shield — передний левый
AF_DCMotor motor4(4); //канал М4 на Motor Shield — передний правый
// Создаем объект для сервопривода
Servo myservo;
void setup() {
// Выбираем пин к которому подключен сервопривод
myservo.attach(9); // или 10, если воткнули в крайний разъём
// Поворачиваем сервопривод в положение 0 градусов при каждом включении
myservo.write(0);
// Пауза 5 секунд
delay(5000);
}
void loop() {
//Устанавливаем скорость 100% (0-255)
motor1.setSpeed(255);
motor2.setSpeed(255);
motor3.setSpeed(255);
motor4.setSpeed(255);
// Задаем направление движение
// FORWARD - вперед
// BACKWARD - назад
// RELEASE - стоп
// Движение вперед в течении 5 секунд с поворотом сервы на угол 90 градусов
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
myservo.write(90); // Поворот сервы на угол 90 градусов
delay(5000);
// Поворот вправо в течении 2 секунд с поворотом сервы на угол 180 градусов
motor1.run(FORWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(BACKWARD);
myservo.write(180); // Поворот сервы на угол 180 градусов
delay(2000);
// Движение назад в течении 5 секунд с поворотом сервы на угол 90 градусов
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
myservo.write(90); // Поворот сервы на угол 90 градусов
delay(5000);
//Поворот влево в течении 2 секунд с поворотом сервы на угол 0 градусов
motor1.run(BACKWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(FORWARD);
myservo.write(0); // Поворот сервы на угол 0 градусов
delay(2000);
// Остановка двигателей на 3 секунды с поворотом сервы на угол 90 градусов
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
myservo.write(90); // Поворот сервы на угол 90 градусов
delay(3000);
}
едиственное у него ардуино Mega 2560 и Motor Drive Shield 2x L293D. код программирования там же, есть 2 только но, у меня ардуино уно р 3 и мотор контрол шилд l293dd (описание по сайту l293dd
http://www.chipdip.ru/product/motor-control-shield/ Также совмещается с ардуино. Пробовал со скетча настроить без прграммироввания servo т.к в других его видео сообщается что есть глюк из за servo motor, да и воткнуть его куда. казалолсь бы всего то надо чтобы два мотора передних меняли направление, а задние постоянно вращались в одном направлении ,это для щетки и турбины,на моторе, в прошлом коменте описал не верно как кулер. В общем пробовал редактировать его скетч на свой лад, но не вышло.без servo компиляция прроходит успешноДА AF MOTOR через библиотеку загружал,даже прорбовал загружать отдельно тест от af mo0tor результат не положительный. а компиляция успешна.тестировал на 1 колесе на каждое реле. Понимаю что гдето совершаю ошибки. т,к . еще недавно стал заниматься этим делом, завелся, а не выходит.Кто может уделите время буду очень благодарен.
http://www.chipdip.ru/product/motor-control-shield/ Также совмещается с ардуино. Пробовал со скетча настроить без прграммироввания servo т.к в других его видео сообщается что есть глюк из за servo motor, да и воткнуть его куда. казалолсь бы всего то надо чтобы два мотора передних меняли направление, а задние постоянно вращались в одном направлении ,это для щетки и турбины,на моторе, в прошлом коменте описал не верно как кулер. В общем пробовал редактировать его скетч на свой лад, но не вышло.без servo компиляция прроходит успешноДА AF MOTOR через библиотеку загружал,даже прорбовал загружать отдельно тест от af mo0tor результат не положительный. а компиляция успешна.тестировал на 1 колесе на каждое реле. Понимаю что гдето совершаю ошибки. т,к . еще недавно стал заниматься этим делом, завелся, а не выходит.Кто может уделите время буду очень благодарен.
Во-первых, правильно оформите код, в редакторе сообщения есть кнопочка "code" для вставки кода. Во-вторых - попробуйте не спеша перечитать то, что вы написали в процитированном мной тексте. Вам что-нибудь там понятно? Мне - нет, я вижу только сумбурный поток мыслей.
компиляция этого кода у меня прошла без ошибок,
использую ардуино уно r 3 , и motor control shild l293dd
Хотел сделать чтобы два выхода на колеса давали направление изделия пылесоса,как на подобие с сайта http://geekelectronics.org/arduino/vedroid-mobil-robot-na-arduino-chast-2-podklyuchaem-motor-shield.htm видео есть.
но на 4 колеса не надо как в сайте только 2,
3 выход на щетку(направление должно быть 1 направление,без изменений вперед, постоянное, 4 выход таже ,чтобы срабатывал в одном только направлени, это для мотора вентилятора.
У вас проблемы, как выпилить два лишних колеса из скетча? Комментируйте строчки с motor3. и motor4.
Да именно,настроить выходы первый и второй на колеса, а остальные моторы на 3 и 4 выходы настроить надо ,чтобы они при включении пылесоса крутили постоянно без перерыва до отключения пылесоса. C направлением вентилятора и щетки я разберусь ,если что поменяю полярности вращения
Ну так начните с малого: закомментируйте все строчки работы с лишними двумя моторами, добейтесь, чтобы оставшиеся два мотора работали так, как вам надо. За это время поймёте логику работы скетча, потом уже - пришпилите туда работу других моторов так, как вам надо. Скетч несложный, разбираться практически не в чем, так что это самое то для начала работы и понимания, что чего делает.