Проект 11: Транзистор MOSFET. Показуємо підсилювальні якості транзистора. На прикладі електродвигуна змінюємо оберти
В цьому експерименті ми познайомимося з транзистором MOSFET і за допомогою нього будемо управляти потужним навантаженням - електродвигуном.
Необхідні компоненти:
- контролер Arduino UNO R3;
- плата для прототипування;
- транзистор MOSFET IRF540;
- діод 1N4007;
- двигун DC;
- блок живлення 5 В;
- дроти тато-тато.
Виходи Arduino, сконфігуровані як OUTPUT, знаходяться в низькоімпедансному стані і можуть віддавати 40 мА в навантаження і не в змозі забезпечити живлення потужного навантаження і великої напруги. Одним із способів управління потужним навантаженням є використання польових MOSFET-транзисторів. MOSFET-транзистор - це ключ для управління великими струмами за допомогою невеликої напруги (на відміну від біполярних транзисторів, керованих струмом). У нашому експерименті ми будемо управляти швидкістю обертання мотора зміною напруги, що подається на MOSFET. Управляти напругою, що подається на MOSFET, будемо за допомогою ШІМ (широтно-імпульсної модуляції). В експерименті 5 ми вже розглядали використання ШІМ для отримання змінного аналогового значення за допомогою цифрових сигналів. Для регулювання швидкості двигуна будемо використовувати потенціометр. Схема підключення елементів для даного експерименту показана на рис. 11.1.

Рис. 11.1. Схема підключення мотора до Arduino
Скетч даного експерименту показаний в лістингу 11.1. У циклі loop () зчитуємо аналогове значення потенціометра і, масштабуючи функцією map (), видаємо ШІМ-сигнал на MOSFET, до якого підключений мотор.
const int MOTOR = 9; // Вихід для підключення MOSFET
const int POT = 0; // Аналоговий вхід A0 для підключення потенціометра
int valpot = 0; // змінна для зберігання значення потенціометра
int speedMotor = 0; // змінна для зберігання швидкості двигуна
void setup ()
{
//
pinMode (MOTOR, OUTPUT);
}
void loop ()
{
valpot = analogRead (POT); // читання даних потенциометра
// масштабується значення до інтервалу 0-255
speedMotor = map (valpot, 0,1023,0,255);
// встановлюємо нове значення ШІМ
analogWrite (MOTOR, speedMotor);
delay (1000); // пауза
}
Порядок підключення:
- Підключаємо елементи до плати Arduino за схемою на рис. 11.1.
- Завантажуємо в плату Arduino скетч з лістингу 11.1.
- Крутимо потенціометр - змінюємо швидкість обертання мотора.