Здаёцца мне что дело тут не в электронике... Himik, забей пока на датчики, напиши прогу чтобы он тупо ехал по прямой какое-то время, без опроса датчиков, а потом чтобы один из двигателей отключался. Т.к. у тебя enable жосско посажен на + питания то остановить один движок можно подав 1 или 0 на оба вывода двигателя, тогда мы увидим, может он поворачивать, или нет.
yak-40 писал(а):что-бы такая тележка разворачивалась на месте, или хотя-бы приемлимо поворачивала вообще, нужен полный привод, или поворачивающиеся передние колёса.
У неё и так полный привод - левый двигатель крутит левые колёса, правый - правые. А поворачивает она ооочень приемлимо, только трясёт её при этом...
раз два датчика то подрисуй их на этой схеме да я хочу того сделать тока по другой програме ПРИМЕР 4 ПРОСТЕЙШИЙ АЛГОРИТМ СЛЕДОВАНИЯ ПО ЛИНИИ MYROBOT.RU
/*************************************************** ПРИМЕР 2 :: ДВИЖЕНИЕ ПРЯМО С ПОВОРОТОМ :: MYROBOT.RU ****************************************************/
#include <avr/io.h>
/***************** Функция задержки ****************/ void delay(unsigned short ms) // Минимальная задержка с кварцем 8 МГц - 1 мс { unsigned short i, j, k; // объявляем переменные
for (i=0; i<ms; i++) // главный цикл формирования задержки for (j=0; j<185; j++) // вложенный цикл формирования задержки k++; // произвольное действие } /****************************************************/
int main(void) // начало основной программы {
DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C PORTC &= ~_BV(PC3); // установить "0" на линии 3 порта C PORTC |= _BV(PC4); // установить "1" на линии 4 порта C
delay(100); // ждем 1 сек. // ----------------------------------------------------
// ---------- останавливаем мотор M2 на 0,5 сек ------
PORTC &= ~_BV(PC1); // установить "1" на линии 1 порта C PORTC |= _BV(PC2); // установить "0" на линии 2 порта C PORTC |= _BV(PC3); // установить "0" на линии 3 порта C PORTC &= ~_BV(PC4); // установить "1" на линии 4 порта C
delay(100); // ждем 0,5 сек. // ----------------------------------------------------
Ну вот, а говорили что поворачивать не умеет... Теперь можешь вставлять в прогу обработку датчиков, поворот по такому же принципу - остановкой одного двигателя...
А на блоке питания рядом с вольтажом не написано на сколько он ампер? Такие моторы (по крайней мере у меня) под нагрузкой кушают примерно полтора ампера, возможно что твой БП не может столько выдать, вот у тебя и не получается разворот на месте, когда движки крутят в разные стороны. А почему не получается сделать остановку? Все выходы в 0, они и остановится.