Начало работы

При работе с коллекторным двигателем очень важно определить сразу все пины и ВЫСТАВИТЬ в HIGH ПИН PB3(SLEEPn) (что это за пины см в документации к драйверу) в функции setup(). Чтобы задать частоту ШИМа используйте функцию analogWriteFrequency(), по умолчанию она равна килогерцу (1000 Гц).

void setup() {
 
  pinMode(SLEEPn, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
   
  digitalWrite(SLEEPn, HIGH);
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  
  analogWriteFrequency(20000); //частота ШИМа 20 кГц
}

Мотор не вращается!!!

Если в будущих примерах вы столкнетесь с тем, что мотор не вращается(или во время вращения на какое-то время останавливается, особенно при большой разнице между подаваемыми напряжениями), обратите внимание на Vref - пин PA4(см в документации к драйверу). Это защита от перегрузки по току, пин Analog OCP(Over-Current Protection) reference input, то есть аналоговый вход, куда подается опорное (пороговое) напряжение.

Этот вход задаёт «уровень срабатывания» защиты:

  • Чем выше напряжение, тем выше допустимый ток.

  • Чем ниже - тем раньше сработает защита.

Согласно документации к драйверу, максимальное напряжение - 3.3 V. Пример того, как задать опорное напряжение:

void setup() {

  pinMode(SLEEPn, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(VREF, OUTPUT);
 
  digitalWrite(SLEEPn, HIGH);
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  
  analogWriteResolution(12);
  int vref = int( 2.5 * 4096 / 3.3) // здесь пороговое напряжение 2.5V
  analogWrite(VREF, vref);
  analogWriteFrequency(25000);
}

Last updated