![]() |
|
![]() |
#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) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|