Komponentlar8 daqiqada oʻqiladi28-sentabr, 2026

L298N, L9110S yoki TB6612: qaysi motor drayveri?

Toʻrtta keng tarqalgan motor drayveri taqqoslanadi: taʼminot kuchlanishi, tok, behuda yoʻqoladigan voltlar, bitta motorga pinlar soni va toʻxtatish usuli. TT motorli kichik robotga qaysi biri mos va nega.

Foto: Les Pounder · CC BY-SA 2.0

Arduino pini xavfsiz holda taxminan 20 mA tok bera oladi. TT reduktorli motor esa yurganda taxminan 0,3 A, aylana olmay toʻxtab qolganda taxminan 1 A gacha tok oladi. Shuning uchun ular orasiga motor drayveri qoʻyiladi: batareya toki drayver orqali motorga boradi, Arduino esa drayverga faqat nima qilish kerakligini aytadi.

Kichik robotlarda toʻrtta drayver koʻp uchraydi: L298N, L9110S, MX1508 va TB6612FNG (uni koʻpincha qisqacha TB6612 deb atashadi). Ular bir xil ishni turli yoʻllar bilan bajaradi, farqlar esa tezlikda, batareya qancha vaqtga yetishida va kodda koʻrinadi.

Har bir drayver ichida: H-koʻprik

Har bir platada ikkita H-koʻprik bor: har bir motorga bittadan. H-koʻprik — motor atrofidagi toʻrtta elektron kalit. Qogʻozga chizilganda u H harfiga oʻxshaydi, motor esa harfning oʻrtasidagi koʻndalang chiziq oʻrnida boʻladi. Diagonal joylashgan bir juft kalit yoqilsa, motor oldinga aylanadi. Ikkinchi juft yoqilsa, orqaga aylanadi. Ikkala pastki yoki ikkala yuqori kalit yoqilsa, motorning ikki uchi oʻzaro tutashadi va aylanayotgan motor tezda tormozlanadi. Toʻrttala kalit oʻchiq boʻlsa, motor erkin aylanib, asta-sekin toʻxtaydi.

Drayverlar bir-biridan kalitlari nimadan yasalgani va ularni qaysi pinlar boshqarishi bilan farq qiladi.

Toʻrtta drayver yonma-yon

Bir xil masshtabdagi toʻrtta motor drayveri: katta L298N va ancha kichik L9110S, TB6612FNG va MX1508.
Drayver Motor kuchlanishi Bitta motorga tok Ichida yoʻqoladigan kuchlanish Bitta motorga pinlar Kirishlar teng boʻlsa
L298N 5–35 V 2 A gacha (qoʻshimcha sovutishsiz taxminan 1 A) taxminan 1,8–2 V 3 ta: ENA, IN1, IN2 tormoz, ENA HIGH boʻlib turganda
L9110S 2,5–12 V taxminan 0,8 A 0,75 A da taxminan 1,85 V 2 ta ikkalasi LOW yoki ikkalasi HIGH: toʻxtash
MX1508 2–9,6 V taxminan 1,5 A kam 2 ta ikkalasi LOW: erkin aylanish; ikkalasi HIGH: tormoz
TB6612FNG 4,5–13,5 V 1,2 A juda kam 3 ta: PWMA, AIN1, AIN2, yana STBY ikkalasi LOW: erkin aylanish; ikkalasi HIGH: tormoz

L298N ning B motori ENB, IN3 va IN4 pinlarini ishlatadi. L298N da ENA LOW boʻlsa, IN1 va IN2 qanday boʻlishidan qatʼi nazar, motor erkin aylanadi.

Bipolyar yoki MOSFET: voltlar qayerga ketadi

L298N da kalit vazifasini bipolyar tranzistorlar bajaradi. Toʻliq yoqilgan bipolyar tranzistor ham oʻzida taxminan bir volt kuchlanishni ushlab qoladi. Motor toki doim ikkita kalitdan oʻtadi: biri batareyaning + tomonida, ikkinchisi GND tomonida. Ikkalasi birgalikda taxminan 1,8–2 V yoʻqotadi, tok oshgani sari esa bundan ham koʻproq.

CoreEngine robot-mashinasida toʻrtta AA batareya taxminan 6 V beradi. Shundan taxminan 1,8 V L298N ichida qoladi, shuning uchun motorlarga taxminan 4,2 V yetib boradi. Yoʻqolgan qism mikrosxemada issiqlikka aylanadi. Modulda katta metall radiator borligining sababi shu.

MOSFET boshqacha ishlaydi. Toʻliq yoqilganda u xuddi kichik rezistordek boʻladi, shuning uchun unda yoʻqoladigan kuchlanish shunchaki tok × qarshilik boʻladi. TT motorlari oladigan toklarda bu bir voltning kichik bir qismi, xolos. TB6612FNG ning texnik hujjatida (datasheet) ikkala kalit uchun birgalikda 0,3 A da taxminan 0,15 V koʻrsatilgan. MX1508 ham MOSFET tranzistorlardan foydalanadi. Bunday drayverlar bilan motorlarga batareyaning deyarli butun kuchlanishi yetib boradi.

Bu yoʻqotish past kuchlanishda eng koʻp bilinadi. 12 V li manbadan ikki volt yoʻqolsa, bu uning oltidan biri boʻladi. Toʻrtta AA batareyadan ikki volt yoʻqolsa, uchdan biri. Kichik robotlar past kuchlanishda ishlaydi, shuning uchun MOSFET drayveri aynan shu yerda eng koʻp foyda beradi. Kichkina L9110S bu yerda yordam bermaydi: uning texnik hujjatida 0,75 A da taxminan 1,85 V yoʻqotish koʻrsatilgan.

Ikki pinli drayverlar: teng kirishlarda farq bor

L9110S va MX1508 da enable (ruxsat) pini yoʻq. Har bir motorning ikkita kirishi bor va shu juftlik ham yoʻnalishni, ham tezlikni belgilaydi. Tezlik uchun bitta kirishni oʻzgarmas holatda ushlab turasiz, ikkinchisiga esa PWM (impuls kengligi modulyatsiyasi) berasiz.

Kirishlar teng boʻlganda bu ikki mikrosxema turlicha ishlaydi:

Kirishlar MX1508 L9110S
ikkalasi LOW chiqishlar oʻchiq: motor erkin aylanadi ikkala chiqish LOW: motor toʻxtaydi
ikkalasi HIGH tormoz ikkala chiqish LOW: motor toʻxtaydi

PWM kirishni soniyasiga yuzlab marta yoqib-oʻchiradi. Ikkinchi kirish LOW holatda ushlab turilsa, har bir «oʻchiq» lahzada ikkala kirish tenglashadi. Shu lahzalarda MX1508 motorni erkin aylanishga qoʻyib beradi, L9110S esa uni toʻxtatadi. Shuning uchun bir xil tezlik qiymati turli tezlik berishi mumkin, bitta drayver bilan ohista toʻxtaydigan robot esa boshqasi bilan keskin toʻxtaydi. Bitta plata uchun yozilgan kod boshqasi uchun oʻz-oʻzidan toʻgʻri boʻlib qolmaydi. Aynan siz sotib oladigan plataning rostlik jadvalini oʻqing.

TT motorli kichik robot uchun qaysi biri?

Drayverni yurish tokiga qarab emas, toʻxtab qolish tokiga qarab tanlang. Har bir ishga tushish taxminan 1 A gacha tok oladigan qisqa toʻxtab qolishdan boshlanadi, devorga tiralib turgan robot esa toʻxtab qolgan holatda qolaveradi.

  • L9110S: kichik va oddiy. Uning 0,8 A toki yurish uchun yetadi, lekin toʻxtab qolgan TT motor bundan koʻproq tok talab qilishi mumkin.
  • MX1508: kichik va toʻrtta AA batareyadan ishlaydi. Uning 1,5 A toki toʻxtab qolishga ham yetadi, oʻzi esa kam kuchlanish yoʻqotadi. Tezlik kodi ikki pin uchun yoziladi.
  • TB6612FNG: bu ish uchun eng mosi. U juda kam kuchlanish yoʻqotadi, 1,2 A toki toʻxtab qolishga yetadi va L298N kabi boshqariladi: har bir motorga bitta PWM pini va ikkita yoʻnalish pini. Uning STBY pini HIGH boʻlishi shart, aks holda chiqishlar oʻchiqligicha qoladi.
  • L298N: katta, motorlarga esa taxminan 1,8 V kam kuchlanish yetadi. Lekin u chidamli, keng tarqalgan va oson ulanadi.

Toʻrtta AA batareyada ishlaydigan yangi robot uchun TB6612FNG kabi MOSFET drayveri batareya kuchlanishining eng katta qismini motorlarga yetkazadi. L298N esa ishonchli va keng tarqalgan tanlov, bu saytda aynan u ishlatiladi.

CoreEngine robot-mashinasida nega L298N ishlatiladi

  • U keng tarqalgan va chidamli. Koʻplab robot-mashina toʻplamlarida u bor. Har bir kanalga 2 A gacha tok TT motorlariga yurish paytida kerak boʻladiganidan ancha koʻp, bundan tashqari unda radiator va vintli klemmalar bor.
  • U Unoni quvvat bilan taʼminlaydi. Uning oʻz 5 V stabilizatori Unoning 5V piniga kuchlanish beradi (toʻrtta AA batareyadan taxminan 4,4 V, bu yetarli), shuning uchun butun robot bitta batareya qutisidan ishlaydi.
  • Uning kodini oʻqish oson. Tezlik ENA va ENB pinlariga, yoʻnalish esa IN1 dan IN4 gacha boʻlgan pinlarga beriladi.
  • U simulyatorda bor, undagi kuchlanish yoʻqotishi ham hisobga olingan, shuning uchun bu saytdagi har bir loyihani avval u yerda sinab koʻrishingiz mumkin.

Uning pinlari Motorlar va L298N drayveri darsida tushuntirilgan, modulning oʻzi esa Marketda bor.

Keyinroq drayverni almashtirish

Saytdagi barcha sketchlar drayverni bitta kichik funksiya orqali boshqaradi:

// speed from -255 (full backwards) to 255 (full forwards); 0 lets the motor coast
void setMotor(byte enablePin, byte inA, byte inB, int speed) {
  speed = constrain(speed, -255, 255);
  digitalWrite(inA, speed > 0);
  digitalWrite(inB, speed < 0);
  analogWrite(enablePin, abs(speed));
}

Qolgan hamma narsa, masalan drive(), holatlar mashinasi (state machine) va taymerlar, faqat shu funksiyani chaqiradi.

TB6612FNG ga oʻtish. PWMA, AIN1 va AIN2 pinlari ENA, IN1 va IN2 oʻrnini egallaydi. PWMB, BIN1 va BIN2 esa ENB, IN3 va IN4 oʻrnini egallaydi. Motorlar A va B chiqishlariga ulanadi, oʻng motorning simlari avvalgidek almashtirib ulanadi. STBY va VCC (mikrosxema mantiqiy qismining taʼminoti) Unoning 5V piniga, VM batareyaning + qutbiga ulanadi, barcha GND pinlari oʻzaro tutashtiriladi. setMotor() oʻzgarishsiz ishlayveradi. Uchta narsa oʻzgaradi:

  • Motorlarga koʻproq kuchlanish boradi, shuning uchun oʻsha tezlik qiymatida motorlar tezroq aylanadi. Birinchi yurish loyihasidagi burilish kabi vaqtlarni qaytadan sozlang.
  • PWM impulslari orasida TB6612FNG motorni tormozlaydi, L298N esa bu paytda motorni erkin aylanishga qoʻyib beradi.
  • Unda 5 V stabilizatori yoʻq, shuning uchun Unoga alohida taʼminot kerak, masalan uning USB uyasiga ulangan powerbank.

MX1508 yoki L9110S ga oʻtish. Bu yerda setMotor() oʻzgarishi kerak, chunki enable pini yoʻq. Har bir motorning ikki kirishidan biriga PWM berilishi kerak, shuning uchun qaysi PWM pinlari hali boʻsh ekanini tekshiring. Ikkala platada ham 5 V stabilizatori yoʻq.

Qaysi drayverni tanlasangiz ham, uning GND pinini Unoning GND piniga ulang: signallar faqat umumiy yerga (GND) nisbatan maʼnoga ega. Motorlarning oʻziga nima kerakligini bilish uchun TT reduktorli motorlar: raqamlar nimani bildiradi maqolasini oʻqing.