Ардуиноға негізделген роботты ұстану және болдырмау: 5 қадам
Ардуиноға негізделген роботты ұстану және болдырмау: 5 қадам
Anonim
Ардуиноға негізделген жеңіл робот және одан аулақ болу
Ардуиноға негізделген жеңіл робот және одан аулақ болу

Бұл жарықтан аулақ болатын қарапайым жоба.

Мен бұл модельдеуді Proteus 8.6 pro-да жасадым. Қажетті компоненттер: -1) Arduino uno.

2) 3 LDR.

3) 2 тұрақты кернеу қозғалтқышы.4) бір сервис.5) үш 1к резистор 6) бір H-Bridge l290D7) бір қосу және өшіру қосқышы [Бағдарламаның жағдайын өзгерту үшін]

8) 9в және 5в батареялары

1 -қадам: Ardunio коды

Arduino коды кішігірім түрде өзгертілген -23 ақпан 2016 ж.]

Бұл код жоғары түсіндірілген, мен түсіндіргім келмейді, бірақ егер сізге көмек қажет болса, маған хабарласыңыз ([email protected])

Ескертпе: -Бұл бағдарламада екі шартты қолданамын: 1-ші нұсқа: Жарықты қадағалау.2-ші-Жарықты болдырмау үшін.

Бұл шарттар орындалған кезде робот жарықтан кейін жүреді немесе болдырмайды. [Бұл мен таңдаған LDR мәнінің ең төменгі мәні. Қалыпты жарықта бұл диапазон 80 -ден 95 -ке дейін, бірақ оның қарқындылығы күннен -күнге жоғарылаған сайын, ол кернеуді бөлу принципі int a = 400 -де жұмыс істейді; // Толярлық мәні]

2 -қадам: Proteus файлдары

Arduino Library үшін сол сілтемеден жүктеп алыңыз

3-қадам: Сіздің H көпіріңіз қалай жұмыс істейді

Сіздің H көпіріңіз қалай жұмыс істейді
Сіздің H көпіріңіз қалай жұмыс істейді
Сіздің H көпіріңіз қалай жұмыс істейді
Сіздің H көпіріңіз қалай жұмыс істейді

L293NE/SN754410-бұл H-көпірі. Оның екі көпірі бар, біреуі чиптің сол жағында, екіншісі оң жақта және 2 қозғалтқышты басқара алады. Ол 1 амперге дейін ток жүргізе алады және 4,5 В пен 36 В аралығында жұмыс істейді. Сіз осы зертханада қолданатын шағын ток қозғалтқышы төмен кернеуден қауіпсіз жұмыс істей алады, сондықтан бұл көпір жақсы жұмыс істейді. H-көпірінде келесі түйреуіштер мен мүмкіндіктер бар: 1-ші түйін (1, 2EN) біздің қозғалтқышты қосады және ажыратады, ол HIGH немесе LOWPin 2 (1A)-бұл біздің қозғалтқыштың логикалық түйреуі (кіріс жоғары немесе төмен). 3 (1Y) моторлық терминалдардың бірі үшін 4-5 түйреуіш жерге арналған 6-штырь (2Y) басқа қозғалтқыш терминалына арналған 7-pin (2A)-бұл біздің қозғалтқыштың логикалық түйреуі (кіріс жоғары немесе төмен) PIN 8 (VCC2))-бұл біздің қозғалтқыштың қуат көзі, бұл сіздің қозғалтқышыңыздың номиналды кернеуі 9-11 түйреуіші ажыратылмаған, себебі сіз осы зертханада тек бір қозғалтқышты қолданасыз 12-13 түйреуіш жерге арналған 14-15 түйреуіші байланыстырылмаған Пин 16 (VCC1) 5В қосылған. Жоғарыда Н-көпірдің диаграммасы келтірілген және оның түйреуіштері біздің мысалда не істейді. Диаграммада қозғалтқыш логикалық түйреуіштердің күйіне сәйкес қалай жұмыс істейтінін көрсететін шындық кестесі бар (оларды біздің Arduino орнатады).

Бұл жобада қосқыш түйреуіш Arduino -дағы цифрлық түйреуішке қосылады, осылайша сіз оны ЖОҒАРЫ немесе ТӨМЕН жіберіп, қозғалтқышты қосуға немесе өшіруге болады. Қозғалтқыштың логикалық түйреуіштері Arduino -дағы арнайы цифрлық түйреуіштерге қосылады, сондықтан сіз оны қозғалтқышты бір бағытта бұру үшін ЖОҒАРЫ және ТӨМЕН жібере аласыз, ал LOW және HIGH -ды басқа бағытта бұруға болады. Қозғалтқыштың кернеуі әдетте сыртқы қуат көзі болып табылатын қозғалтқыштың кернеу көзіне қосылады. Егер сіздің қозғалтқышыңыз 5 В және 500 мА -дан аз жұмыс істей алатын болса, сіз Arduino 5 В шығысын қолдана аласыз. Қозғалтқыштардың көпшілігіне кернеу мен ток күшінің жоғарылауы қажет, сондықтан сізге сыртқы қуат көзі қажет болады.

Қозғалтқышты Н-көпірге жалғау Моторды H-көпірге 2-суретте көрсетілгендей жалғаңыз.

Немесе, егер сіз Arduino үшін сыртқы қуат көзін пайдалансаңыз, Vin істікшесін қолдануға болады.

4 -қадам: LDR қалай жұмыс істейді

Енді қосымша түсіндіруді қажет ететін бірінші нәрсе - жарыққа тәуелді резисторларды қолдану. Жарыққа тәуелді резисторлар (немесе LDR) - бұл сыртқы жарық мөлшеріне байланысты өзгеретін резисторлар, бірақ Arduino көмегімен қарсылықты қалай анықтауға болады? Сіз шынымен де мүмкін емессіз, бірақ кернеудің деңгейін аналогтық түйреуіштер көмегімен анықтай аласыз, ол 0-5 В аралығында өлшей алады (негізгі қолданыста). Енді сіз «қарсылық мәндерін кернеудің өзгеруіне қалай түрлендіреміз?» Деп сұрауыңыз мүмкін, бұл қарапайым, біз кернеуді бөлгіш жасаймыз. Кернеуді бөлгіш кернеуді қабылдайды, содан кейін кіріс кернеуіне пропорционалды кернеудің бір бөлігін және қолданылатын резисторлардың екі мәнінің қатынасын шығарады. Бұл теңдеу:

Шығу кернеуі = кіріс кернеуі * (R2 / (R1 + R2)) Мұндағы R1 - бірінші резистордың мәні, ал R2 - екіншісінің мәні.

Енді бұл жерде «Бірақ LDR қандай қарсылық мәніне ие?» Деген сұрақ туындайды, бұл жақсы сұрақ. Қоршаған жарық шамасы неғұрлым аз болса, қарсылық неғұрлым жоғары болса, соғұрлым көп жарық төмен қарсылықты білдіреді. Енді мен белгілі бір LDR үшін олардың қарсыласу диапазоны 200 - 10 кило Омды қолдандым, бірақ бұл әр түрлі болғандар үшін өзгереді, сондықтан оларды қайдан сатып алғанын іздеңіз және деректер кестесін немесе осыған ұқсас нәрсені табуға тырысыңыз. Case R1-бұл біздің LDR, сондықтан бұл теңдеуді қайтарып, математикалық сиқырды (математикалық электрлік сиқыр) жасайық. Енді алдымен біз осы кило Ом мәндерін омға түрлендіруіміз керек: 200 кило-Ом = 200, 000 Ом 10 кило-ом = 10 000 Ом Сондықтан біз қара күйде болғанда шығыс кернеуі қандай болатынын білу үшін келесі сандарды қосамыз: 5 * (10000 / (200000 + 10000)) Кіріс 5В, біз алатын болсақ Arduino -дан. Жоғарыда 0,24 В (дөңгелектелген) берілген. Енді біз келесі сандарды қолдана отырып, шығыс кернеуінің максималды жарықтығын білеміз: 5 * (10000 / (10000 + 10000)) Бұл бізге дәл 2,5 В береді. Бұл біз Arduino аналогтық түйреуіштеріне түсетін кернеудің мәндері, бірақ бұл бағдарламада көрінбейтін мәндер емес: «Бірақ неге?» деп сұрауыңыз мүмкін. Arduino аналогты кернеуді сандық деректерге түрлендіретін аналогты цифрлық чипті пайдаланады. Ардуинодағы цифрлық түйреуіштерден айырмашылығы, олар тек 0 немесе 5 В жоғары немесе төмен күйін оқи алады, аналогтық түйреуіштер 0-5В аралығында оқи алады және оны 0-1023 сан диапазонына түрлендіре алады.. біз Arduino қандай мәндерді оқитынын нақты есептей аламыз.

Бұл сызықтық функция болатындықтан, біз келесі формуланы қолдана аламыз: Y = mX + C Мұндағы; Y = цифрлық мәні қайда; m = еңіс, (көтерілу / жүгіру), (сандық мән / аналогтық мән) Мұндағы; Y = mXm = 1023 /5 = 204.6 береді, сондықтан: цифрлық мән = 204.6 * аналогтық мән Сондықтан қара түсте сандық мән: 204.6 * 0.24 болады, бұл шамамен 49. береді. ең жоғары жарықтылықта ол: 204.6 * 2.5 болады, бұл шамамен 511 береді. Енді осы аналогтардың екеуінде екі аналогты түйреуішке екі мәнді сақтау үшін екі бүтін айнымалыны құруға болады және олардың қайсысы ең төменгі мәнге ие екенін көру үшін салыстыру операторларын жасай аламыз. роботты сол жаққа бұру.

Ұсынылған: