Нужна помощь в написании скетча управления двумя моторами одним и одним джойстиком
- Войдите на сайт для отправки комментариев
Вс, 16/10/2016 - 19:26
Помогите с программой, есть два мотора которые потключены к АРДУИНО УНО, джойстик который подключённые к аналоговым пинам(0 и 1) Необходимо их заставить синхронно работать, при подачи рычага джойстика вперёд( оба крутит вперёд)В ЭТОМ ЖЕ ПОЛОЖЕНИИ при смещении рычага в лево( Один затухает второй остаёться на полных оборотах)Ну и в право тоже самое, при подачи назад ( оба крутит назад ), на нейтральном положении хода нет. За схему не пинайте, новичок в этом деле. При использовании моего кода оба двигателя просто крутятся впед на полных оборотах. Схема будет использоваться для управления гусиничной машинкой, в дальнейшем планирую добавить радио модули.
#define axis_X 0 // Ось Х подключена к Analog 0 #define axis_Y 1 // Ось Y подключена к Analog 1 int value_X, value_Y; // Переменные для хранения значений осей const int in1 = 2; // direction pin 1 const int in2 = 4; // direction pin 2 const int ena = 3; // PWM pin to change speed const int in3 = 7; // direction pin 1 const int in4 = 1; // direction pin 2 const int enb = 5; // PWM pin to change speed int fspeed; // forward speed void setup(){ pinMode(in1, OUTPUT); // connection to L298n pinMode(in2, OUTPUT); // connection to L298n pinMode(ena, OUTPUT); // connection to L298n pinMode(in3, OUTPUT); // connection to L298n pinMode(in4, OUTPUT); // connection to L298n pinMode(enb, OUTPUT); // connection to L298n } void loop(){ digitalWrite(1, LOW); value_X = analogRead(axis_X); if (axis_X == 125) analogWrite(ena, 0); if (axis_X > 125) { fspeed = map(axis_X, 125, 255, 0, 255); digitalWrite(in1, LOW); digitalWrite(in2, HIGH); analogWrite(ena, fspeed); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enb, fspeed); } if (axis_X < 125) { fspeed = map(axis_X, 0, 125, 255, 0); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(ena, fspeed); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enb, fspeed); } value_Y = analogRead(axis_Y); if (axis_Y == 125) analogWrite(enb, 0); if (axis_Y > 125){ fspeed = map(axis_Y, 125, 255, 0, 255); digitalWrite(in1, LOW); digitalWrite(in2, HIGH); analogWrite(ena, fspeed); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enb, fspeed); } if (axis_Y < 125){ fspeed = map(axis_Y, 0, 125, 255, 0); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(ena, fspeed); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enb, fspeed); } delay(50); }
Зарание блогодарен.
Доброго времени суток,я хотел узнать получилось ли написать эту программу к двум моторам ?
Да получилось, нашёл в сети отрывки кода от управления танком, все оказалось проще чем я думал
Можно ли попросить слить мне эту прошивку, пожалуйста.я в Ардуино совсем новечек ,но мне это нужно. я хочу, также ,сделать управление каляски на этой схеме.если вам не сложно буте добры сделайте это...заранее благодарен.если возможно скиньте здесь или на мыло lehich1984@gmail.com
Не проверял