Internet Derazalar Android
Kengaytirmoq

LCD ko'rsatkichlarini ARDUOINA UChUN I2C ko'rsatkichlari. LCD LCD LCM1602 ulash I2C-ga ARDUOINA

Ehtimol, bozordagi eng mashhur ekranlardan biri. Ommabop HD44780u Controler-da imzolangan. Model nomidan ekran 16 ta belgidan iborat ikkita qatordan iborat. Bunda rus tilini qo'llab-quvvatlash muayyan model emas.

Sh2S ma'lumotlar avtobusi ikkita simni 127 tagacha qurilmaga ulash uchun ruxsat beradi va bir vaqtning o'zida. Ushbu I2C PCF857T chipida amalga oshiriladi.

Ulanish diagrammasi:

Moviy narsa - o'zgaruvchan qarshilik, ekranning kontrastini o'zgartirishga imkon beradi.

Chapdagi jumper - ekranli yorug'lik uchun javobgar.

4 ta kontaktning bloki ARDUINO ga ulangan:

GND - GND.
VCC - 5V.
SDA - A4 (agar arduino mega bo'lsa, d20 ga)
SCL - A5 (agar arduino mega bo'lsa, unda D21 ga)

Kutubxona

Eskiz

Displey 0x27 o'rniga yana bir iC-manzil bo'lishi mumkin, bu 0x3F bo'lishi mumkin. I2C Qurilmas skanneridan foydalanishingiz mumkin bo'lgan manzilni aniq belgilash uchun.

#Include. #Include. // LCD manzilini 0x27, 16 ta belgi, 2 qatorni o'rnating Likvidkryural_i2c lCD (0x27, 16, 2); bo'sh sozlash () (LCD.INIT (); // ekranni ishga tushiring // orqa chiroqni yoqing lcd.back chirog'i (); // matn namoyish etiladigan holatni o'rnating. LCD.Setcursor (2, 0); // 1-sonni qaytarib oling LCD.Print ("Salom, Dunyo!"); // shunga o'xshash ikkinchi satrni namoyish eting LCD.SetKursor (1, 1); lcd.print ("www.site"); ) bo'sh ko'cha () ()

LCD I2C moduli har ikki signal simlari bo'ylab ARDUININ Kengashiga belgilar ekranini ulash imkonini beradi.

Ishlatiladigan komponentlar (Xitoyda sotib oling):

. To'lovni boshqarish

. Simlarni ulash

Asosiy texnik xususiyatlar:

Displey: 16x02 yoki 20x04 belgisi
. Yoritish: oq ramz bilan ko'k
. Qarama: konfiguratsiya qilingan potentriometr
. Yetkazib berish kuchlanishlari: 5V
. Interface: I2C.
. I2C manzili: 0x27
. O'lchamlari: 82mm x 35mm x 18mm

Arduino-ga ulaning.

Modul to'rt-chi-pn-pn-pn-pn-pn-pn-phy-2,54mm standart ulagich bilan jihozlangan

SCL.: Seriyali soat seriyali soat

SDA: Ketma-ket ma'lumotlar satri (serial ma'lumotlar)

VCC.: "+" Quvvat

GND.: "-" Quvvat

I2C interfeysi uchun javobgar bo'lgan xulosalar arduino kengashlari Turli xil boshqaruvchilar asosida farq qiladi

Ushbu modul bilan ishlash uchun siz kutubxonani sotish uchun likarjetal_i2c1602v1-ni o'rnatishingiz kerak

"Arduino" papkasida kutubxonalar papkasini yuklab oling, ochib oling va tashlang. Agar kutubxonani qo'shganimda, Arduino IDE ODK, atrof-muhitni qayta ishga tushirdi.

To'g'ridan-to'g'ri eskizga boring. Ichida bu misol "Assalomu alaykum, dunyo" standartini oling. Va bizning hamjamiyatimizning manzili uchun.

namunaviy dastur kodi:

#Include. #Include. Suyuq_i2C LCD (0x27,1,2); / * Displeyning manzili va o'lchamini belgilang. LCD I2C modulidan foydalanganda, kodda hech narsa o'zgarishi mumkin emas, bu faqat to'g'ri o'lchovni o'rnatishi kerak * / Bo'shliq. sozlash; o'rnatish. () (LCD.init (); // LCD ni ishga tushirish. lcd.back chirog'i (); // orqa chiroqni yoqing // kursor 1-qatorning boshida LCD.Print ("Salom, Dunyo!"); // displey LCD.Setcursor (0, 1); // kursorni 2 satrning boshida o'rnating LCD.Print ("Sayt"); // matnni so'zlash pastadir. () { }

O'zingizning belgilaringizni yaratish

Matnning oxirida, ingliz alifbosining harflari displeyda boshqaruvchi xotirasiga tikilib, ular bilan bog'liq muammolar yo'q. Ammo nima qilish kerak kerakli belgisi Xotiradagi nazoratchi yo'qmi?

Muammo emas, kerakli ramzning qo'lda bo'lishi mumkin. Bu usul Qisman, 7 ta belgi cheklovi chiqish muammosini hal qilishga yordam beradi.

Ko'rgazma ko'rib chiqilayotgan displeyda hujayra 5x8 ball. Belgilarni yaratish vazifasi bir oz niqob yozish va unda biron bir noliki bo'lmagan joylarda bir oz niqobni yozish va bitta bittasini tashkil qilish uchun hamma narsa yo'q.

Yuqoridagi misolda tabassum qiling.

namunaviy dastur kodi:

// Arduino Iide 1.0.5-da sinovdan o'tgan // Kerakli kutubxonalarni qo'shing #Include. #Include. // bit niqob belgisi tabassum Bayt tabassum \u003d (b00010, b00001, B00001, B00001, B00001, B00001, B00001, B00001, B00010,); Likvidcrystal_i2c lcd (0x27,20.4); // displeyning manzili va o'lchamini belgilang. Bo'shliq. sozlash; o'rnatish. () (LCD.init (); // LCD ni ishga tushirish. lcd.back chirog'i (); // orqa chiroqni yoqing // 0 raqamida belgi yarating LCD.Createchar (1, tabassum); LCD.Setcsorsor (0, 0); // kursorni eng yaxshi 1 qatoriga o'rnating LCD.Print ("\\ 1"); // sezikonlarni ko'rsatish (1-raqamdagi belgi) - "\\ 1" ) Bo'sh pastadir. () { }

Belgilarni yaratish dasturi

Izohlarda jamoat ishtirokchisi belgini belgilovchiga tashladi

Men bu erga kirdim yaxshi do'kon Chip Rasmni o'qish va dasturlar uchun keyingi moslama foydali qurilmalar. Ushbu qurilma 4 bitli rejimda HD44780 nazoratchisida ishlaydigan LCD displeyini boshqarish uchun keskinlashdi. Buning uchun I2C avtobus konverteriga parallel 8 bit portiga qo'shilgan mikrob sirti.

To'lov shu tarzda ajrashish mumkin, shuning uchun u darhol LCD displey bilan siqilishi mumkin. Kirish quvvat va I2C qatorlariga xizmat qiladi. Kengash darhol STOL va SDA liniyalariga qarshi turkumlarni, kontrastni va displeyning kuchini sozlash uchun potentsiometrni o'rnatdi.

O'ng tomonga burilgan jumper yoqilgan / o'chiriladi. Keyinchalik, sinovchi bilan qurollangan holda quyidagi plastinka chizilgan. Modulni o'rgangandan so'ng, u aniqlandi. P3. Yoritgichni boshqaradi. Agar jumper o'rnatilgan bo'lsa, unda 1 yorug'lik bilan 1 o'chadi. Jumper olib tashlanganda, orqa chiroq har doim o'chiriladi. Keyinchalik, Axlib kutubxonasini I2C avtobus (dasturiy ta'minotni joriy qilish) va PCF8574 mikrosjiterini boshqarish funktsiyalari bilan ishlash uchun to'ldirishga qaror qilindi. Xulosa qilib, modul qanday ishlaydi. Parallel baytni namoyish qilish uchun siz i2C avtobusiga mikrohiyatchini yuborishingiz kerak (0x4e ga teng). Shuningdek, siz sturkerlarni almashtirish va uchta manzarali tushirish qiymatini o'zgartirishingiz mumkin), Keyin ACKni qabul qilgandan so'ng, bayt baytati yuboriladi. Chip Ack bilan javob bergandan so'ng, chipning parallel portida bayt paydo bo'ladi. Suyuq kristalli displeyni boshqarish uchun, men Axlov kutubxonasidan funktsiyalarni qabul qilib, I2C avtobusida ishlash uchun ozgina ishlashga ozgina ish beraman. #Include. #Include. #Include. #Include. #Defin 0x4e qo'shing // mikrohiylik manzili / * LCD mikrodevre RS P0 RW P1, P2, UZ D4 P4 D5 P5 D6 P6 D7 P7 P3 piyoda orqa ulang. 1 ta, 0 o'chirilgan. * / // Ma'lumot chiqishi com | \u003d 0x04; // e jihoz PCF8574_byT_out (com, qo'shish); // Ma'lumot chiqishi & \u003d 0xfb; // e nolda PCF8574_byT_out (com, qo'shish); // Ma'lumot chiqishi ) Bo'sh o'zgarish (VOL) (_DELY_MS (30); Com (0x30); _delay_us (40); Com (0x30); // 4 bit rejimga o'tish _delay_us (40); // buyruqni bajarish uchun kechikish Com (0x30); // 4 bit rejimga o'tish _delay_us (40); // buyruqni bajarish uchun kechikish Com (0x20); // 4 bit rejimga o'tish _delay_us (40); // buyruqni bajarish uchun kechikish Com (0x20); // parametrlarni o'rnating Com (0x80); // parametrlarni o'rnating Com (0x00); // displeyni o'chiring Com (0x80); // displeyni o'chiring Com (0x00); // displeyni tozalang Com (0x10); // displeyni tozalang Com (0x00); Com (0x60); // ma'lumotlarni kiritish rejimini o'rnating Com (0x00); Com (0xc0); // tanlangan kursor bilan ekranni yoqing ) WOSS_UT (bayt ma'lumotlar_h \u003d ((ma'lumotlar & 0xf0) + 0x09) + 0x04; pcf8574_byteT_out (ma'lumotlar_h, qo'shish); // katta 4 bitni uzatish // katta 4 bitni uzatish // Junior 4 bitni uzatish // Junior 4 bitni uzatish // Junior 4 bitni uzatish ) Volli str_out ((* st)! \u003d "\\ 0"; str ++; "yoki" epґET MOP! "); ) ()) Aslida bu erda nima sodir bo'ladi. I2C va PCF8574 uchun birinchi ulanish kutubxonalari. I2C haqida yozganman, shuning uchun u yana bir bor kesiladi, lekin sizga PCF8574.h-da aytaman. Kutubxonaning faqat uchta funktsiyasini o'z ichiga oladi.
Bayt PCF8574_Test (bayt qo'shish) (bayt so'rang \u003d ACK; 2cfe; i2cfe; i2c_stet_byt (qo'shish); I2C_STOP (); so'rang;) Birinchi funktsiya avtobusda qurilmaning mavjudligini tekshirish uchun yozilgan. Aslida, u shinada joylashgan har qanday qurilmani qidirish uchun ishlatilishi mumkin. Funktsiya kerakli qurilmaning manzilini oladi va agar u javob bersa nolni qaytaradi. Agar avtobusda ushbu manzil bilan qurilma bo'lmasa, u holda jihozni qaytaradi.
Bayt pcf8574_byte_yu (bayt so'rang \u003d ack \u003d ack; act_start_byte (ma'lumot); iftic \u003d i2c_stop_byte (); I2C_STOP (); Qaytishdan so'rash;) Ushbu xususiyat allaqachon ushbu chip ostida tozalangan. Argument sifatida baytlar shinaga va mikrohiyni to'ldirish uchun uzatiladi. Funktsiya avval manzilga chipni so'raydi va keyin baytlarni yuboradi. Agar chip baytni qabul qilsa va ACKga javob bersa, funktsiya mikrohiy bilan ishlashni tugatadi va nolni muvaffaqiyatli baytlar to'plamiga qaytaradi. Bu vaqtda chip ushbu baytni sizning parallel portingizda namoyish etadi. Aks holda, biz to'lov va qaytarib berillamiz, pul o'tkazmasi amalga oshmadi.
Bayt pcf8574_st_c_out (bayt * Ma'lumotlar, baytol, bayt, bayt (act_ste) (qo'shish); uchun (qo'shish); uchun (bayt i \u003d 0; i) Ushbu xususiyat tajriba uchun yaratilgan. Bitta baytli ma'lumotlar qatoriga, ushbu baytlar va mikrosutctivit manzilining soniga ko'rsatgichni qabul qiladi. Aslida barcha ma'lumotlarni bitta seans bilan va seans uchun bitta bayt emas. Funktsiya ishlaydi, lekin LCD displey uchun va mos kelmadi. Va endi asosiy dasturga qaytaylik. Kutubxonalarni ulagandan so'ng, biz chip manzilini ko'rsatamiz. Keyinchalik LCD.H ga o'xshash o'xshashlik bilan uchta funktsiya yarating. Farq faqat ma'lumotlarni uzatish printsipida.
Bo'sh com (bayt com) (com | \u003d 0x08; // birlik uchun p3, yorug'likni kuydirmaslik uchun PCF8574_byT_out (com, qo'shish); // Ma'lumot chiqishi com | \u003d 0x04; // e jihoz PCF8574_byT_out (com, qo'shish); // Ma'lumot chiqishi & \u003d 0xfb; // e nolda PCF8574_byT_out (com, qo'shish); // Ma'lumot chiqishi } Ushbu xususiyat faqat displey buyruqlarini uzatadi. Bu yerdan 0x08-dan mantiqiy tartibli birinchi liniya bor edi. Ushbu bakaka biz to'g'ridan-to'g'ri LCD displey portiga to'g'ridan-to'g'ri baytni bosib o'tamiz, ammo bizning repetitorimiz orqali. Ya'ni, agar biz bayt yugurtirsak, shunda biz faqat bir oz voz kechishimiz kerak, shunda siz oldingi baytga yoki uni portga yuborishingiz kerak. Mana bunday tartibsizlik. 0x08 dan qo'shimcha ravishda uchinchi zaryadlangan joyni doimiy ushlab turish uchun zarurdir. Orqa yorug'ligi haqida eslaysizmi? Bu qo'shimcha va orqa chiroqni yoqadi. Avtobusda avtobus transferi funktsiyasini chaqirgandan so'ng. Yuqorida yozilgan. Keyin biz mikrohiyda avtobus orqali o'tamiz. Keyinchalik, uni 0x04 bilan baytlarning mantiqiy qo'shilishi qo'shilishi kerak. E. masalani nolga teng bo'lgandan so'ng, siz ekranga har qanday buyruqni faqat buyruq sifatida argument sifatida yuborishingiz mumkin. Xizorli tashabbus (VOL) (_DELY_MM (30); // elektr ta'minotidan keyin pauza qiling Com (0x30); // 4 bit rejimga o'tish _delay_us (40); // buyruqni bajarish uchun kechikish Com (0x30); // 4 bit rejimga o'tish _delay_us (40); // buyruqni bajarish uchun kechikish Com (0x30); // 4 bit rejimga o'tish _delay_us (40); // buyruqni bajarish uchun kechikish Com (0x20); // 4 bit rejimga o'tish _delay_us (40); // buyruqni bajarish uchun kechikish Com (0x20); // parametrlarni o'rnating Com (0x80); // parametrlarni o'rnating Com (0x00); // displeyni o'chiring Com (0x80); // displeyni o'chiring Com (0x00); // displeyni tozalang Com (0x10); // displeyni tozalang Com (0x00); // ma'lumotlarni kiritish rejimini o'rnating Com (0x60); // ma'lumotlarni kiritish rejimini o'rnating Com (0x00); // tanlangan kursor bilan ekranni yoqing Com (0xc0); // tanlangan kursor bilan ekranni yoqing } Ushbu xususiyat faqat displeyni ishga tushirish bilan shug'ullanadi. Suyuq kristall displeyda buyruqlar ketma-ketligi olinadi. bo'sh char_out (bayt ma'lumotlari_h \u003d (((ma'lumotlar va 0xf0) + 0x09) + 0x09) + 0x04; pcf8574_byte_byte_byte_byte_hyte_byte_byte_byte_hyteTheTheTrence; // katta 4 bitni uzatish Ma'lumotlar_h & \u003d 0xF9; PCF8574_byt_out (ma'lumotlar_h, qo'shish); // katta 4 bitni uzatish PCF8574_byT_out (ma'lumotlar_l, qo'shish); // Junior 4 bitni uzatish ma'lumotlar_l | \u003d 0x04; PCF8574_byT_out (ma'lumotlar_l, qo'shish); // Junior 4 bitni uzatish Ma'lumotlar_l & \u003d 0xf9; PCF8574_byT_out (ma'lumotlar_l, qo'shish); // Junior 4 bitni uzatish } Ushbu xususiyat ma'lumotlar LCD ma'lumotlarini uzatadi. Bu buyruqlar bilan bir xil tarzda amalga oshiriladi, ammo baytni o'tkazish avvalgi yarim yadro, keyin esa yoshroq. Va qolganlari bir xil. Bo'sh str_out (bayt * str) ((* ST)! \u003d "\\ 0") (char); str ++;))) Xo'sh, bu xususiyat displey satrini uzatish uchun toza. Aslida, bu bizning mavzusimiz bilan hech qanday aloqasi yo'q.

ATMELSTUDIO 6.2 uchun loyiha

Literatsion 01.08.15 17:11

Vergul o'tkazib yuborildi. O'ngdan: "Salom, tinchlik!" Va bu qurilma nafaqat HD44780 uchun keskinlashtirilgan. Rivojlanishning kuchaytirilishi sehrgarning bir qismiga qo'yiladi. Spesifikatsiyaga ko'ra, LCD boshqaruvchiga ma'lumotnoma E. ning quyilishida qayd etilgan birinchi funktsiya soddalashtirilgan: // com | com) (com | & 0x04_byte_yteTh_byteT_out) ; // Ma'lumot chiqishi PCF8574_byte_yte_byte_yte_byte_yte_byte_yth); / e nolga teng) va qolganlari ham kamroq emas. Masalan, bo'sh char_out (bayt ma'lumotlar) faqat ikkita qo'ng'iroq bo'ladi va qo'shimcha o'zgaruvchilarsiz ham ko'proq. LCD INTERNATISH Vaqtni belgilashning buzilishi bilan amalga oshiriladi.

Aleksey 02.08.15 19:11

Vergulning etishmasligi tufayli displey azoblanmaydi. Ushbu qurilma bunday yoki shunga o'xshash boshqaruvchi yordamida ko'rsatilgan aniqlangan. Ammo bu oddiy port qo'rg'oshin bo'lgan mikrohiydir. Haqida men roziman. Qo'shimcha o'zgaruvchilar kerak. Agar siz funktsiyani mantiqiy, glitchiklar bilan bir nechta harakatlar bilan o'tkazsangiz. Allaqachon bunday bo'lgan. Initsializatsiya kesilgan qoidabuzarliksiz amalga oshiriladi. Hujjatlar aytilishicha, jamoalar o'rtasida 40 mkt pauza qilingan pauza qilingan. Etkazish I2C avtobusi bo'ylab va o'z navbatida dasturiy ta'minotda va sekin, keyin vaqt foizlar bilan bajariladi. Agar siz hali ham dangasa qilmasangiz, o'zingizning variantingizni yozing va menga yuboring. Men uni nashr qilaman. Oxir-oqibat, ushbu sayt havaskor auditoriya va ularning fikrlarini bildirishni istaganlar uchun mo'ljallangan va mk hayoti haqida tasavvur qilishni istaganlar.

Aleksey 06.08.15 09:14.

Displeyni boshlaganda, displeyni boshlaganda, displeyni boshlaganda qo'shilganda qo'shildi

Dmitriy 06/16 21:57

Salom Aleksey. Siz Kod generatoriga PCF8574 bilan ishlash uchun kutubxonani qo'shishingiz mumkin.

Aleksey 14.06.16 22:32

O'ylab ko'raman.))

ruslan 12/21/16 19:54
Aleksey 21.12.16 21:53

Albatta. Ayniqsa Asmadagi kod. Afsuski, to'liq narsalarni tushunadi)))

Pi.sy.
Agar siz afmni yalay olmasangiz ham, unda podani kontrolleri ostida yozadi. AVR uchun bu "juda" foydali ma'lumotlarmi? Ayniqsa, boshlang'ich)) menda rasmga qarshi hech narsa yo'q, lekin rasmda ham, AVR ham boshqacha. Va LCD displeyning ishining tafsilotlari haqida, keyin siz qidirishingiz mumkin)), men uni hali ham CVAVR ostida yozganman, ammo barcha jamoalar demontajlar bo'lib, taxtga kesishadi. Ammo har holda, u qayerda aytadigan joyni aniqladi)). Muallifi, o'quvchi tanlaydi.

GEK 04.01.17 12:52

"I2C mikrosjiti manzili (sukut bo'yicha 0x4e»

Katta 4 bitli manzil o'rnatildi,
PCF8574 Prefiks - 0100 va PCF8574A - 0111
3 yoshli 3 bit A2-A0 chipining kiritish holatiga bog'liq. Odatiy bo'lib, barcha 3 juftlik ochiq, mos ravishda 0111111 qiymatini oladi.
// A2 A1 A0 PCF8574 PCF857A
// 1 1 1 0x20 0x38
// 1 1 0 0x21 0x39
// 1 0 1 0x22 0x3a
// 1 0 0 0x23 0x3b
// 0 1 1 0x24 0x3c
// 0 1 0 0x25 0x3d
// 0 0 1 0x26 0x3e
// 0 0 0x27 0x3f

Aleksey 04.01.17 14:27

Siz chalkash bo'lgan narsangiz.
Mikrokortga chiqish uchun hujjatdan chiqarib oling

0b01001110 bu 0x4e
Shunday qilib, bu erda hamma narsa to'g'ri. Va agar siz manzilni o'zgartirishingiz kerak bo'lsa, unda uni aniqlab olish kerak.

Yuriy 14.12.17 21:26.

Xayrli kun! Va siz hali ham LCDGOTOXY VA LCDCCarbe-ni PCF8574-da ishlash uchun LCDGOTOXY VA LCDCCare funktsiyasini belgilashingiz mumkin.

Aleksandr 20.05.18 18:14

Xayrli kun! Qanday qilib rus tilini olib chiqasiz.

Aleksey 20.05.18 23:04

Bu eritmadan ichki ko'rinishi. U kirill xotirasida.

Aleksandr 21.05.18 04:55

Xayrli kun! Atameltudio 6.2 "YPBREBET MOP!" Loyihasida bo'lganingizdek yozaman! Normal ko'rinadigan
Va agar siz "dunyo salomi!" Bema'ni gaplarni aks ettiradi. Menda ikkitasi bor
Bir kirillyulik tikilli displeydan variantlari. Ikkinchi xitoy.

Aleksey 21.05.18 09:22

Men sinov dasturini boshlash uchun sinov dasturini yozgan bo'lardim. Belgilar va ularning manzillarini namoyish qilish bilan barcha xotira orqali o'ting. Keyin muammoni chiqish uchun. Ehtimol, belgilar jadvali ASCII jadvaliga mos kelmaydi.

Andrey 03.09.18 08:32

Xayrli kun!

Siz Proteus uchun sxemani tashlay olmaysizmi?

Andrey 03.09.18 10:22

Yoki hech kim kechiktirilmadimi?

Andrey 03.09.18 10:56

Ishlatilgan maite_init

Pavlus 30.05.19 23:35

Qiziqcha narsa, displey manzil 0x4e, agar displey ARDUUXga ulangan bo'lsa, 0x27 manziliga murojaat qiling

Pavlus 31.05.19 11:04.

Ishingiz uchun katta rahmat! Men butun Internetni tugatdim, yuqoridagi misollar hech biri topilmasin. Displeyni ishga tushirish funktsiyasida Loyihaning birinchi arxivi kechiktirilmagan _delay_, va u mos ravishda ishlamaydi

Aleksey 01.06.19 09:52

Xo'sh, bu ko'proq namoyish loyihasi. Yaxshilikka ko'ra, AX32 va STM8 etti milya qadam qo'yganligini hisobga olgan holda, aklobat kutilmoqda.

Pavlus 05.06.19 12:57

STM-ning pankralari yo'q, bosilgan elektron taxtalarni tayyorlash qiyinroq. Mening loyiham uchun AVRning o'ziga xos xususiyatlari, bitta atmatka 8-da siz juda moslashishingiz mumkin

Aleksey 05.06.19 15:20

Ha, lekin ATMEGA8 va STM8S003))))

Dmitriy 07.06.19 00:41

Salom, Aleksey.
Menga ayting-chi, PCF8574 portidan qanday o'qish kerak?
Men I2C avtobusi orqali tashqi bloki, 8 gPio - bu Sem.

Dmitriy 07.06.19 17:56

Men o'zimga javob beryapman
Funktsiya baytlar - Mikrotunoslik portlarining holatini qaytaradi
Uint8_t PCF8574_byteT_rcv (Uint8_t AddR)
{
Uint8_t so'rash \u003d ACK;
AddR | \u003d 0b01; // o'qing.
Uint8_T ma'lumotlar \u003d 0;
i2c_start ();
Asho \u003d i2c_send_byte (add);
agar (! AKREA) ma'lumot \u003d i2c_read_byt (NAC);
i2c_stop ();

Ma'lumotlarni qaytarish;
}

Pavlus 07.06.19 20:37

Qancha xarajatlarni, 150 rubl, relyushka narxida va STMda to'lovlarni qanday chalg'itasiz? Lut ishonchsiz, CNC Freser, u olishiga amin emas (harakat qilmaydi)

  • FC-113 moduli 8 bitli Shift Region - I2C serial shinasi uchun ishlab chiqarilgan mahsulotning "ekspersi" ni tashkil qiladi. Mikrokrushitning raqamida DD1 ko'rsatilgan.
  • R1 LCD displeyning kontrastini sozlash uchun tezkor ziyofatdir.
  • J1 Jumper displeyning orqa qismini yoqish uchun ishlatiladi.
  • Xulosa 1 ... 16 Modulni LCD displeyning chiqish qismiga ulash uchun ishlatiladi.
  • A1 ... A3 aloqasi Qurilmaning I2C manzilini o'zgartirish uchun kerak. Tegishli juftliklarni o'tirish, siz qurilmaning manzilini o'zgartirishingiz mumkin. Jadvalda manzillar va jaketlarning muvofiqligi ko'rsatilgan: "0" zanjirning yorilishiga to'g'ri keladi, "1" - sozlanadigan jumper. Odatiy bo'lib, barcha 3 juftlik ochiq va qurilma manzili 0x27.

2 Arduino LCD displey ulanishi sxemasii2C ma'lumotlariga ko'ra.

Modulni Arduinoga ulash I2C avtobusiga ulanmoqda: Modulning SDA chiqishi A4 ARDUOINA ASOG portiga ulangan A4 ARDUOINA ANGLOG portiga ulangan. Modul ARDUINA dan +5 v kuchlanish bilan quvvatlanadi. Modulning o'zi 1 ... 16 hisobidagi xulosalar bilan ulanadi. 16 LCD displeyda 1 ... 16 ning tegishli xulosalari bilan.


3 Ish uchun kutubxonai2C ma'lumotlariga ko'ra.

Endi sizga LCD bilan I2C interfeysi orqali ishlash uchun kutubxona kerak. Siz, masalan, ushbu ("Namunaviy kod va kutubxona" qatorida "-yo'riqnomadan foydalanishingiz mumkin.

Yuklab olingan arxiv Endcrystal_i2cv1-1.rar. Papkada util \\ KutubxonalarArduino OREGE katalogida joylashgan.

Kutubxona LCD displeylar uchun standart funktsiyalar to'plamini qo'llab-quvvatlaydi:

FunktsiyaMaqsad
Suyuq () suyuqlik tipidagi o'zgaruvchini yaratadi va displey sozlamalarini qabul qiladi (pin raqamlari);
boshlanishi () lCD displeyni ishga tushirish, parametrlarni o'rnatish (qatorlar va belgilar soni);
aniq () ekranni tozalash va kursorni boshlang'ich holatiga qaytaring;
uy () kursorni boshlang'ich holatiga qaytaring;
setcursor () kursorni belgilangan holatiga o'rnatish;
yozish () lCD ekranidagi belgini ko'rsatadi;
chop etish () lCD ekranidagi matnni ko'rsatadi;
kursor () kursorni ko'rsatadi, i.e. Keyingi belgi o'rindig'ida joylashgan.
notursor () kursorni yashiradi;
blink () miltillovchi kursor;
andrafin () cheklovni bekor qilish;
nodisplay () ko'rsatilgan barcha ma'lumotlarni saqlash paytida displeyni o'chiring;
ko'rsatiladigan () ko'rsatilgan barcha ma'lumotlarni saqlash paytida displeyni yoqing;
scroldDisplayp () displeyning tarkibini chap tomonda birinchi holatda aylantiring;
scrolDisplayriight () displeyning tarkibini o'ngga o'ngga joylashtiring;
autoscroll () avtomatik buyurtmachiligini qo'shish;
noutoscroll () avtoulovni ehtiyotkorlik bilan o'chirish;
chapth Wht () matn yo'nalishini chapdan o'ngga belgilaydi;
o'ngtoleft () o'ng tomondagi matn yo'nalishi;
crearechar () lCD ekranida maxsus belgi yaratadi.

4 Matn chiqishi uchun eskizlCD displeyida I2C avtobus orqali

Nazarni ochamiz: Fayl namunalari SciedSturstal_i2C-ning xaridlarcharlari U bir oz o'zgaradi. Biz oxirida xabarni qaytarib olamiz. Kodga sharhlarda barcha eskiz to'ylari sharhlanadi.

#Include. // Wire #incle kutubxonasini ulang // Biz LCD #Defin Prinbe kutubxonasini (Args) yozing (args); // Uint8_t Yurti \u003d (0x0.sa, 0x1f, 0x1f, 0x4.0x0); // bit niqobining belgisi "yurak" alomatlari "Yurak" belgisi (0x27, 16, 2); // LCD displey uchun 0x27 manzilini o'rnating bo'sh sozlash () () LCD.init (); // LCD displey LCD displeyini ishga tushirish (); // LCD.Createchar Displey Backlight (3, yurak) ni yoqing; // 3 lcd.home () xotira hujayrasida yurak belgisini yarating; // kursorni chap chap burchakka qo'ying.! // LCD-ni bosib chiqarish (0, 1); // kursorni 2 qatorga o'tkazing 1 lcd.print ("i"); list lip 2 lcd.printihte (3) layni (3) da xabar chop etish (// Yuraklar) 3-uyali LCD-ni bosib chiqarish ("Arduino"); } bo'sh ko'cha () () () // oxirgi LCD.Setcursor belgisini miltillaydi (13, 1); // kursorni 2-qatorga 2 funt sterlingiga o'tkazing ("\\ t"); Kechiktirish (500); LCD.Setcsorsor (13, 1); // kursorni 2-qatorga o'tkazish kursorini 2-sonli simp (""); Kechiktirish (500); }

Aytgancha, jamoa tomonidan yozilgan belgilar lCD.Createchar ();, Jazodan keyin hatto displeyning displeyida saqlang, chunki 1602 mFda qayd etilgan.

5 O'zingizning belgilaringizni yaratishlCD displey uchun

Kamroq batafsil ma'lumot LCD displeylar uchun o'z belgilaringizni yaratishda muammolarni ko'rib chiqing. Ekrandagi har bir belgidan iborat 35 balldan iborat: 5 ta kengligi va 7-balandlikda (+1 zaxiralash satri). Ushbu eskizning 6-qatorida biz 7 ta raqamni o'rnatdik: (0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0). Biz 16 yoshli raqamlarni ikkiga bo'ldik: {00000, 01010, 11111, 11111, 01110, 00100, 00000} . Ushbu raqamlar "0" yorug'lik nuqtasini va "1" - qorong'i deb belgilaydi. Masalan, bir oz niqob shaklida ko'rsatilgan yurak belgisi bu rasmda ko'rsatilganidek ekranni ko'radi.

6 Office LCD ekrani2C avtobusida

Arduino-da haydovchining eskizi. Ekranda oxirida miltillovchi kursor bilan yozuv paydo bo'ladi.


7 "Uchun" nimatire I2C.

Bonus sifatida LCD displeyda lotin belgilari ishlab chiqarishning vaqtincha "A", "B" va "C" belgilarini ko'rib chiqing. Ushbu belgilar displeyda mavjud va shunchaki ularning manzilini uzatish bilan namoyish etiladi. Ras xulosasidan diagramma RW, E, D4, D5, D6 va D7 displeyi, i.e. FC-113 "I2C parallel avtobus" konvertoridan keyin allaqachon. Aytishimiz mumkinki, biz "temir" da ozgina "chuqurroq" ni beramiz.


LCD displeyda 1602 yil LCD displeyda Lotin harflari "A", "B" va "C" belgilari ishlab chiqarish sxemasi

Diagrammada DVLD romidagi belgilar ko'rsatilgan (ma'lumotlar jadvalidagi belgilar) ikki geku, birinchisi stol ustuni jadvalini aniqlaydi va ikkinchisi - bu chiziq raqami. Shu bilan birga, old tomonda "tortib olish" ma'lumotlar E. (Yoqing) va chiziqqa Rs. (Ro'yxatdan o'tish TANLASH, TANLANG KIRISHNI TANLASH) - bu mantiqiy birlik holatida, bu ma'lumotlar uzatishni anglatadi. Rs liniyasining past davlat holati har bir belgini berishdan oldin ko'rib chiqadigan ko'rsatmalarning uzatilishini anglatadi. Bunday holda, transport vositasini qaytarish bo'yicha ko'rsatma pozitsiyaga (0, 0, 0) displeyga o'tkaziladi, chunki siz ekranning texnik tavsifini o'rganish orqali bilib olishingiz mumkin.

Va yana bir misol. Shu vaqt ichida diagramma LCD displeyda "yurak" belgisi ko'rsatilgan.


Yana, birinchi ikkita impulslar Yoqib yubormoq Muvofiq ko'rsatmalar Uy () (0000 0010 2) - transport vositasini pozitsiyani (0; 0) qaytarish, 2 10 (0000 0011 2) "Yurak" ramzida saqlanadi (ko'rsatma) lCD.Createchar (3, yurak); Eskizi).

LCD displey - Arduino loyihalaridagi tez-tez mehmon. Ammo murakkab sxemalarda, bizda juda ko'p aloqalarga ega ekranni ulash zarurati tufayli biz Arduino portlarining etishmasligimiz mumkin. Ushbu vaziyatdan chiqish bo'lishi mumkin I2C / iIC 1602 yilgi ARDUOININE ENRENCE uchun deyarli 4 ta pin bilan bog'laydigan adapter. Ushbu maqolada biz LCD displeyini kutubxonalardan foydalanishingiz mumkin bo'lgan I2C interfeysi bilan qanday ulanishingiz mumkinligini bilib olamiz, bu siz kutubxonalardan foydalanishingiz mumkin, masalan, qisqa eskirgan xatolarni yozing.

Suyuq kristalli displey (suyuq kristalli displey) LCD 1602. Turli loyihalardagi belgilarni ko'rsatish yaxshi tanlovdir. Bu turli xil yoritgichlar bilan turli xil o'zgartirishlar mavjud, siz turli xil ranglar ranglari mavjud bo'lib, siz ARDUOINE ERDUOINE-ni osongina yuklab olish kutubxonalarini osongina yuklab olishingiz mumkin. Ammo ushbu ekranning eng muhim noqulayligi shundan iboratki, displeyda kamida 6 raqami majburiydir. Shuning uchun, ushbu LCD displeyidan A2C bo'lmagan ARDUOINA UNO yoki NANOA KOATCHLARI UChUN FAOLIYAT KO'RSATADI. Agar kontaktlar etishmayotgan bo'lsa, unda siz Arduino Mega to'lovini sotib olishingiz yoki kontaktlarni, shu jumladan displeyni I2C orqali ulash orqali sotib olishingiz kerak bo'ladi.

Qisqacha tavsif Pins LCD 1602

Keling, LCD1602 xabarlarini ko'rib chiqaylik:

Xulosaning har bir maqsadi:

  1. GND Land;
  2. Oziqlanish 5 V;
  3. Monitorning kontrastini o'rnatish;
  4. Buyruq, ma'lumotlar;
  5. Ma'lumotlarni yozish va o'qish;
  6. Yoqish;

7-14. Ma'lumotlar liniyalari;

  1. Va aks ettirish;
  2. Minus yoritgi.

Texnik displey xususiyatlari:

  • Belgilarni ko'rsatish turi, belgilarni yuklash mumkin;
  • Neon chiroqlar;
  • HD44780 nazoratchisi;
  • 5V elektr tarmog'idagi kuchlanish;
  • 16x2 belgilar formati;
  • -20cD harorat doirasidan to + 70C gacha, saqlash harorati +380 s gacha;
  • Ko'rish burchagi 180 daraja.

LCD ulanish devori ARDUOINA KENGASH

Standart monitorga ulanish sxemasi to'g'ridan-to'g'ri Arduino Mikrokontrolerga I2C bo'lmagan holda quyidagicha.

Ulangan kontaktlarning ko'pligi sababli kerakli elementlarni biriktirish uchun etarli joy bo'lmasligi mumkin. I2C-dan foydalanish simlar sonini va 2 tagacha ishg'ol qilingan pinlarni kamaytiradi.

Qayerdan LCD dispertlari va arduino uchun qalqonlarni sotib olish kerak

LCD displey 1602 (va 2004 variant) juda mashhur, shuning uchun uni ichki onlayn do'konlarda va chet el saytlarida osongina topishingiz mumkin. Bu erda ba'zi qulay variantlar bilan bog'liq ba'zi havolalar:

LCD1602 + i2c moduli ko'k ekranli, Arduino bilan mos keladi Signal LCD1602 80 rubldan arzonroq ekran (yashil yoritgich) Arduino uchun I2C HD44780 bilan LCD2004 katta ekranli ekran
IIC adapteri va ko'k rangli yorug'lik bilan 1602 displey I2C I2C modulli LCD1602 boshqa variant 1602, Arduino bilan mos keladigan 1602 yil uchun IIC / I2C / SPI Adapter moduli
RGB yoritgichli displey! LCD 16 × 2 + Klaviatura + Arduino uchun Sheril LCD1602 LCD 1602 tugmachasi bilan Arduino uchun qalqon LCD displey 3D printer uchun (Ramps 1,4, matnli matnli s / 4), SD va MicroSD CardRider moduli

I2C protokolining tavsifi

Arduino displeyini I2C Adapteri orqali namoyish etishdan oldin, keling, I2C protokoli haqida gapiramiz.

I2C / iIC(Internism Internisent pallati) dastlab elektron qurilma ichidagi integral moslamalarni etkazish uchun yaratilgan protokol. Rivojlanish Filiplarga tegishli. I2C Protokolini boshqarish elektronikasi va manzil tizimidagi bloklarni boshqarish uchun zarur bo'lgan 8 bitli avtobusdan foydalanishga asoslangan, uni bir nechta qurilmalar bilan uzatilishi mumkin. Biz shunchaki ma'lumotlarni bitta qurilmani, so'ngra boshqa qurilmani, shuningdek, kerakli elementni ma'lumot paketlariga qo'shib qo'yamiz.

I2C sxemasi bitta drayver moslamasini o'z ichiga olishi mumkin (ko'pincha arduino mikrokonter) va bir nechta qullar (masalan, LCD displey). Har bir qurilma 7 dan 127 gacha bo'lgan manzilga ega. Bir sxemada bir xil manzilga ega ikkita qurilma bo'lishi kerak emas.

Arduino I2C-ni apparat darajasida qo'llab-quvvatlaydi. Ushbu protokol uchun asboblarni ulash uchun A4 va A5 pin-dan foydalanishingiz mumkin.

I2C-da siz bir nechta afzalliklarni tanlashingiz mumkin:

  • Operatsiya uchun faqat 2 satr talab qilinadi - SDA (ma'lumotlar liniyasi) va SCL (sinxronizatsiya chizig'i).
  • Ko'p sonli drayver qurilmalarini ulash.
  • Rivojlanish vaqtini kamaytirish.
  • Barcha qurilmalarni boshqarish uchun faqat bitta mikrokontroller talab qilinadi.
  • Bitta avtobusga ulangan mikrosirinlar faqat maksimal sig'im bilan cheklangan.
  • Tualga kiritilgan katta qirralarning maxsus filtri tufayli yuqori darajadagi ma'lumotlar xavfsizligi.
  • Qayta boshlanmaslik, tezkor muvaffaqiyatsiz tashish uchun oddiy protsedura.
  • Shin allaqachon Arduinoning o'zi bilan birlashtirilgan, shuning uchun siz qo'shimcha avtobus interfeysini ishlab chiqishingiz shart emas.

Kamchiliklari:

  • Line-dagi kapital cheklov mavjud - 400 pf.
  • Agar avtobusda bir nechta turli xil qurilmalar bo'lsa, I2C boshqaruvchisining qiyin dasturlash.
  • Ko'p sonli qurilmalar bilan, ishlamay qolishning qiyinligi bilan, agar ulardan biri past darajada noto'g'ri holatni o'rnatsa.

LCD 1602 Arduino uchun I2C moduli

Arduino-dagi I2C displeyidan foydalanishning eng tezkor va eng qulay usuli - bu o'rnatilgan qo'llab-quvvatlash protokoli bilan tayyor ekranni sotib olish. Ammo bunday ekranlar juda ko'p ta'sir ko'rsatmaydi, ular arzon emas. Ammo turli xil standart ekranlar allaqachon juda katta miqdorda chiqarildi. Shuning uchun, eng arzon va ommabop variant - bu alohida I2C modulini sotib olish va undan foydalanish - bu quyidagicha ko'rinadi:

Modulning bir tomonida biz ma'lumot uzatish uchun I2C - Ovqat, ovqat va 2-sonli xulosalarni ko'rmoqdamiz. Boshqa bir adapter bilan biz tashqi quvvat ulagichlarini ko'ramiz. Va tabiiyki, bortda juda ko'p oyoqlar bor, ular yordamida modul ekranning standart chiqishi uchun modul.


I2C chiqishi Arduino kengashi bilan bog'lanish uchun ishlatiladi. Agar kerak bo'lsa, biz tashqi ovqatlanish uchun tashqi ovqatni ulaymiz. O'rnatilgan kesish rezistidan foydalangan holda, biz Custom kontrast qiymatlarini sozlashimiz mumkin J

LCD 1602 modulini allaqachon lehim adapterlari bilan topishingiz mumkin, ulardan foydalanish juda sezgir. Agar siz alohida adapterni sotib olgan bo'lsangiz, uni modulga oldindan aytib berishingiz kerak bo'ladi.

LCD ekranini A2C orqali ARDUININA ga ulash

ARDUOIN, DIQQAT, DIQQAT, KUTISH, SIMLARNI BOSING, va ulanish uchun potentsiometr kerak bo'ladi.

Agar siz maxsus alohida I2C adapteridan foydalansangiz, avval uni ekran moduliga kiyishingiz kerak. U erda xato qilish qiyin, siz bunday sxemani yo'naltirishingiz mumkin.


I2C qo'llab-quvvatlanadigan suyuq kristalli monitor to'rt sim - ma'lumotlar uchun ikkita sim - ma'lumotlar uchun ikkita sim va elektr ta'minoti uchun ikkita simdan foydalanadi.

  • GND chiqishi taxtaning GND ga ulangan.
  • VCC mahsuloti - 5V-da.
  • SCL A5 pin bilan bog'laydi.
  • SDA pina A. ga ulanadi.

Va bu hammasi! Simlar hech qanday pivo yo'q, u chalkashib ketish juda oson. Shu bilan birga, I2C Protokolini amalga oshirishdagi qiyinchiliklar biz shunchaki kutubxonalarni hisobga olishimiz mumkin.

I2C LCD displeyi bilan kutubxonalar

Arduino C LCD 1602-ning I2C avtobusi orqali o'zaro ta'siri uchun sizga kamida ikkita kutubxona kerak bo'ladi:

  • I2C bilan ishlash bo'yicha kutubxona ADDUOIN EID dasturida allaqachon mavjud.
  • I2C avtobusida monitorni boshqarish uchun turli xil buyruqlarni o'z ichiga olgan va eskizni osonlashtirish va qisqartirishga imkon beradigan kutubxona. Siz qo'shimcha ravishda likprizstal_i2c.h kutubxonasini avtomatik ravishda o'rnatishingiz kerak bo'lgan displeyni ulagandan so'ng qo'shimcha ravishda o'rnatishingiz kerak

Barcha kerakli kutubxonalarning eskiziga ulangandan so'ng, biz ob'ekt yaratamiz va uning barcha funktsiyalarini ishlatishimiz mumkin. Sinov uchun, keling, misoldan quyidagi standart eskizni boshqaraylik.

#Include. #Include. // kutubxona aloqasi // # qo'shing // Muqobil kutubxona LCD (0x27,16,2) muqobil kutubxona kutubxonasini (0x27,1,2) ulang; // I2C manzilini (eng keng tarqalgan qiymat), shuningdek, ekran parametrlari (LCD 1602 - 2 ta belgidan iborat) (0x27) LCF8574 funtni sozlash Kutubxona () (LCD.init (); // LCD-ni boshqarish () displeyni aniqlash; // LCD-ni ulash (0,0); // kursorni birinchi qatorli LCD-ni belgilash. Chop etish ("Salom"); // birinchi qator LCD.Setcursor (0,1); // kursorni ikkinchi qatorli LCD-line-ning boshiga o'rnatish ("Arduinomster"); // matn to'plami Ikkinchi qatorda) bo'shliq ()

Suyuqkroy_i2c kutubxonasi funktsiyalari va usullarining tavsifi:

  • uy () va ravshan () - birinchi funktsiya kursorni ekranning boshiga qaytarishga imkon beradi, ammo shu bilan birga monitorda bo'lgan hamma narsani olib tashlaydi.
  • yozing (CH) - ekranda bitta ch belgisini chiqarishga imkon beradi.
  • kursor () va Noturs () - shoularni namoyish etadi / ekranda yashiradi.
  • blink () va zilzila () - kursor yonadi / miltillamaydi (displeyda yoqilgan bo'lsa).
  • ko'rsatish () va nodisplay () - displeyni ulash / o'chirishga imkon beradi.
  • scroldDisplayleft () va scolldisplayright () - chap / o'ngga ekranni birlashtiradi.
  • autoscroll () va noautoscroll () - avtoulovni aylantirish rejimini yoqish / o'chirish imkonini beradi. Ushbu rejimda har bir yangi belgi bir joyda yozilgan, ilgari ekranda oldindan joylashtirilgan joy.
  • chaptch Windh () va o'ngtoleft () - Chiqish matnining yo'nalishini - chapdan o'ngga yoki o'ngdan chapga.
  • crearechar (Ch, bitmap) - Bitmap bitlik fojdictsse massividan foydalanib, Bitmap Bitmasse Comrey-dan foydalanib, qora va oq nuqtalarni yaratish uchun.

I2C displey bilan ishlash uchun muqobil kutubxona

Ba'zi hollarda, belgilangan kutubxonadan PCF8574 kontrolleri bilan jihozlangan qurilmalar, xatolar bo'lishi mumkin. Bunday holda, muqobil sifatida, siz kutubxonada sotish uchun likarjetal_pcf8574.h. ITILCRRSSTALSAL_I2Cni kengaytiradi, shuning uchun u o'zidan foydalanishda hech qanday muammo bo'lmasligi kerak.

I2C LCD displeyda ulanish muammolari

Agar eskizni yuklab olgandan keyin displeyda biron bir yozuvingiz bo'lmasa, quyidagi amallarni sinab ko'ring.

Birinchidan, siz monitorning kontrastini oshirish yoki kamaytirishingiz mumkin. Ko'pincha ramzlar kontrast va orqa chiroq rejimi tufayli ko'rinmaydi.

Agar bu yordam bermasa, yorug'lik chiroq ulanganligini o'zgartirish uchun to'g'ri kontaktlarni tekshiring. Agar siz alohida I2C adapteridan foydalansangiz, u bilan aloqa qilish sifatini tekshiring.

Ekrandagi matnning etishmasligi uchun yana bir umumiy sabab i2C manzilini noto'g'ri kiritish mumkin. 0x27 0x20 yoki 0x3f bilan qurilma manzilini birinchi marta o'zgartirishga harakat qiling. Turli xil ishlab chiqaruvchilar turli xil standart manzillarni tikishlari mumkin. Agar bu yordam bermasa, siz barcha ulangan qurilmalarni ko'rib chiqing va ularning manzilini o'chirish usuli bilan ularning manzilini belgilashingiz mumkin. Misol Sketch I2C skaneri.

Agar ekran hali ham ishlamayotgan bo'lsa, adapter yo'qolishga harakat qiling va LCD-ni odatdagidek ulang.

Xulosa

Ushbu maqolada biz LCD ekrandan foydalanishning asosiy masalalarini ARDUININA loyihalarida ko'rib chiqdik, agar biz forumga jarima zarbasini tejashimiz kerak bo'lsa. Oddiy va arzon I2C adapteri faqat 2 analog pinlarni egallab olgan LCD displeyini ulashingizga imkon beradi. Ko'p holatlarda, bu juda muhim bo'lishi mumkin. Qulaylik uchun to'lov - ixtiyoriy moduldan - konverter va kutubxonadan foydalanish zarurati. Bizning fikrimizcha, qulaylik uchun barcha yuqori narxda emas va biz ushbu imkoniyatdan loyihalarda ushbu imkoniyatdan foydalanishni juda tavsiya qilamiz.