{"id":1826,"date":"2024-02-25T23:53:47","date_gmt":"2024-02-25T18:53:47","guid":{"rendered":"https:\/\/yarat.uz\/?p=1826"},"modified":"2025-08-16T01:20:52","modified_gmt":"2025-08-15T20:20:52","slug":"bir-nechta-svetodiodni-boshqarish-14","status":"publish","type":"post","link":"https:\/\/yarat.uz\/?p=1826","title":{"rendered":"Bir nechta svetodiodni boshqarish. &#8220;Yuguruvchi olov&#8221; effekti [14+]"},"content":{"rendered":"<p style=\"text-align: justify;\">Biz &#8220;Blink&#8221; sketchi yordamida faqat 1 ta raqamli pinga ulangan svetodiodni boshqarishning variantlarini ko&#8217;rib chiqqanmiz. Aslida Arduino UNO platasi yordamida, boshqa raqamli pinlarga va hatto analog pinlarga ham svetodiodlarni ulash va sketchga tegishli o&#8217;zgartishlar kiritish orqali, raqamli pinlar yordamida jami 14 tagacha, analog pinlar bilan birga esa, 20 tagacha svetodiodni (ya&#8217;ni, shuncha sondagi tashqi yuklamalarni) boshqarish imkoniyati mavjud. Bunda, tashqi svetodiodlarni quyiroqda keltirilgan ayrim shartlarni bajargan holda RX (0-pin) va TX (1-pin) pinlariga ham ulash mumkin (ushbu svetodiodlar holati TX va RX pinlari holatiga qarama-qarshi (inversiya holatida) bo&#8217;ladi &#8211; HIGH signalida svetodiod o&#8217;chadi va aksincha LOW signali bilan yoqiladi).<\/p>\n<p style=\"text-align: justify;\">Lekin, agar yuklamalar soni 12 tadan oshmasa, imkon qadar raqamli <strong>0<\/strong> (<strong>RX<\/strong>) va <strong>1 (TX)\u00a0 <\/strong>pinlaridan foydalanmaslik tavsiya etiladi. Chunki, RX va TX pinlari platani UART interfeysi orqali kompyuterning USB portiga bog&#8217;lash vazifasini ham o&#8217;taydi va plata kompyuterga ulangan paytda ushbu pinlar band bo&#8217;lib qoladi yoki aksincha, pinlar band bo&#8217;lsa, ular UART interfeysi ishiga ham xalaqit berishi mumkin. Masalan, sketchni umuman mikrokontrollerga yuklab bo&#8217;lmasligi yoki oldin yozilgan proshivka ham ushbu port bilan notog&#8217;ri ishlashi mumkin.<\/p>\n<p style=\"text-align: justify;\">Shuning uchun, navbatdagi misollarda asosan 2 &#8230; 13 pinlardan foydalanamiz. Lekin qurilmani yaratishda yana 2 ta raqamli pinga ehtiyoj tug&#8217;ilsa, 0- va 1-pinlardan istisno tariqasida foydalanish mumkin va bunda quyidagi qoidalarga amal qilishga tog&#8217;ri keladi.<\/p>\n<p style=\"text-align: justify;\">0- va 1-pindan foydalanish ko&#8217;zda tutulgan taqdirda, proshivka qilish oldidan ushbu pinga bog&#8217;langan har qanday yuklamalarni vaqtincha uzib turish kerak (aksincha proshivka plataga yuklanmaydi). Sketchni plataga yuklab bo&#8217;linganidan keyin esa, USB kabelni kompyuterdan uzilishi kerak (aks holda, pin pand bo&#8217;lib qoladi). Qurilmaning elektr ta&#8217;minoti esa, faqat 5-12V kuchlanishli tashqi elektr manbaidan (ta&#8217;minot blokidan yoki akkumulyator batareyasidan) amalga oshirilishi mumkin. Xuddi shuningdek, plataga yana sketchni yuklashga tog&#8217;ri kelsa, oldin tashqi elektr manbaini platadan uzub qo&#8217;yish shart.<\/p>\n<p style=\"text-align: justify;\">Tashqi elektr manbaining chiqish shtekkeri mavjud bo&#8217;lsa, u platadagi mos uyaga suqiladi. Bunday shtekker mavjud bo&#8217;lmagan taqdirda esa, uning +5-12V kuchlanishli chiqish kontakti Arduino platasidagi <strong>Vin<\/strong> piniga, -5-12V (yoki GND) kontakti esa, platadagi 3 ta <strong>GND<\/strong> pinlarining ixtiyoriy bittasiga ulanishi mumkin.<\/p>\n<p style=\"text-align: center;\"><strong>Svetodiodlar yordamida &#8220;yuguruvchi olov&#8221; effektini hosil qilamiz<\/strong><\/p>\n<p style=\"text-align: justify;\">Faraz qilaylik, 3 xil rangli svetodiodni ketma-ket yoqish, ya&#8217;ni, <em><strong>&#8220;yuguruvchi olov&#8221;<\/strong><\/em> effektini hosil qilish zarur bo&#8217;lsin hamda qizil, sariq va yashil svetodiodlar plataning 2, 3 va 4-raqamli pinlariga ulangan bo&#8217;lsin.<\/p>\n<p style=\"text-align: justify;\">Avvalo ularning pin raqamini mos ravishda pin1, pin2 va pin3 o&#8217;zgaruvchilariga o&#8217;zlashtiramiz. Sketchni shunday o&#8217;zgartiramizki, avval faqat qizil, 0,1 sekund pauzadan keyin faqat sariq va yana 0,1 sekund pauzadan keyin faqat yashil svetodiod yonsin, oxirida 0,5 sekund pauzadan keyin hammasi boshidan takrorlansin. Sketch quyidagi holga keladi:<\/p>\n<p style=\"text-align: justify;\"><div class=\"su-spoiler su-spoiler-style-fancy su-spoiler-icon-plus su-spoiler-closed\" data-scroll-offset=\"0\" data-anchor-in-url=\"no\"><div class=\"su-spoiler-title\" tabindex=\"0\" role=\"button\"><span class=\"su-spoiler-icon\"><\/span>'Yuguruvchi olov' effekti. Tashqi svetodiodlarda<\/div><div class=\"su-spoiler-content su-u-clearfix su-u-trim\">\n<p style=\"text-align: justify;\">int pin1 = 2; \/\/qizil svetodiod pini<br \/>\nint pin2 = 3; \/\/qizil svetodiod pini<br \/>\nint pin3 = 4; \/\/qizil svetodiod pini<br \/>\nint pauza = 100; \/\/pauza qiymati, millisekundda<\/p>\n<p style=\"text-align: justify;\">void setup() {<br \/>\npinMode(<strong>pin1<\/strong>, OUTPUT);<br \/>\npinMode(<strong>pin2<\/strong>, OUTPUT);<br \/>\npinMode(<strong>pin3<\/strong>, OUTPUT);<br \/>\n}<\/p>\n<p style=\"text-align: justify;\">void loop() {<br \/>\ndigitalWrite(<strong>pin1<\/strong>, HIGH); \/\/ qizil svetodiodni yoqamiz, qolganlarini o&#8217;chiramiz;<br \/>\ndigitalWrite(<strong>pin2<\/strong>, LOW);<br \/>\ndigitalWrite(<strong>pin3<\/strong>, LOW);<br \/>\ndelay(<strong>pauza<\/strong>); \/\/ pauza<br \/>\ndigitalWrite(<strong>pin1<\/strong>, LOW); \/\/ sariq svetodiodni yoqamiz, qolganlarini o&#8217;chiramiz;<br \/>\ndigitalWrite(<strong>pin2<\/strong>, HIGH);<br \/>\ndigitalWrite(<strong>pin3<\/strong>, LOW);<br \/>\ndelay(<strong>pauza<\/strong>); \/\/ pauza<br \/>\ndigitalWrite(<strong>pin1<\/strong>, LOW); \/\/ yashil svetodiodni yoqamiz, qolganlarini o&#8217;chiramiz;<br \/>\ndigitalWrite(<strong>pin2<\/strong>, LOW);<br \/>\ndigitalWrite(<strong>pin3<\/strong>, HIGH);<br \/>\ndelay(<strong>pauza<\/strong>); \/\/ pauza<br \/>\ndigitalWrite(<strong>pin1<\/strong>, LOW); \/\/ hamma svetodiodlarni o&#8217;chiramiz;<br \/>\ndigitalWrite(<strong>pin2<\/strong>, LOW);<br \/>\ndigitalWrite(<strong>pin3<\/strong>, LOW);<br \/>\ndelay(<strong>pauza * 5<\/strong>); \/\/ oxirgi pauza davomiyligini 5 martaga ochiramiz<br \/>\n}<\/div><\/div>\n<p style=\"text-align: justify;\">Natijani kuzatamiz:<br \/>\n<div class=\"su-youtube su-u-responsive-media-yes\"><iframe loading=\"lazy\" width=\"640\" height=\"480\" src=\"https:\/\/www.youtube.com\/embed\/cc_LA9h_qBw?\" frameborder=\"0\" allowfullscreen allow=\"autoplay; encrypted-media; picture-in-picture\" title=\"Blink\"><\/iframe><\/div>\n2-varianti:<br \/>\n<div class=\"su-youtube su-u-responsive-media-yes\"><iframe loading=\"lazy\" width=\"640\" height=\"480\" src=\"https:\/\/www.youtube.com\/embed\/oIkDdBH42j8?\" frameborder=\"0\" allowfullscreen allow=\"autoplay; encrypted-media; picture-in-picture\" title=\"Blink\"><\/iframe><\/div>\nYoki, faqat 3 ta ichki (0, 1 va 13-pinlardagi) svetodiodlardan foydalanilgan taqdirda:<\/p>\n<p style=\"text-align: justify;\"><div class=\"su-spoiler su-spoiler-style-fancy su-spoiler-icon-plus su-spoiler-closed\" data-scroll-offset=\"0\" data-anchor-in-url=\"no\"><div class=\"su-spoiler-title\" tabindex=\"0\" role=\"button\"><span class=\"su-spoiler-icon\"><\/span>'Yuguruvchi olov' effekti. 3 ta ichki svetodiodlarda<\/div><div class=\"su-spoiler-content su-u-clearfix su-u-trim\">\n<p style=\"text-align: justify;\">int pin1 = 1; \/\/TX pini<br \/>\nint pin2 = 0; \/\/RX pini<br \/>\nint pin3 = 13; \/\/foydalanuvchi ichki svetodiodi<br \/>\nint pauza = 100; \/\/pauza qiymati, millisekundda<\/p>\n<p style=\"text-align: justify;\">void setup() {<br \/>\npinMode(<strong>pin<\/strong>, OUTPUT);<br \/>\n}<\/p>\n<p style=\"text-align: justify;\">void loop() {<br \/>\n\/\/ &#8220;!&#8221; &#8211; pin holatini inversiyalash amali. Masalan: !HIGH = LOW, !LOW = HIGH bo&#8217;ladi.<br \/>\ndigitalWrite(<strong>pin1<\/strong>, !HIGH);\u00a0 TX ichki svetodiodini yoqamiz, qolganlarini o&#8217;chiramiz;<br \/>\ndigitalWrite(<strong>pin2<\/strong>, !LOW);<br \/>\ndigitalWrite(<strong>pin3<\/strong>, LOW);<br \/>\ndelay(<strong>pauza<\/strong>); \/\/ pauza<br \/>\ndigitalWrite(<strong>pin1<\/strong>, !LOW); \/\/ RX ichki svetodiodini yoqamiz, qolganlarini o&#8217;chiramiz;<br \/>\ndigitalWrite(<strong>pin2<\/strong>, !HIGH);<br \/>\ndigitalWrite(<strong>pin3<\/strong>, LOW);<br \/>\ndelay(<strong>pauza<\/strong>); \/\/ pauza<br \/>\ndigitalWrite(<strong>pin1<\/strong>, !LOW); \/\/ foydalanuvchi ichki svetodiodini yoqamiz, qolganlarini o&#8217;chiramiz;<br \/>\ndigitalWrite(<strong>pin2<\/strong>, !LOW);<br \/>\ndigitalWrite(<strong>pin3<\/strong>, HIGH);<br \/>\ndelay(<strong>pauza<\/strong>); \/\/ pauza<br \/>\ndigitalWrite(<strong>pin1<\/strong>, !LOW); \/\/ hamma svetodiodlarni o&#8217;chiramiz;<br \/>\ndigitalWrite(<strong>pin2<\/strong>, !LOW);<br \/>\ndigitalWrite(<strong>pin3<\/strong>, LOW);<br \/>\ndelay(<strong>pauza * 5<\/strong>); \/\/ oxirgi pauza davomiyligini 5 martaga oshiramiz<br \/>\n}<\/div><\/div>\n<p style=\"text-align: justify;\">Natijani kuzatamiz:<br \/>\n<div class=\"su-youtube su-u-responsive-media-yes\"><iframe loading=\"lazy\" width=\"640\" height=\"480\" src=\"https:\/\/www.youtube.com\/embed\/Iu1lN3dmYwQ?\" frameborder=\"0\" allowfullscreen allow=\"autoplay; encrypted-media; picture-in-picture\" title=\"Blink\"><\/iframe><\/div>\n<p style=\"text-align: justify;\">2-varianti:<br \/>\n<div class=\"su-youtube su-u-responsive-media-yes\"><iframe loading=\"lazy\" width=\"640\" height=\"480\" src=\"https:\/\/www.youtube.com\/embed\/_-cmO3H-ZrQ?\" frameborder=\"0\" allowfullscreen allow=\"autoplay; encrypted-media; picture-in-picture\" title=\"Blink\"><\/iframe><\/div>\n<p style=\"text-align: justify;\">&#8220;Yuguruvchi olov&#8221; effektini hosil qilish uchun kamida 3 ta svetodioddan foydalaniladi. Lekin ushbu effekt maksimal darajada chiroyli ko&#8217;rinishi uchun, ularning soni imkon darajasida ko&#8217;proq bo&#8217;lishi va yonma-yon bir nechta svetodiodlar baravar yonishini dasturlash ham mumkin.<\/p>\n<p style=\"text-align: center;\"><em>Mustahkamlash uchun mashqlar.<\/em><\/p>\n<p style=\"text-align: justify;\"><em>1) &#8220;Yuguruvchi olov&#8221; effektini 6 ta svetodiod yordamida hosil qiling.<br \/>\n2) &#8220;Yuguruvchi olov&#8221; effektini 12 ta svetodiod yordamida hosil qiling, bunda qo&#8217;shni 4 tagacha svetodiod baravar yonsin (1, 1-2, 1-2-3, 1-2-3-4, 2-3-4-5, 3-4-5-6, 4-5-6-7, 5-6-7-8, 6-7-8-9, 7-8-9-10, 8-9-10-11, 9-10-11-12, 10-11-12, 11-12, 12).<br \/>\n3) Barcha topshiriqlarni &#8216;Wemos D1 mini&#8217; platasi uchun bajaring.<br \/>\n4) Yuqoridagi topshiriqlarni ArduBlock dasturida bajarishni mashq qiling.<br \/>\n<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Biz &#8220;Blink&#8221; sketchi yordamida faqat 1 ta raqamli pinga ulangan svetodiodni boshqarishning variantlarini ko&#8217;rib chiqqanmiz. Aslida Arduino UNO platasi yordamida, boshqa raqamli pinlarga va hatto analog pinlarga ham svetodiodlarni ulash va sketchga tegishli o&#8217;zgartishlar kiritish orqali, raqamli pinlar yordamida jami 14 tagacha, analog pinlar bilan birga esa, 20 tagacha svetodiodni (ya&#8217;ni, shuncha sondagi tashqi yuklamalarni) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-1826","post","type-post","status-publish","format-standard","hentry","category-namunaviy-sketchlar"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/1826","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1826"}],"version-history":[{"count":5,"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/1826\/revisions"}],"predecessor-version":[{"id":5242,"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/1826\/revisions\/5242"}],"wp:attachment":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1826"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1826"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}