05-10-2018, 13:33
Witam . Potrzebuję zaprogramować swój silnik krokowy tak aby obracał się o określoną liczbę kroków. niestety nie wychodzi mi to, chcialem zrobic zliczanie liczby kroków lecz co chwile wartosc w monitorze portu szeregowego jest 1,0 chociaz nie kasuje mi sie chyba w petli ta wartość. ktos ma pomysł jak to zrobić? Arduino uno, sterownik a4988, silnik krokowy jk42hs40-0504 i joystick arduino.
Kod:
#define step_pin 3
#define dir_pin 4
#define X_pin A0
int direction;
int steps = 200;
int wartosc = 0;
void setup() {
pinMode(dir_pin, OUTPUT);
pinMode(step_pin, OUTPUT);
Serial.begin(115200);
}
void loop(){
while (analogRead(X_pin) >= 0 && analogRead(X_pin) <= 500) {
int kroki;
int wartosc = analogRead(A0);
byte predkosc = map(wartosc, 512, 1, 20, 1);
digitalWrite(dir_pin, HIGH); // (HIGH = anti-clockwise / LOW = clockwise)
digitalWrite(step_pin, HIGH);
delay(predkosc);
digitalWrite(step_pin, LOW);
delay(predkosc);
Serial.print("liczba kroków: ");
Serial.print(digitalRead(kroki));
Serial.print("\n");
kroki = kroki +5; }
while (analogRead(X_pin) > 524 && analogRead(X_pin) <= 1024) {
int wartosc = analogRead(A0);
byte predkosc1 = map(wartosc, 512, 1023, 20, 1);
digitalWrite(dir_pin, LOW); // (HIGH = anti-clockwise / LOW = clockwise)
digitalWrite(step_pin, HIGH);
delay(predkosc1);
digitalWrite(step_pin, LOW);
delay(predkosc1);}}