Проект 11: Транзистор MOSFET. Показываем усилительные качества транзистора. На примере электродвигателя изменяем обороты

В этом эксперименте мы познакомимся с транзистором MOSFET и с помощью него будем управлять мощной нагрузкой – электродвигателем.

Необходимые компоненты:

контроллер Arduino UNO R3;
плата для прототипирования;
• транзистор MOSFET IRF540;
• диод 1N4007;
• двигатель DC;
блок питания 5 В;
провода папа-папа.

Выводы Arduino, сконфигурированные как OUTPUT, находятся в низкоимпедансном состоянии и могут отдавать 40 мА в нагрузку и не в состоянии обеспечить питание мощной нагрузки и большого напряжения. Одним из способов управления мощной нагрузкой является использование полевых MOSFET-транзисторов. MOSFET-транзистор – это ключ для управления большими токами при помощи небольшого напряжения (в отличие от биполярных транзисторов, управляемых током). В нашем эксперименте мы будем управлять скоростью вращения мотора изменением напряжения, подаваемого на MOSFET. Управлять напряжением, подаваемым на MOSFET, будем с помощью ШИМ (широтно-импульсной модуляции). В эксперименте 5 мы уже рассматривали использование ШИМ для получения изменяющегося аналогового значения посредством цифровых сигналов. Для регулирования скорости двигателя будем использовать потенциометр. Схема подключения элементов для данного эксперимента показана на рис. 11.1.
Arduino проект www.arduino-kit.ru
Рис. 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); // пауза
}

Порядок подключения:

1. Подключаем элементы к плате Arduino по схеме на рис. 11.1.
2. Загружаем в плату Arduino скетч из листинга 11.1.
3. Крутим потенциометр – изменяем скорость вращения мотора.

Листинги программ скачать



 

Вверх