В различных проектах с использованием Arduino зачастую приходится управлять небольшими электродвигателями, работа с которыми посредством одних лишь выводов микроконтроллера может привести к выводу устройства из строя вследствие протекания слишком большого тока. Чтобы этого не произошло, следует использовать драйверы двигателей. И одним из хороших вариантов является драйвер L293D, работу с которым мы рассмотрим в данном материале.
Распиновка микросхемы драйвера L293D следующая:
Подключение Arduino к драйверу L293D очень просто и показано на следующей схеме подключения. На данной схеме нижний провод от микросхемы – это тот провод, который следует подключить к плюсу источника питания (для простоты источник питания не показан).
Физически это может выглядеть следующим образом.
Код очень прост, в нем мы используем операторы «for» и «analogWrite» для управления двигателем. Например, когда сигнал на выводе 5 низкий, а на выводе 6 высокий, двигатель будет вращаться по часовой стрелке. Когда же на выводе 5 сигнал высокий, а на выводе 6 низкий, он будет вращаться против часовой стрелки.
void setup() {
}
void loop() {
for(int i = 0; i<255; i++){
analogWrite(5, i);
analogWrite(6, 0);
delay(5);
}
for(int i = 0; i<255; i++){
analogWrite(5, 255-i);
analogWrite(6, 0);
delay(5);
}
for(int i = 0; i<255; i++){
analogWrite(5, 0);
analogWrite(6, i);
delay(5);
}
for(int i = 0; i<255; i++){
analogWrite(5, 0);
analogWrite(6, 255-i);
delay(5);
}
}
© digitrode.ru