|||Сабақ 98-5: Arduino көмегімен түймені басқан кезде жарықты бәсеңдету|||
Бұл сабақта сіз команда бойынша бәсеңдейтін жарық жасайсыз: басу түймесін басыңыз, жарықдиод толық жарықтықтан басталып, содан кейін біртіндеп өшкенше бәсеңдейді. Бұл Arduino-дағы жаңадан бастаушыларға арналған ең пайдалы үлгілердің бірі, себебі ол цифрлық кірісті (түйме) PWM аналогтық шығыспен (жарықдиод жарықтығы) біріктіреді және сізге бірдеңені қосу мен өшірудің орнына өзгерістің жылдамдығын және біркелкілігін басқаруды үйретеді.
Сұраныс бойынша бәсеңдеу нақты өнімдердің барлық жерінде кездеседі. Міне, осы жерде үйренгендеріңізді қолданудың бірнеше практикалық жолы:
- Жұмсақ өшетін индикатор шамдары — шам бірден өшудің орнына, түймені басқанда жайлап бәсеңдейді, бұл тұрмыстық техника мен 3D-басып шығарылған корпустарда әлдеқайда кәсіби көрінеді.
- Ұйқы / күту режимі — түймені басыңыз, жарқын күй жарықдиоды түнде сізге кедергі жасамас үшін қараңғылыққа бәсеңдейді, ал схема қуатталған күйде қалады.
- "Қараңғылыққа бәсеңдеу" сахналық немесе макет жарықтандыруы — бір түйме кенеттен өшудің орнына жарықдиод таспасының немесе панелінің біркелкі бәсеңдеуін іске қосады.
- Батареяны үнемдейтін кері байланыс — лездік түйме басу сізге бәсеңдеп кететін жарқын растау жарқылын береді, сондықтан жарықдиод тек қысқа уақытқа толық жанып тұрады.
- Интерактивті өнер және керек-жарақтар — жанасу арқылы іске қосылатын "дем шығару" эффектісі, косплей, диорамалар немесе мұражай экспозициялары үшін тамаша.
Негізгі идея қарапайым: түйме Arduino-ға "қазір бәсеңдей баста" дейді, ал Arduino жарықдиод жарықтығын 255 (толық) деңгейінен 0 (өшірулі) деңгейіне дейін кішкене қадамдармен төмендетеді. Қадамдар кішкене және жылдам болғандықтан, көзіңіз секірудің орнына біркелкі бәсеңдеуді көреді.
Егер сіз бұрын жарықдиодты бәсеңдетпеген болсаңыз, негізгі жарықтықты басқару 98-4 сабағы: Arduino көмегімен жарықдиод шамын бәсеңдету: жарықтықты басқару сабағында қарастырылған. Бұл сабақ тікелей сол негізге сүйеніп, триггер ретінде басу түймесін қосады.
Аппараттық құралдар және компоненттер
Бұл өте арзан құрылым — мұндағының барлығы стандартты бастауыш жинақ материалы:
- Arduino тақтасы (Uno, Nano, Mega немесе кез келген үйлесімді тақта)
- Бір жарықдиод (5 мм немесе 3 мм, кез келген түс)
- Бір басу түймесінің қосқышы (лездік, 4 істікті тактильді түрі жақсы жарайды)
- Жарықдиодқа арналған бір резистор — 200 Ω-дан 1000 Ω-ға дейін (классикалық 220 Ω немесе 330 Ω тамаша)
- Breadboard және DuPont қосқыш сымдары
- Бағдарламалауға арналған USB кабелі (және сымсыз жұмыс істеуін қаласаңыз, батарея немесе 5 V адаптер)
Жарықдиод резисторы туралы қысқаша ескерту: жарықдиодқа шамамен 2 V кернеу және шамамен 10 мА ток қажет. 5 V қуат көзімен резистор қалған 3 V-ты төмендетуі керек, сондықтан Ом заңы шамамен 300 Ω береді. 300 Ω-дан 1000 Ω-ға дейінгі кез келген мән жарайды — жоғары мәндер жарықдиодты жай ғана күңгірт етеді. Резисторды пайдалану міндетті емес емес; онсыз жарықдиод тым көп ток тартып, күйіп кетеді.
Сымдарды жалғау нұсқаулығы
Сымдар әдейі минималды. Жарықдиодтың аноды (ұзынырақ аяғы) резистор арқылы 3 цифрлық істігіне қосылады, ал катоды (қысқарақ аяғы, корпустағы тегіс жағы) жерге қосылады. Басу түймесі 2 цифрлық істігі мен жер арасына қосылады — сыртқы тарту резисторы қажет емес, себебі код Arduino-ның ішкі тартуын қосады.
Жарықдиодтың полярлығына назар аударыңыз: пластик корпустың тегіс жағы мен қысқарақ аяғы катодты (теріс) белгілейді. Егер оны кері салсаңыз, жарықдиод жай ғана жанбайды — зақым келмейді, тек оны аударып салыңыз.
Басу түймесі үшін, егер 4 істікті тактильді қосқышты пайдалансаңыз, істіктердің ішкі жұпталғанын есте сақтаңыз: төрт істіктің екеуі әрқашан бірге қосылған. Басылғанда дыбыс шығаратын жұпты табу үшін мультиметрді үздіксіздік режимінде пайдаланыңыз, содан кейін әр жақтан бір істікті пайдаланыңыз. Бір жағы 2 істігіне, екіншісі жерге қосылады.
Кодты түсіндіру
Скетч қысқа, және өзгерткіңіз келетін барлық нәрсе жоғарғы жақтағы бірнеше жолда орналасқан. Міне, пайдаланушы конфигурациялай алатын бөліктер:
const int pushButtonPin = 2;//басу түймесінің қосқышы қосылған пин
const int LEDPin = 3;//ЖШД қосылған пин
const int fadeAmount = 10; // ЖШД-нің жарықтығын қанша қадамға өзгерту керек
const int fadeSpeed = 5;//өшу уақыты миллисекундпен. мән неғұрлым аз болса, өшу соғұрлым жылдам
pushButtonPin және LEDPin Arduino-ға қай пиндерге қосылым жасағаныңызды жай ғана айтады. Егер түймені 4-пинге немесе ЖШД-ні 9-пинге (PWM қолдайтын пин) жылжытсаңыз, қосылымыңызға сәйкес келу үшін осы екі санды өзгертіңіз. ЖШД пині міндетті түрде PWM қолдауы керек екенін ескеріңіз — Uno-да бұл 3, 5, 6, 9, 10 немесе 11 пиндерін білдіреді — себебі өшу analogWrite() функциясын қажет етеді.
fadeAmount әр жарықтық қадамының қаншалықты үлкен екенін басқарады. Жарықтық 0-ден 255-ке дейін жұмыс істейді, сондықтан fadeAmount мәні 10 болса, ЖШД шамамен 25 қадаммен өшеді. Үлкенірек сан өшуді дөрекірек және жылдамырақ етеді; кішірек сан оны тегіс және баяу етеді.
fadeSpeed әр қадам арасындағы миллисекундтағы кідіріс. Бұл эффектінің сезілуіне әсер ететін ең маңызды параметр. 5 мс мәні жылдам, серпінді өшу береді; 30 мс немесе одан да көп мән баяу, сәнді өшуді береді. fadeAmount-пен бірге бұл екі мән өшуді дәл қалаған сипатқа келтіруге мүмкіндік береді.
Сондай-ақ білуге тұрарлық ішкі айнымалы бар:
int brightness = 255; // ЖШД қаншалықты жарық
int pushButtonStatus = 0; // 2-пиннен басу мәні
brightness 255-тен басталады, яғни түймені әр басқан сайын ЖШД толық жарықтықтан басталады. Егер өшуді күңгірттеу нүктеден — айталық, жарты жарықтықтан — бастағыңыз келсе, оны 128-ге өзгертіңіз.
Логиканың өзі былай жұмыс істейді: цикл түймені оқиды. Егер ол басылса (LOW, ішкі тарту резисторының арқасында), brightness нөлден жоғары болғанша while циклі орындалады. Сол цикл ішінде Arduino ағымдағы жарықтықты ЖШД-ге жазады, fadeAmount-ті азайтады, fadeSpeed миллисекунд күтеді және қайталайды. Түйме басылмаған кезде ЖШД жай ғана 0-ге жазылады және өшірулі қалады.
Бір маңызды деталь: ішкі тарту резисторы түйме басылмаған кезде пинді HIGH, ал басылған кезде LOW деп оқитынын білдіреді. Сондықтан код басуды анықтау үшін LOW мәнін тексереді. Егер сіз сыртқы тарту резисторына ауыссаңыз, бұл салыстыруды HIGH-қа өзгертуіңіз керек.
Тікелей жоба және демонстрация
Жүктелгеннен кейін мінез-құлық бірден байқалады және қанағаттандырарлық. Түймені басыңыз, ЖШД толық жарықтыққа секіреді, содан кейін өзіңіз басқаратын уақыт аралығында көрінетін түрде нөлге дейін өшеді. Түймені жіберіңіз, ЖШД қараңғы болады; қайта басыңыз, өшу толық жарықтықтан қайта басталады.
Видеода өшу бірнеше параметрде көрсетілген, сондықтан айырмашылықты көріп, ести аласыз. fadeAmount = 20 кезінде өшу жылдам және ірі — ол бірнеше көрінетін қадаммен нөлге жетеді. fadeAmount = 10-ға түсіру оны айтарлықтай тегістейді, ал fadeAmount = 3-ке өту өшуді айтарлықтай ұзартады және ол дерлік үздіксіз көрінеді. fadeSpeed мәні де соншалықты драмалық әсер етеді: оны 1 мс-ке қою өшуді дерлік лезде етеді, ал үлкенірек мәндер оны созады.
Мына тәжірибені көріп көріңіз: fadeAmount = 5 және fadeSpeed = 30 етіп қойыңыз. Сіз ұйқыға кетіп бара жатқан шамға ұқсайтын баяу, жұмсақ өшуді аласыз. Содан кейін қатты, жылдам кесу үшін fadeAmount = 50 және fadeSpeed = 1 етіп қойыңыз. Екеуі де "қате" емес — бұл толығымен қалаған көңіл-күйіңізге байланысты.
Сол түйменің ауыспалы мінез-құлқы 98-3 сабағы: Arduino көмегімен басу түймесін пайдаланып ауыспалы ЖШД-ні қосу/өшіру жолы бөлек қарастырылған, ал қарапайым басу-жарық нұсқасы 98-2 сабағы: Arduino көмегімен басу түймесін пайдаланып ЖШД-ні қосу және өшіру жолы бөлімінде.
Өшу лездік жанасу арқылы іске қосылатындықтан, дәл осы схема ЖШД орнына реле немесе MOSFET басқаруға табиғи сәйкес келеді — сіз 12 В шамды, қозғалтқыштың жұмсақ іске қосылуын немесе қыздыру элементінің қызуын өшіре аласыз. Түйме тек триггер; нені өшіретініңіз өзіңізге байланысты.
Осы видеодағы ілеспе жобалар
- 98-1 сабағы: Arduino көмегімен ЖШД-ні қосу және өшіру жолы
- 98-2 сабағы: Arduino көмегімен басу түймесін пайдаланып ЖШД-ні қосу және өшіру жолы
- 98-3 сабағы: Arduino көмегімен басу түймесін пайдаланып ауыспалы ЖШД-ні қосу/өшіру жолы
- 98-4 сабағы: Arduino көмегімен ЖШД жарығын өшіру: жарықтықты басқару
- 98-6 сабағы: Arduino көмегімен теңселме ЖШД ойыны
- 98-7 сабағы: Arduino және 5 ЖШД көмегімен жүретін жарық
- 98-8 сабағы: Arduino көмегімен басу түймесі және ЖШД-лермен жүретін жарық
- 98-9 сабағы: Arduino көмегімен ЖШД кернеу деңгейінің өлшегіші немесе потенциометрмен жүретін жарық
- 98-10 сабағы: Arduino бағдаршамы
Тараулар
- [00:00] 10 LED жобасына шолу
- [01:00] Arduino қадамдық курсына кіріспе
- [02:29] LED негіздері: таңбалар, полярлық және ток
- [03:49] Ом заңымен LED резисторын есептеу
- [05:53] 1-жоба: LED-ті қосу және өшіру
- [12:43] 2-жоба: Батырмамен LED
- [17:13] 3-жоба: Батырмамен LED-ті ауыстырып қосу
- [20:12] 4-жоба: LED-тің жарықтығын біртіндеп өзгерту
- [23:20] 5-жоба: Батырмамен LED-тің жарықтығын біртіндеп өзгерту
- [27:32] 6-жоба: Тербелмелі LED
- [30:47] 7-жоба: Жүгіретін жарық
- [36:41] 8-жоба: Батырмамен жүгіретін жарық
- [42:25] 9-жоба: LED кернеу деңгейін өлшегіш
- [49:25] 10-жоба: Arduino бағдаршамы
This code has not been parsed yet. Please return to the admin panel to parse it.
Сізге қажет болуы мүмкін нәрселер
-
АмазонкаSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Амазонка
-
Амазонка
-
Амазонка
Ресурстар мен сілтемелер
-
ҚұжаттамаDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Сыртқы
-
Сыртқы
-
Сыртқы
Файлдар📁
Arduino кітапханалары (zip)
-
SunFounder 3-і-1 Smart Car оқу жинағының бастапқы коды
3in1-kit-main-v2.zip12.80 MB
Пайдаланушының нұсқаулығы
-
SunFounder 3-в-1 Arduino Smart Car құрастыру нұсқаулығыБұл құжат SunFounder 3-в-1 Arduino Smart Car құрастыруды қадам бойынша көрсетеді
SunFounder_car_assembly_manual.pdf1.20 MB