Untitled
unknown
c_cpp
a year ago
3.0 kB
4
Indexable
// Определение пинов для подключения к драйверу ULN2003 const int motorPin1 = 8; // IN1 на драйвере ULN2003 const int motorPin2 = 9; // IN2 на драйвере ULN2003 const int motorPin3 = 10; // IN3 на драйвере ULN2003 const int motorPin4 = 11; // IN4 на драйвере ULN2003 // Шаги для полного оборота (зависит от двигателя и режима управления) const int stepsPerRevolution = 2048; void setup() { // Устанавливаем режим работы пинов pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); } void loop() { // Вращение по часовой стрелке for (int i = 0; i < stepsPerRevolution; i++) { stepMotor(i % 4); delay(2); // Регулировка скорости вращения } delay(1000); // Пауза между вращениями // Вращение против часовой стрелки for (int i = 0; i < stepsPerRevolution; i++) { stepMotor((i % 4) + 4); delay(2); // Регулировка скорости вращения } delay(1000); // Пауза между вращениями } // Функция для управления шагами двигателя void stepMotor(int thisStep) { switch (thisStep) { case 0: // 1010 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); break; case 1: // 0110 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); break; case 2: //0101 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); break; case 3: //1001 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); break; case 4: // 1010 обратный порядок digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); break; case 5: // 0110 обратный порядок digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); break; case 6: //0101 обратный порядок digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); break; case 7: //1001 обратный порядок digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); break; } }
Editor is loading...
Leave a Comment