Мазмұны:
- Жабдықтар
- 1 -қадам: Оның қалай жұмыс істейтінін анықтаңыз: жаяу жүргіншілерге арналған бағдаршам
- 2 -қадам: Схеманы құрыңыз
- 3 -қадам: Мемлекеттік машинаны құру
- 4 -қадам: Мысалды іске қосу
- 5 -қадам: C ++ коды жасалды
- 6 -қадам: Мысалды алыңыз
Бейне: Ардуинодағы мемлекеттік машина - жаяу жүргіншілер бағдаршамы: 6 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Сәлеметсіз бе! Мен сізге Arduino үшін C ++ тіліндегі жаяу жүргінші бағдаршамын YAKINDU Statechart құралдарының көмегімен соңғы күй машинасымен қалай бағдарламалау керектігін көрсетемін. Бұл мемлекеттік машиналардың күшін көрсетеді және оны басқа жобалар үшін сызба ретінде пайдалануға болады.
Жабдықтар
Сізге тек Arduino, бірнеше түймелер, жарық диодтары, қосқыш пен резистор қажет.
Аппараттық құрал
- 2x батырмасы
- 2 рет бағдаршам немесе 220 Ом резисторы бар жарықдиодты пайдалануға болады
- 2х 10 кОм резисторлар
- Нан тақтасы
- Секіру
- Arduino Uno/Mega (немесе кемінде 8 GPIO бар кез келген басқа)
Бағдарламалық қамтамасыз ету
- YAKINDU Statechart құралдары
- Arduino үшін Eclipse C ++ IDE
1 -қадам: Оның қалай жұмыс істейтінін анықтаңыз: жаяу жүргіншілерге арналған бағдаршам
Алдымен біз жаяу жүргіншілер бағдаршамының қалай жұмыс істейтінін көрсетуіміз керек. Мен нүктелерді қорытындылауға тырыстым:
- Екі бағдаршам қолданылады - біреуі көліктерге, екіншісі жаяу жүргіншілерге арналған
- Бағдаршамды батырманың көмегімен қосуға болады
- Жаяу жүргінші батырманы басу арқылы көшеден өтуді сұрай алады
- Өшірілген бағдаршам екі сары жарық диодының жыпылықтауы арқылы көрсетіледі
- Қосылғаннан кейін бағдаршам қауіпсіз режимде 10 секунд күтеді
- Қауіпсіз режимнен кейін, жаяу жүргінші сұранысты бастамайынша, көліктерде әрқашан жасыл кезең болады
- Жаяу жүргіншілердің өтуін сұрау сары жарықдиодты ауыстыру арқылы көрсетіледі
Сонымен қатар, бағдаршамның қалай жұмыс істейтініне байланысты уақытша оқиғалар бар.
2 -қадам: Схеманы құрыңыз
Схеманы орнатуды бастайық. Менің мысалда, алдын ала қарау суретінен көріп тұрғаныңыздай, мен Arduino Mega 2560 қолдандым, бірақ кемінде сегіз GPIO бар басқа Arduino жақсы болуы керек. Сонымен қатар, мен Amazon -да 5В бағдаршам сатып алдым. Бағдаршам Arduino іздеңіз. Әйтпесе, сіз алты түрлі жарықдиодты қолдана аласыз. Сонымен қатар, сізге екі түйме түймесі мен екі 10к Ом резисторы қажет.
Үш сол жарықдиодты автокөлік қозғалысы үшін және жаяу жүргіншілер үшін үш оң жақ жарық диоды қолданылады, онда сары түс сұранысты көрсете алады.
3 -қадам: Мемлекеттік машинаны құру
Көріп отырғаныңыздай, құрамдас мүшелері бар екі негізгі күй бар - күй қосулы және өшірілген. ҚОСУ/ӨШІРУ түймесіне қосылған onOff оқиғасын қолдану арқылы екі күй арасында ауысуға болады. Бастапқы күйде, өшіру күйінде, екі сары жарық диоды секунд сайын жыпылықтай бастайды. Бағдаршам қосылғаннан кейін ол қауіпсіз аймақта басталады. 10 секундтан кейін бағдаршамның әдеттегі әрекеті реттеледі. Қызыл және сары жарық диоды StreetPrepare күйінде қосылады және бағдаршам тағы 2 секундтан кейін жасыл түске айналады. Осы сәттен бастап мемлекеттік машина жаяу жүргінші сұрауын күтеді, ол екінші түймені қосады. Іс -шара жіберілгеннен кейін PedWating күйінде әр секунд сайын сары жарықдиодты ауыстыру арқылы сұраныс көрсетіледі. 7 секундтан кейін жаяу жүргіншілерге Жаяу Жасыл күйінде жүру туралы сигнал келгенше бағдаршам алдымен сарыға, сосын қызылға ауысады. Осыдан кейін, PedestrianRed қосылады және цикл қайталанады. Мұны тек бағдаршамды қайта сөндіру арқылы ғана тоқтатуға болады.
4 -қадам: Мысалды іске қосу
5 -қадам: C ++ коды жасалды
Жасалған C ++ коды-бұл күй машинасының логикасын басқаруға арналған классикалық коммутатор. Бұл қалай көрінетіні туралы код үзіндісі:
жарамсыз TrafficLightCtrl:: runCycle () {clearOutEvents (); for (stateConfVectorPosition = 0; stateConfVectorPosition <maxOrthogonalStates; stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition]) {case main_region_on_r1_StreetGreen: {main_region_on_r1_StreetGreen_react (үзіліс; } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (true); үзіліс; } әдепкі: үзіліс; } clearInEvents (); }
6 -қадам: Мысалды алыңыз
Барлық мысал құрастыруға және іске қосуға дайын. Ол YAKINDU Statechart құралдарымен бірге келеді, ол коммерциялық емес мақсатта ақысыз. Жүктелгеннен кейін сіз мысалды тікелей құралға импорттай аласыз:
Файл -> Жаңа -> Мысал -> YAKINDU Statechart мысалдары -> Келесі -> Бағдаршам (C ++) Arduino үшін
> МҰНДА сіз YAKINDU Statechart құралдарын << жүктей аласыз
Сіз 30 күндік сынақтан бастай аласыз. Осыдан кейін сіз лицензияны алуыңыз керек, ол коммерциялық емес мақсатта пайдалануға ақысыз!
Ұсынылған:
Шудың бағдаршамы - DIY 3D басып шығарылған: 8 қадам (суреттермен)
Шам бағдаршамы - DIY 3D басып шығарылған: Барлық адамдар үнсіз жұмыс істегісі келеді және жақсы жұмыс ортасының болуы маңызды. Біз бұл жобаны осы ұсынысқа жету үшін жасадық. Шулы бағдаршам ДБ басқаратын «бағдаршамнан» тұрады
Arduino бағдаршамы: 3 қадам (суреттермен)
Arduino бағдаршамы: Бұл нұсқаулық келесіден алынған: Arduino-Traffic-Light-Simulator Мен осы бағдаршамның сызбасын бөлек бағдаршамды жасау үшін қолдандым. Мен келесі өзгерістерді енгіздім: светодиодтар үшін тесіктер кішірек, 5 мм светодиодтар үшін (10 мм светодиодтардың орнына)
Мемлекеттік машина және SPI кеңейтушілері бар Arduino -дағы көп тапсырма: 3 қадам
Мемлекеттік машина және SPU кеңейтушілері бар Arduino -дағы көп тапсырма: Өткен аптада мен ардуино көмегімен отшашуды басқаратын жүйе құруды сұрадым. Өртті сөндіру үшін шамамен 64 шығыс қажет болды. Мұны істеудің бір әдісі - IC кеңейтушілерді қолдану. Сонымен, 2 шешім бар:- I2C кеңейткіші, бірақ ол кезде инвертор қажет
Arduino бағдаршамы: 8 қадам (суреттермен)
Arduino бағдаршамы: Бұл жоба 5мм светодиодтармен және T1-3/4 жарықдиодты қондырғылармен жақсырақ визуализация үшін жасалды, осылайша оның түстерін бөлек көрсету үшін 3 жарықдиодты қызыл, сары & Сәйкесінше жасыл
Arduino PLC 32 I/O+мемлекеттік машина+SCADA немесе HMI: 8 қадам
Arduino PLC 32 I/O+State Machine+SCADA немесе HMI: arduino көмегімен өнеркәсіптік жүйені бағдарламалаудың, бақылаудың және бақылаудың көптеген әдістері