![]() |
|
|
|
|
#1 |
|
Junior Member
Регистрация: 16.01.2017
Сообщений: 8
Вес репутации: 0 ![]() |
имеется:
UNO L293D shield Два двигателя Всё это дело собрал в "бутерброд", энкодеры подключил на 2,3 пин. Заливаю код (см ниже), начинает кружиться влево (видимо из-за особенностей одного из двигателей). Отключаю обработку прерываний - ездит и поворачивает нормально. На основе приведенного кода синхронизации скорости вращения колес в одной из веток данного форума, написал код: PHP код:
|
|
|
|
|
|
#2 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Попробуйте выбросить из прерываний все Serial.print
|
|
|
|
|
|
#3 |
|
Junior Member
Регистрация: 16.01.2017
Сообщений: 8
Вес репутации: 0 ![]() |
я их, наоборот,вставил для отладки. Почему-то ощущение, что работает только одно прерывание (один энкодер), вот для проверки и вставил вывод в консоль - работает и второй, но как-то странно.
|
|
|
|
|
|
#4 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
для отладки прерываний лучше подключить светодиоды
Ошибок в коде я не вижу http://cyber-place.ru/showthread.php?t=627 Возможно Вы полярности на двигателе попутали |
|
|
|
|
|
#5 |
|
Junior Member
Регистрация: 16.01.2017
Сообщений: 8
Вес репутации: 0 ![]() |
с полярностью всё ок, ибо при отключении прерываний, едет прямо затем поворот налево.
Единственное, о чем я думаю - пин 2 задействован на контролере двигателей для 2го движка, я специально свои подключил к 3 и 4. Смотрю на код и в обработчике прерываний, я останавливаю движки, может этого делать не надо? Или то, что кручу обоими двигателями? перепишу на корректировку одним двигателем, может проблема тут... Спасибо за совет со светодиодами! |
|
|
|
|
|
#6 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Попробуйте код по ссылке выше
|
|
|
|
|
|
#7 |
|
Junior Member
Регистрация: 16.01.2017
Сообщений: 8
Вес репутации: 0 ![]() |
добился таки чтобы робот поехал по этому алгоритму.
Но есть но: - как не делал, все-равно едет с подруливанием вправо-влево. - двигается более прямо, но всё-равно загребает влево. - при включении, двигатели крутятся в разнофазе (т.е. разворачивается на месте), хотя по алгоритму - никаких разворотов. |
|
|
|
|
|
#8 | |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
|
|
|
|
|
|
|
#9 |
|
Junior Member
Регистрация: 16.01.2017
Сообщений: 8
Вес репутации: 0 ![]() |
с разным диаметром колес идея интересная, конечно. Хотя, колеса, вроде бы такие же как у вас.
хм, а если меняю пины энкодеров местами, начинает загребать вправо. думаю, стоит сравнить энкодеры еще. код, кстати, тут: https://github.com/kdsystem/Arduino/...t/my_robot.ino |
|
|
|
|
|
#10 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
А какие энкодеры используете?
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|