Robotingiz nega qayta ishga tushib qoladi: batareyalar, tok va kuchlanish pasayishi
Motorlar ishga tushganda yoki toʻxtab qolganda batareya kuchlanishi pasayadi va Arduino qayta ishga tushishi mumkin. Kuchlanish pasayishi (brown-out) nima, uni qanday tanish va bu takrorlanmasligi uchun kichik robotni qanday quvvatlantirish kerak.

Foto: © Nevit Dilmen · CC BY-SA 3.0
Robotingiz yurib ketadi, bir lahza toʻxtaydi va dasturini yana boshidan boshlaydi. Yoki stolda ishlaydi, polda esa ishlamay qoladi. Odatda kodda ayb yoʻq. Ayb taʼminotda. Motorlar birdaniga katta tok olganda batareya kuchlanishi pasayadi va Arduino qayta ishga tushadi.
Manba kuchlanish beradi, yuklama tok oladi
Batareya kuchlanish beradi. U detallarga tokni majburlab itarmaydi. Har bir detal oʻziga kerakli tokni oladi: Uno ozgina, yurayotgan motor koʻproq, aylana olmay toʻxtab qolgan motor esa eng koʻp tok oladi.
Mukammal batareya boʻlmaydi. Uning ichida kichik qarshilik bor va tok u yerda kuchlanishning bir qismini yoʻqotadi. Robot qancha koʻp tok olsa, batareya qutblaridagi kuchlanish shuncha past boʻladi. Eski batareyalarning ichki qarshiligi kattaroq, shuning uchun ularning kuchlanishi koʻproq tushib ketadi.
CoreEngine robot-mashinasidagi raqamlar
| Qayerda | Kuchlanish | Nima uchun |
|---|---|---|
| Toʻrtta yangi ishqoriy AA batareya | taxminan 6 V | 4 × 1,5 V |
| Deyarli tugagan toʻrtta batareya | taxminan 4,8 V | 4 × 1,2 V |
| Motorlar, L298N orqali | 6 V dan taxminan 4,2 V | taxminan 1,8 V L298N ichida qoladi |
| Unoning 5V pini, L298N ning +5V chiqishidan | 6 V dan taxminan 4,4 V | toʻliq 5 V berishi uchun L298N stabilizatoriga taxminan 7 V kerak |
| Unoning kuchlanish pasayishi (brown-out) chegarasi | taxminan 2,7 V | bundan pastda mikrosxema oʻzini qayta ishga tushiradi |
Toʻrtinchi qator — eng zaif joy. L298N stabilizatori allaqachon kerakligidan kam kuchlanish oladi, shuning uchun uning chiqishi batareyaga ergashadi. Batareya kuchlanishi bir voltga pasaysa, Unoning 5V pinidagi kuchlanish ham taxminan bir voltga pasayadi.
Ishga tushish va toʻxtab qolish toki
| Bitta TT motor | Tok |
|---|---|
| Yuklamasiz, erkin aylanadi | taxminan 0,1–0,15 A |
| Robotni yurgizadi | taxminan 0,3 A |
| Toʻxtab qolgan: tiqilib qolgan, toʻliq quvvatda | taxminan 1 A gacha |
Aylanayotgan motor oʻz kuchlanishini hosil qiladi: bu kuchlanish batareyaga qarshi ishlaydi va tokni kichik ushlab turadi. Joyida turgan motor bunday kuchlanish hosil qilmaydi, shuning uchun eng koʻp tok oladi. Bu gʻildiraklar tiqilib qolganda yuz beradi. Har bir ishga tushishda ham, motor aylana boshlashidan oldingi qisqa lahzada shunday boʻladi. Birga ishga tushgan ikkita motor taxminan 2 A gacha tok talab qilishi mumkin.
Toʻliq tezlikda orqaga oʻtish undan ham koʻproq tok oladi. Siz motorni orqaga yurgizganingizda u hali oldinga aylanayotgan boʻladi, shuning uchun endi uning oʻz kuchlanishi batareyaga qarshi ishlash oʻrniga unga qoʻshiladi.
Shuning uchun qayta ishga tushish odatiy paytlarda yuz beradi: robot joyidan qoʻzgʻalganda, joyida aylanganda, orqaga yurganda yoki biror narsaga urilganda.
Kuchlanish pasayishi qanday koʻrinadi
Kuchlanish pasayishi (brown-out) — taʼminot kuchlanishining qisqa muddatga tushib ketishi. Unodagi ATmega328P oʻz taʼminot kuchlanishini kuzatib turadi. Kuchlanish brown-out chegarasidan, yaʼni Unoda taxminan 2,7 V dan pastga tushsa, mikrosxema oʻzini reset holatida ushlab turadi. Kuchlanish qaytgach, dastur yana boshidan boshlanadi. Normal kuchlanish bilan shu chegara oraligʻida mikrosxema ishlashda davom etishi yoki gʻalati ishlar qilishi mumkin.
Odatiy belgilari:
setup()ikkinchi marta bajariladi. Masalan, Birinchi yurish roboti oʻsha bir soniyani yana kutadi va yangi kvadrat boʻylab yura boshlaydi.- Bu motorlar ishga tushganda, orqaga yurganda yoki toʻxtab qolganda yuz beradi.
- Yangi batareyalar bilan ishlaydi, ular tugab borgani sari esa qayta ishga tusha boshlaydi.
- USB kabel ulanganda ishlaydi, faqat batareyalarda esa qayta ishga tushadi. USB ulanganda kompyuter Unoning 5V pinidagi kuchlanishni barqaror ushlab turadi.
- Robot kod bilan tushuntirib boʻlmaydigan gʻalati ishlar qiladi.
Qayta ishga tushishni oson payqash uchun setup() boshida Unoning D13 pinidagi L svetodiodini uch marta miltillating:
void setup() {
pinMode(13, OUTPUT); // the Uno's L LED
for (int i = 0; i < 3; i++) { // three quick blinks: "I have just started"
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
delay(100);
}
// ...then the rest of your setup()
}Robot yurib ketayotganda shu uchta miltillash koʻrinsa, u hozirgina qayta ishga tushgan.
USB imkoniyatlari ham cheklangan
Stolda Uno odatda USB kabeldan ishlaydi. USB taxminan 5 V va koʻpi bilan 500 mA beradi. Bu Uno, bitta svetodiod va HC-SR04 uchun bemalol yetadi, lekin motorlar uchun yetmaydi. Hatto bitta SG90 servo (servoprivod) ham harakatlana boshlaganda bir lahzaga taxminan 0,7–1 A gacha tok olishi mumkin. Unoning USB taʼminotida oʻzi tiklanadigan saqlagich bor: tok haddan tashqari koʻp oqsa, u ortiqcha yuklanish yoʻqolguncha taʼminotni uzib qoʻyadi.
Qanday tuzatish mumkin
Yangi batareyalar. Ishlatilgan ishqoriy batareyalarning ichki qarshiligi kattaroq, shuning uchun ularning kuchlanishi koʻproq pasayadi. Robot bir necha daqiqa yurgandan keyin qayta ishga tusha boshlasa, avvalo batareyalarni almashtiring.
NiMH akkumulyatorlar, bitta shart bilan. Qayta zaryadlanadigan NiMH akkumulyatorlar katta tokda kuchlanishni ancha yaxshi ushlab turadi, shuning uchun pasayishlar kichikroq boʻladi. Lekin ularning har biri 1,2 V beradi, toʻrttasi taxminan 4,8 V. Bunda L298N stabilizatori orqali Uno va HC-SR04 ga 4,4 V dan sezilarli darajada kam kuchlanish yetadi. Ularni Uno uchun alohida taʼminot bilan birga ishlating.
Ikkita Li-ion akkumulyator (2S), ehtiyotkorlik bilan. Ketma-ket ulangan ikkita Li-ion akkumulyator taxminan 7,4 V beradi: toʻliq zaryadlanganda 8,4 V, zaryadi tugaganda taxminan 6 V. Zaryadning koʻp qismida L298N stabilizatori oʻziga kerakli 7 V ni oladi, shuning uchun Uno toʻliq 5 V oladi. L298N dagi yoʻqotishdan keyin motorlarga taxminan 5,6 V yetadi, bu ularning ish oraligʻi ichida.
Kondensator. L298N ning +12V va GND klemmalari orasiga ulangan 100–470 mkF sigʻimli elektrolitik kondensator — tok aynan kerak boʻladigan joydagi kichik zaryad zaxirasi. U tok sakrashining birinchi lahzasini qoplaydi, shuning uchun pasayish kichikroq boʻladi. Qutblarini tekshiring: chiziq minus oyoqchasini koʻrsatadi. Nominal kuchlanishi batareyanikidan yuqori boʻlganini tanlang, masalan 16 V. Uzoq davom etadigan toʻxtab qolishda u yordam bera olmaydi.
Alohida taʼminot. AA batareyalar faqat L298N ning +12V klemmasini taʼminlasin, Unoga esa alohida 5 V bering, masalan uning USB uyasiga ulangan powerbank orqali. Keyin L298N ning +5V chiqishidan Unoning 5V piniga boradigan simni olib tashlang, HC-SR04 ni esa Unoning 5V pinidan taʼminlang. Baʼzi powerbanklar tok juda kichik boʻlganda oʻchib qoladi, shuning uchun oʻzingiznikini sinab koʻring.
Umumiy yer (GND). Nimani oʻzgartirsangiz ham, batareyaning minusi, L298N ning GND va Unoning GND pinlari oʻzaro ulangan holda qolsin. Unoning signallari uning GND piniga nisbatan oʻlchanadi. Umumiy yer boʻlmasa, L298N ularni oʻqiy olmaydi.
Qisqa taʼminot simlari. Uzun va ingichka simning ham qarshiligi bor, u ham oʻz hissasini qoʻshib, kuchlanishni pasaytiradi. Batareyadan L298N gacha boʻlgan simlar qisqa va juda ingichka boʻlmasin.
Yumshoq kod. Tezlikni 0 dan birdaniga 255 ga sakratmang, MotorTest sketchidagidek bosqichma-bosqich oshiring. Orqaga yurishdan oldin bir lahza toʻxtang.
Simulyator nimani koʻrsatadi
CoreEngine simulyatori robot yurishidan oldin ulanishni tekshiradi. Batareya Unoning 5V piniga ulangan boʻlsa, ogohlantiradi: bu platani kuydiradi. L298N ning +5V chiqishi Unoning VIN piniga ulangan boʻlsa ham ogohlantiradi: VIN piniga 7–12 V kerak, chunki u Unoning oʻz stabilizatorini taʼminlaydi. Shuningdek, umumiy yer yoʻqligi, batareya yoʻqligi va L298N ga motor taʼminoti berilmagani haqida xabar beradi. Yana L298N stabilizatori toʻrtta AA batareyadan 5 V dan biroz kam berishini qayd etadi: haqiqiy toʻplamdagi kabi, bu ham ishlaydi. Arenada robotni haydayotganingizda batareya holati jonli koʻrsatib turiladi.
Avval ulanishni simulyatorda toʻgʻrilang. Haqiqiy robotda esa yuqoridagi belgilarga eʼtibor bering. Motorlar va ularning drayveri haqida koʻproq bilish uchun TT reduktorli motorlar: raqamlar nimani bildiradi va L298N, L9110S yoki TB6612: qaysi motor drayveri? maqolalarini oʻqing.