Начало работы
При работе с коллекторным двигателем очень важно определить сразу все пины и ВЫСТАВИТЬ в 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