Witam forumowiczów
Od jakiegoś czasu próbuję napisać programik do sterowania dwoma silniczkami dc za pomocą Joysticka oraz mostka H
i zawracam się o pomoc,sugestię i wszelkie konstruktywne opinie. Oto programik dodam że weryfikacja z poziomu Arduino IDE wypadła pomyślnie ale silniczki stoją w miejscu i nie reagują na ruchy Joysticka :
Podczas sprawdzania wyjściowego stanu Joysticka to wartości wahają się mniej więcej tak:
X =488
Y =496
Tutaj pytanie czy jest w ogóle możliwość sterowania takimi silnikami używając w miarę nie skomplikowanego programu a jak tak to czy jest opcja wprowadzenia możliwości "łagodnego przejścia" np podczas jazdy prosto w skręt w którąkolwiek stronę ?
Aaa posiadam takowy joystick:
https://botland.com.pl/joystick/2901-thu...results=46
Od jakiegoś czasu próbuję napisać programik do sterowania dwoma silniczkami dc za pomocą Joysticka oraz mostka H
i zawracam się o pomoc,sugestię i wszelkie konstruktywne opinie. Oto programik dodam że weryfikacja z poziomu Arduino IDE wypadła pomyślnie ale silniczki stoją w miejscu i nie reagują na ruchy Joysticka :
Kod:
#define POT1_pin A0 // pin3 - sterowanie silnikiem 1
#define MOT1_pin 10 //pin1 - wyjscie na silnik 1
#define MOT2_pin 9 //pin0 - wyjscie na silnik 2
#define POT2_pin A1//pin4 - sterownie silnikiem 2
const int x_mid=490;
const int y_mid=490;
const int center_hist=30; //wartosci histerezy po przekroczeniu której zaczyna sie cos dziac
void setup() {
pinMode(MOT1_pin, OUTPUT);
pinMode(MOT2_pin, OUTPUT);
pinMode(POT1_pin, INPUT); // joystick pozycja X
pinMode(POT2_pin, INPUT); // joystick pozycja Y
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A5, OUTPUT);
}
void loop() {
int x=analogRead(POT1_pin); //odczyt wartosci
int y=analogRead(POT2_pin);
//sterowanie do przodu
if (x>(x_mid+center_hist)||(y=y_mid+center_hist)) {
pinMode(A2, HIGH);
pinMode(A3, HIGH);
pinMode(A4, LOW);
pinMode(A5, LOW);
byte predkosc1 = map(x, 1023, 460, 51, 230);
analogWrite(MOT1_pin, predkosc1);
analogWrite(MOT2_pin, predkosc1);
delay(15);
}
//sterowanie do tylu
if (x<(x_mid+center_hist) ||(y=y_mid+center_hist)) {
pinMode(A2, LOW);
pinMode(A3, LOW);
pinMode(A4, HIGH);
pinMode(A5, HIGH);
byte predkosc2 =map(x, 520, 0, 51, 230);
analogWrite(MOT1_pin, predkosc2);
analogWrite(MOT2_pin, predkosc2);
delay(15);
}
//sterowanie w prawo
if (y<(y_mid+center_hist) ||(x=x_mid+center_hist)) {
pinMode(A2, HIGH);
pinMode(A3, LOW);
pinMode(A4, LOW);
pinMode(A5, LOW);
byte predkosc3 =map(y, 460, 0, 51, 200);
analogWrite(MOT1_pin, predkosc3);
delay(15);
}
//sterowanie w lewo
if (y>(y_mid+center_hist) ||(x=x_mid+center_hist)) {
pinMode(A2, LOW);
pinMode(A3, HIGH);
pinMode(A4, LOW);
pinMode(A5, LOW);
byte predkosc4 =map(y, 520, 1023, 51, 200);
analogWrite(MOT2_pin, predkosc4);
delay(15);
}
}
X =488
Y =496
Tutaj pytanie czy jest w ogóle możliwość sterowania takimi silnikami używając w miarę nie skomplikowanego programu a jak tak to czy jest opcja wprowadzenia możliwości "łagodnego przejścia" np podczas jazdy prosto w skręt w którąkolwiek stronę ?
Aaa posiadam takowy joystick:
https://botland.com.pl/joystick/2901-thu...results=46