Занятие № 3. Биполярный транзистор. Программное управление двигателем постоянного тока.

По окончании занятия учащиеся смогут…

Задание № 1. Управление двигателем с помощью биполярного транзистора

Соберите схему для управления двигателем постоянного тока с помощью биполярного транзистора.

Схема для сборки

Программа

const int MOTOR = 9;

void setup()
{
    pinMode(MOTOR, OUTPUT);
}

void loop()
{
    digitalWrite(MOTOR, HIGH);
    delay(2000);
    digitalWrite(MOTOR, LOW);
    delay(2000);
}

Задание № 2. Управление количеством оборотов с помощью ШИМ-сигнала

Схема для сборка остаётся без изменений.

Программа

const int MOTOR = 9;

void setup()
{
    pinMode(MOTOR, OUTPUT);
}

void loop()
{
    analogWrite(MOTOR, 127);
    delay(2000);
    analogWrite(MOTOR, 255);
    delay(2000);
    analogWrite(MOTOR, 127);
    delay(2000);
    analogWrite(MOTOR, 0);
    delay(2000);
}

Задание № 3. Управление мотором с помощью H-моста

Используем драйвер мотора L293D для управления направлением и скоростью вращения мотора.

Схема

Программа

const int EN=9;   
const int MC1=3;  
const int MC2=2;  
const int POT=0;  
 
void setup()
{
    pinMode(EN, OUTPUT);
    pinMode(MC1, OUTPUT);
    pinMode(MC2, OUTPUT);
    brake();
}
 
void loop()
{
    brake();
    delay(2000);
    forward(255);
    delay(1000);
    forward(127);
    delay(1000);
    reverse(127);
    delay(2000);
}

void forward (int rate)
{
    digitalWrite(EN, LOW);
    digitalWrite(MC1, HIGH);
    digitalWrite(MC2, LOW);
    analogWrite(EN, rate);
}

void reverse (int rate)
{
    digitalWrite(EN, LOW);
    digitalWrite(MC1, LOW);
    digitalWrite(MC2, HIGH);
    analogWrite(EN, rate);
}
 
void brake ()
{
    digitalWrite(EN, LOW);
    digitalWrite(MC1, LOW);
    digitalWrite(MC2, LOW);
    digitalWrite(EN, HIGH);
}

Задание для самостоятельной работы

К схеме задания 3 добавьте потенциометр для управления скоростью вращения двигателя.