Помогите с шаговым двигателем

Помогите пожалуйста, хочу сделать ШД Nemo17 на управление джойстиком, нашел скетч в интернете, загрузил, повороты от джойстика работают, но сам ШД производит самовольную работу, когда стоит в застое, то есть не подаю сигнал джойстика, а шаговый двигатель произвольно крутится в разные стороны и высокое потребление тока, но как я начинаю с помощью джойстика управлять им, то сразу все нормально становится, поваричивает в нужную сторону и потребление тока нормальное

Вот сам скетч

мальчик, ты дурак? Это не скетч.

3 лайка

Лучше помогите, чем оскорблять, я новичок, и мне суждено ошибаться

скетч вот так выглядит

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second
}
2 лайка

Правила форума почитайте, прежде чем постить. Код выкладывается ТЕКСТОМ, с использованием тегов кода, а не картинками, где надо ломать глаза, пытаясь что-то разглядеть.
Скриншоты с кодом - неуважение к участникам, поэтому и реакция такая.

1 лайк

Ещё и со вспышкой :smiley:

думаю сигнал с джойстика моросит и выпадает из твоего зазора нечувствительности 500 - 523
Написать простой скетч с выводом значений с джойстика в монитор порта, для начала

я себе такой делал . все отлично работает . есть еще другой похожий тоже с картой
поставь протестируй .

#define step_pin 2 // Pin 21 connected to Steps pin on EasyDriver 2
#define dir_pin 5 // Pin 15 connected to Direction pin 5
#define en_pin 8 // Pin 23 connected to en pin 8
#define A_pin A0 // Pin 35 connected to joystick x axis A7


int switchPin = 9;  // кнопка джойстика
int A = 0;
int T = 1;

void Step() {
 pinMode(8, OUTPUT);
 pinMode(2, OUTPUT);
  digitalWrite(2, 1);
 delayMicroseconds(T);
 pinMode(8, OUTPUT);
 pinMode(2, OUTPUT);
  digitalWrite(2, 0);
 delayMicroseconds(T);
}

void setup() {
 pinMode(switchPin, INPUT);
 digitalWrite(switchPin, HIGH); // включаем встроенный подтягивающий резистор	
 Serial.begin(115200);

}

void loop() {
   A = analogRead(A0);
   Serial.println(A);
     int ledState = digitalRead(switchPin); // считываем состояние кнопки
   Serial.print("\t"); // табуляция
   Serial.println(switchPin);
 delay(100);
   if (A > 570) {
      digitalWrite(8, LOW);
     T = map(A, 570, 1023, 255, 0);
     pinMode(5, OUTPUT);
      digitalWrite(5, 1);
     Step();
   }
   if (A < 540) {
      digitalWrite(8, LOW);
     T = map(A, 540, 0, 255, 0);
     pinMode(5, OUTPUT);
      digitalWrite(5, 0);
     Step();
   }
   if (A > 540 & A < 570) {
      digitalWrite(8, HIGH);
     pinMode(5, OUTPUT);
      digitalWrite(5, 0);
     pinMode(2, OUTPUT);
      digitalWrite(2, 0);
   }

}