Ovládanie motora pomocou mosta MOS-FET; Výukový program pre Arduino

H-most je obvod, pomocou ktorého sa elektrický motor otáča tam a späť. Skladá sa z dvoch zosilňovacích kanálov, ktoré sú zase zložené z dvoch MOS-FET alebo výkonových tranzistorov. Existujú dva tranzistory rôznej polarity (napr. FET N a FET P).

pomocou

V príklade sú N-kanál a P-kanál MOS-FET spojené navzájom pre každý kanál. Môžete použiť napríklad FET-N IRF9Z30 a FET-P IRFZ40. V závislosti od toho, či vysielate signál GND alebo plus, jeden z dvoch tranzistorov blokuje, zatiaľ čo druhý uzatvára obvod.

Kolík 9 Kolík 12 Kolík 10 11 Motor
VYSOKÁ NÍZKY NÍZKY VYSOKÁ Správny
NÍZKY VYSOKÁ VYSOKÁ NÍZKY Vľavo

Je tiež možné regulovať rýchlosť motora pomocou signálu PWM.

V schematickom zobrazení môžete rýchlo vidieť, ako dostal most H (H-Bridge) svoje meno.

EDIT: Veľká vďaka Uwe, ktorý tu poukázal na závažné problémy.

Zobraziť komentáre (50)

Ahoj,
Aktuálna verzia schémy zapojenia už bohužiaľ neobsahuje batériu, aj keď sa na ňu občas odvolávajú komentáre.

Bol dôvod, prečo nebol pre motor samostatný zdroj energie?
Mohol by mi niekto poslať schému zapojenia s batériou?

Ahoj!
Moja otázka je v skutočnosti dosť jednoduchá.
Ak chcem otočiť motor doprava/doľava a regulovať rýchlosť pomocou PWM, ako ho pripojím?

na tému P-Mosfet:
Rezistory 10kOhm a 220 Ohm musia byť zamenené, inak brána P-Mosfetu dostane asi 10k/(10k + 220) * Uv pri prepnutí tranzistora npn. Kde Uv je napájacie napätie.
Keď je tranzistor npn blokovaný, na bránu sa privádza približne napájacie napätie Uv.
Výsledok: Mosfet sa neprepne.
To je možné napraviť zámenou dvoch rezistorov.
Ak potrebujete o niečo rýchlejšie spínacie časy, môžete jednoducho znížiť obidve hodnoty na polovicu, tretinu alebo dokonca štvrtinu. (! Dodržujte špecifikácie npn tranzistora a napájacieho napätia !)

Je možné použiť iný softvér na zmenu rýchlosti Arduina pomocou posúvača, keď je program spustený, dopredu a dozadu pomaly a rýchlo bez programovania určitých procesov vopred

Ahoj,
IRF9z30 zvládne napätie zdroja brány -5V. To znamená, že by ste mali vynechať 10k so zobrazenou konfiguráciou. Avšak Rds pri -5V je stále pomerne vysoký, čo znamená, že aj strata výkonu je pomerne vysoká. Zhruba by som 9z30 zaťažil pri izbovej teplote maximálne 800mA bez chladiča.

Ahoj,
Mám záujem porozumieť a znovu vytvoriť tento okruh. Ale v porozumení je tu prvý problém. Brána P-Mosfet je pripojená k prevádzkovému napätiu cez 220Ohm a ťahaná k zemi tranzistorom BC547 cez 10KOhm. Podľa Ohmovho zákona sa tým mení napätie v bráne iba nepatrne. Ako tam môže fungovať obvod. A ako by mal program vyzerať, ak napríklad chcem ovládať motor v oboch smeroch otáčania rôznymi rýchlosťami a smermi pomocou 2 tlačidiel?
Ďakujem za odpovede a šťastnú Veľkú noc
Peter

H-most pre kutilov je vždy ťažký podnik.

P-Mosfet blokuje, keď je napätie v bráne približne rovnaké ako u zdroja. V prípade tejto schémy zapojenia s napájacím napätím pre motory väčšie ako 5 V sa horné P_MOSFETS nikdy nevypnú. Nastáva skrat. Kvôli maximálnemu zdrojovému napätiu GARE +/- 20 V nemusí byť obvod funkčný s napätím 24V.

Náprava: Ovládanie P_Mosfets tranzistorom, pričom uprednostňujem riadenie 4 výstupmi Arduino, pretože tak môže motor dobehnúť bez brzdenia (všetky 4 MOSFETy blokované). V opačnom prípade použite riadiace integrované obvody ako IR2104 a všetky N-MOSFET alebo, ešte lepšie, použite hotový integrovaný obvod alebo modul.

Spomínané Mosfety nie sú vhodné na priame ovládanie Arduinom, pretože pri 5V hradlovom napätí sa úplne neprepínajú. Majú sa použiť MOSFETy na logickej úrovni.

Štefan prosím doplňte a opravte popis obvodu tak, aby napájacie napätie motora pre tento obvod nebolo väčšie ako 5V.

@Uwefed: Ďakujem za správu. Nikdy sa neprestaneš učiť. Článok čo najskôr zmením. S pozdravom, Stefan "

Pretože čoraz viac majiteľov domov je nútených opustiť svoje domovy, krátkodobo sa orientujú na prenájom.
Hranie hier nie je len pre mladých, ale aj pre mladú generáciu.
Okrem tohto šoku zisťujem, že sa nám čoskoro narodí dieťa.

Ahoj,
Vytvoril som kód takto:
To spôsobí, že sa môj robot otočí o 3 sekundy doľava a potom o 3 sekundy doprava.
Mám ľavý motor na pinoch 8 a 9
ten pravý na piny 11 a 12 (stačí ho zapojiť, neviem presne, ako som pripojil motory, t. j. ktorý kolík bol určený pre jazdu vpred a vzad.)

int motor1l = 8;
int motor1r = 9;

int motor2l = 11;
int motor2r = 12;

pinMode (motor1l, VÝSTUP);
pinMode (motor1r, VÝSTUP);

pinMode (motor2l, VÝSTUP);
pinMode (motor2r, VÝSTUP);

neplatná slučka ()
analogWrite (motor1r, 100);
digitalWrite (motor1l, LOW);

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

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

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

Určite môžete vidieť svoje nadšenie v rámci práce, ktorú píšete.
Aréna dúfa v vášnivejších spisovateľov, ako ste vy, ktorí sa neboja povedať
ako veria. Vždy nasledujte svoje srdce.