Моторно управление с MOS-FET мост; Урок за Arduino

H-Bridge е схема, която кара електрическия мотор да се върти напред-назад. Състои се от два усилвателни канала, които от своя страна са съставени от два MOS-FET или силови транзистора. Има два транзистора с различна полярност (напр. FET N и FET P).

управление

В примера N-канал и P-канал MOS-FET са свързани заедно за всеки канал. Можете да използвате напр. FET-N IRF9Z30 и FET-P IRFZ40. В зависимост от това дали изпращате сигнал GND или плюс, един от двата транзистора блокира, докато вторият затваря веригата.

Pin 9 Pin 12 Pin 10 11 Motor
ВИСОКО НИСКО НИСКО ВИСОКО Нали
НИСКО ВИСОКО ВИСОКО НИСКО Наляво

Също така е възможно да се регулира скоростта на двигателя чрез ШИМ сигнал.

В схематичния изглед можете бързо да видите как H-Bridge (H-Bridge) получи името си.

EDIT: Много благодаря на Уве, който посочи значителни проблеми тук.

Преглед на коментари (50)

Здрасти,
За съжаление, текущата версия на електрическата схема вече не съдържа батерия, въпреки че коментарите се отнасят до нея от време на време.

Имаше ли причина да няма отделно захранване за двигателя?
Може ли някой да ми изпрати електрическата схема с батерията?

Здрасти!
Въпросът ми всъщност е съвсем прост.
Ако искам да завъртя мотора надясно/наляво и да контролирам скоростта с ШИМ, как да го свържа?

по темата за P-Mosfet:
Резисторите 10kOhm и 220 Ohm трябва да се сменят, в противен случай портата на P-Mosfet получава около 10k/(10k + 220) * Uv при превключване на npn транзистора. Където Uv е захранващото напрежение.
Когато транзисторът npn е блокиран, приблизително захранващото напрежение Uv се прилага към портата.
В резултат на това Mosfet не се превключва.
Това може да бъде отстранено чрез смяна на двата резистора.
Ако се нуждаете от малко по-бързо време за превключване, можете просто да намалите наполовина, третата или дори четвърт двете стойности. (! Спазвайте спецификациите на npn транзистора и захранващото напрежение !)

Възможно е да използвате друг софтуер, за да променяте скоростта на Arduino с плъзгач, докато програмата работи, напред назад, бавно и бързо, без предварително програмиране на определени процеси

Здрасти,
IRF9z30 може да издържи напрежение на порта-източник от -5V. Това означава, че трябва да оставите 10k с показаната конфигурация. Rds при -5V обаче е все още относително висок, което означава, че загубата на мощност също е относително висока. Приблизително бих заредил 9z30 с максимум 800mA при стайна температура без радиатор.

Здрасти,
Интересно ми е да разбера и пресъздам тази схема. Но в разбирането има първия проблем. Портата на P-Mosfet е свързан към работното напрежение чрез 220Ohm и изтеглен към земята от транзистора BC547 чрез 10KOhm. Според закона на Ом това променя напрежението на портата само незначително. Как може веригата да работи там. И как трябва да изглежда програмата, ако аз напр. иска да управлява двигателя в двете посоки на въртене с различни скорости и посоки чрез 2 бутона?
Благодаря ви за отговорите и честит Великден
Питър

Направи си сам H-мост винаги е трудно начинание.

P-Mosfet блокира, когато напрежението на порта е приблизително същото като на източника. В случая на тази електрическа схема с захранващо напрежение за двигатели, по-големи от 5V, горните P_MOSFETS никога не се изключват. Възниква късо съединение. Поради максималното напрежение на източника GARE от +/- 20 V, веригата може да не работи с 24V, ако работи.

Отстраняване: Управление на P_Mosfets чрез транзистор, при което предпочитам управлението чрез 4 изхода Arduino, тъй като по този начин двигателят може да се спусне без спиране (всички 4 MOSFET са блокирани). В противен случай използвайте контролни интегрални схеми като IR2104 и всички N-MOSFET или, още по-добре, използвайте завършен IC или модул.

Споменатите Mosfets не са подходящи за директен контрол от Arduino, тъй като те не преминават напълно при напрежение 5V на портата. Трябва да се използват MOSFET на ниво логика.

Стефан, моля, добавете и коригирайте описанието на веригата, така че захранващото напрежение на двигателя за тази верига да не е по-голямо от 5V.

@Uwefed: Благодаря за съобщението. Никога не спираш да учиш. Ще сменя статията възможно най-скоро. С уважение, Стефан "

Тъй като все повече собственици на жилища са принудени да напускат домовете си, те се насочват към отдаване под наем за кратко.
Играта на игри е не само за младежи, но и за младото поколение.
На всичко отгоре на този шок разбрах, че скоро ще имаме и бебе.

Здрасти,
Направих кода така:
това кара робота ми да се завърти 3 секунди наляво и след това 3 секунди надясно.
Имам левия мотор на щифтове 8 и 9
дясната към щифтове 11 и 12 (просто го свържете, не знам точно как съм свързала двигателите, т.е. кой щифт е бил за напред и назад.)

int мотор1l = 8;
int motor1r = 9;

int motor2l = 11;
int motor2r = 12;

pinMode (мотор1l, ИЗХОД);
pinMode (motor1r, OUTPUT);

pinMode (мотор2l, ИЗХОД);
pinMode (motor2r, OUTPUT);

цикъл void ()
analogWrite (motor1r, 100);
digitalWrite (motor1l, LOW);

analogWrite (motor2l, 100);
digitalWrite (motor2r, LOW);

analogWrite (motor1l, 100);
digitalWrite (motor1r, LOW);

analogWrite (motor2r, 100);
digitalWrite (motor2l, LOW);

Със сигурност можете да видите ентусиазма си в работата, която пишете.
Арената се надява на по-страстни писатели като вас, които не се страхуват да кажат
как вярват. По всяко време следвайте сърцето си.