Регулятор скорости вращения для униполярного шагового двигателя на базе Didgispark

Простой и не дорогой, регулятор скорости вращения, для униполярного шагового двигателя.

Принцип работы заключается в том, что плата Digispark считывает значение с потенциометра, и на основе полученного значения, выдает импульсы для шагового двигателя. Если крутить потенциометр по часовой стрелке, то скорость вращения шагового двигателя увеличивается. При вращении против часовой стрелки, скорость вращения шагового двигателя уменьшается, и в конце вовсе останавливается.

 регулятор скорости вращения, для униполярного шагового двигателя

Основой проекта является плата Digispark, на базе микроконтроллера Attiny85, она дешевая, компактная и прошивается напрямую через USB, без использования программатора. Также понадобится униполярный шаговый двигатель 28BYJ-48 на 5 вольт, и драйвер на базе микросхемы ULN2003, который обычно идет в комплекте с шаговым двигателем, также понадобится потенциометр от 2 до 10 киллоом, и несколько соединительных проводов. Я еще использую безпаечную макетную плату, вы при желании можете сразу все спаять.

Digispark

Загрузите этот скетч на плату.


//Начало скетча


void setup() {
  // 0, 1, 2, 4 контакты к которым подключается шаговый двигатель
  pinMode(0, OUTPUT); pinMode(1, OUTPUT);
  pinMode(2, OUTPUT); pinMode(4, OUTPUT);
}

void loop() {
  int sensorReading = analogRead(A3);//pin 3
  int t1 = map(sensorReading, 0, 910, 1800, 32767);
  
  if (sensorReading > 910)
  { digitalWrite(0, LOW); digitalWrite(1, LOW);
    digitalWrite(2, LOW); digitalWrite(4, LOW);
  }
  
  if (sensorReading < 909) {
    digitalWrite(4, HIGH); digitalWrite(1, LOW); delayMicroseconds(t1);
    digitalWrite(2, HIGH); digitalWrite(0, LOW); delayMicroseconds(t1);
    digitalWrite(1, HIGH); digitalWrite(4, LOW); delayMicroseconds(t1);
    digitalWrite(0, HIGH); digitalWrite(2, LOW); delayMicroseconds(t1);
  }
}


//Конец скетча




И соберите все, как показано на этой схеме.

Схема для управления шаговым двигателем

Видео "Регулятор скорости вращения для униполярного шагового двигателя на базе Didispark"


Регулятор скорости вращения для униполярного шагового двигателя на базе Didispark