Далее код прошивки. Посмотрите пожалуйста может что где подправить или вообще все не покатит я думаю вроде должно работать. В данном случае пин STEP 1 цифровой(это пины Ардуино если что


int x=0;
int s=0;
int p=0;
int STEP=1;
int DIR=2;
int a=9;//PWM!!!
int b=10;//PWM!!!
int c=11;//PWM!!!
int d=6;//PWM!!!
int swin=0;
int swout=3;
void setup(){
pinMode(STEP, INPUT);
pinMode(DIR, INPUT);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(swin, INPUT);
pinMode(swout, OUTPUT);
}
void loop(){
if(digitalRead(swin) == HIGH){
digitalWrite(swout, HIGH);
}
else{
digitalWrite(swout, LOW);
}
p=analogRead(A5);
p=map(p, 0, 1023, 0, 55);
Pausa:
if(digitalRead(STEP) == HIGH){
goto Pausa;
}
if(s==1){
analogWrite(a, p);
}
if(s==2){
analogWrite(a, p);
analogWrite(b, p);
}
if(s==3){
analogWrite(b, p);
}
if(s==4){
analogWrite(b, p);
analogWrite(c, p);
}
if(s==5){
analogWrite(c, p);
}
if(s==6){
analogWrite(c, p);
analogWrite(d, p);
}
if(s==7){
analogWrite(d, p);
}
if(s==8){
analogWrite(d, p);
analogWrite(a, p);
}
Pausa2:
if(digitalRead(STEP) == LOW){
goto Pausa2;
}
if(digitalRead(DIR)==LOW){
if(s==9){
s=0;
}
s=s+1;
if(s==9){
s=1;
}
if(s==1){
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
}
if(s==2){
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
}
if(s==3){
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
}
if(s==4){
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
}
if(s==5){
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
}
if(s==6){
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
}
if(s==7){
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
}
if(s==8){
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
}
}
else {
if(s==9){
s=8;
}
s=s-1;
if(s==0){
s=8;
}
if(s==1){
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
}
if(s==2){
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
}
if(s==3){
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
}
if(s==4){
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
}
if(s==5){
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
}
if(s==6){
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
}
if(s==7){
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
}
if(s==8){
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
}
}
}