Мазмуну:
- Жабдуулар
- 1 -кадам: Анын кантип иштээрин аныктаңыз: жөө светофор
- 2 -кадам: Районду куруу
- 3 -кадам: Мамлекеттик машинаны түзүү
- 4 -кадам: Мисалды иштетүү
- 5 -кадам: C ++ коду түзүлгөн
- 6 -кадам: Мисал алыңыз
Video: Мамлекеттик машина Arduino - жөө светофор: 6 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Саламатсызбы! Мен сизге YAKINDU Statechart Tools аркылуу Arduino үчүн C ++ тилинде светофорду чектүү мамлекеттик машина менен кантип программалоону көрсөтөм. Бул мамлекеттик машиналардын күчүн көрсөтөт жана кийинки долбоорлор үчүн план катары колдонулушу мүмкүн.
Жабдуулар
Сизге Arduino, кээ бир баскычтар, LED, Jumper жана резисторлор гана керек.
Аппараттык
- 2x баскыч
- 2x светофорлор же 220 Ом резисторлору бар светодиоддорду колдонсоңуз болот
- 2x 10k Ohm резисторлору
- Breadboard
- Jumper
- Arduino Uno/Mega (же жок дегенде 8 GPIOго ээ болгон башка)
Программалык камсыздоо
- YAKINDU Statechart Tools
- Arduino үчүн Eclipse C ++ IDE
1 -кадам: Анын кантип иштээрин аныктаңыз: жөө светофор
Алгач жөө адамдар үчүн светофор кандай иштеши керек экенин такташ керек. Мен пункттарды жалпылоого аракет кылдым:
- Эки жол чырак колдонулат - бири унаалар үчүн, экинчиси жөө адамдар үчүн
- Светофор баскычтын жардамы менен күйгүзүлүшү мүмкүн
- Жөө адам баскычты басуу менен көчөдөн өтүүнү сурана алат
- Өчүрүлгөн светофор эки сары светодиоддун тең жануусу менен көрсөтүлөт
- Светофор күйгүзүлгөндөн кийин коопсуз режимде 10 секунд күтөт
- Коопсуз режимден кийин, жөө адам өтүнүчтү билдиргенге чейин, унаалар дайыма жашыл фазага ээ
- Жөө жүргүнчүлөрдүн өтмөктөн өтүү өтүнүчү сары LEDди алмаштыруу менен көрсөтүлөт
Кошумчалай кетсек, жол чырактын иштөө ыкмасына жараша кээ бир убакыт окуялары бар.
2 -кадам: Районду куруу
Келгиле, схеманы орнотууну баштайлы. Менин мисалымда, алдын ала көрүү сүрөтүндө көрүнүп тургандай, мен Arduino Mega 2560 колдондум, бирок ар бир башка Arduino кеминде сегиз GPIO менен жакшы болушу керек. Кошумча катары, мен Амазонкадан 5В светофор сатып алдым. Жөн эле Traffic Light Arduino издеңиз. Болбосо, сиз жөн эле алты түрдүү LED колдоно аласыз. Мындан тышкары, сизге эки баскыч жана эки 10k Ohm резистору керек.
Үч сол светодиод автоунаа кыймылы үчүн жана жөө жүргүнчүлөр үчүн үч оң LED колдонулат, мында сары суранычты билдире алат.
3 -кадам: Мамлекеттик машинаны түзүү
Демек, сиз көрүп тургандай, курамдык мүчөлөрү бар эки негизги мамлекет бар - штат күйүк жана өчүк. ON/OFF баскычына туташкан onOff окуясын колдонуу менен эки абалдын ортосунда которула аласыз. Баштапкы абалда, өчүрүү абалында, эки сары LED тең секунд сайын жарк этип баштайт. Светофор күйгүзүлгөндөн кийин ал коопсуз жайдан башталат. 10 секунддан кийин светофордун типтүү жүрүм -туруму чечилет. Кызыл жана сары светодиод StreetPrepare абалында күйгүзүлөт жана светофор дагы 2 секунддан кийин жашыл болуп күйөт. Мындан ары, мамлекеттик машина экинчи баскычка туташтырылган жөөчүнүн өтүнүчүн күтүп жатат. Иш -чараны жөнөткөндөн кийин, PedWating абалында сары LEDди секундасына алмаштыруу менен өтүнүч көрсөтүлөт. 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); тыныгуу; } демейки: break; } clearInEvents (); }
6 -кадам: Мисал алыңыз
Бардык мисал түзүүгө жана иштетүүгө даяр. Бул коммерциялык эмес колдонуу үчүн акысыз YAKINDU Statechart Tools менен келет. Жүктөп алгандан кийин, мисалды түздөн -түз куралдан импорттой аласыз:
Файл -> Жаңы -> Мисал -> YAKINDU Statechart мисалдары -> Кийинки -> Светофор (C ++) Arduino үчүн
> БУЛ жерден сиз YAKINDU Statechart Tools << жүктөп алсаңыз болот
Сиз 30 күндүк сыноо менен баштасаңыз болот. Андан кийин, сиз коммерциялык эмес колдонуу үчүн бекер болгон лицензияны алышыңыз керек!
Сунушталууда:
MSP430дагы акыркы мамлекеттик машина: 6 кадам
MSP430дагы Чектүү Мамлекеттик Машина: Мен сизге MSP430G2 Иштетүү панелин ТҮКТҮК Техас Инструменттери Композиторлор Студиясында YAKINDU Statechart Tools жардамы менен Чектүү Мамлекеттик Машиналар (FSM) менен кантип программалоону көрсөтөм. Бул окуу куралы алты кадамды камтыйт: YAKINDU Statechart куралдарын төмөнкүдөй орнотуу
Ардуино Отто робот мамлекеттик машина менен: 4 кадам
Ардуино Отто роботу мамлекеттик машина менен: Долбоорго сереп YAKINDU Statechart куралдарын колдонуу (коммерциялык эмес үчүн акысыз), биз мамлекеттик машиналарды оңой эле графикалык моделдөө үчүн колдоно алабыз
Мамлекеттик машина жана SPU кеңейтүүчүлөрү менен Arduino боюнча көп тапшырмалар: 3 кадам
Мамлекеттик машина жана SPU кеңейтүүчүлөрү менен Arduino боюнча көп тапшырма: Өткөн жумада мен ардуино менен фейерверктерди сыноо системасын түзүүнү сурандым. Өрттү көзөмөлдөө үчүн болжол менен 64 жыйынтык керек болчу. Мунун бир жолу - IC кеңейтүүчүлөрдү колдонуу. Ошентип, 2 чечим бар:- I2C экспансери, бирок ал качан инверторго муктаж
Arduino PLC 32 I/O+Мамлекеттик машина+SCADA же HMI: 8 кадам
Arduino PLC 32 I/O+Мамлекеттик машина+SCADA же HMI: arduino менен өнөр жай системасын программалоонун, башкаруунун жана көзөмөлдөөнүн көптөгөн жолдору
Smart Interactive светофор: 5 кадам (сүрөттөр менен)
Акылдуу интерактивдүү светофор: Дүйнөнүн эң мыкты жана интерактивдүү светофорун курууга даярсызбы? Жакшы! Бул үйрөткүчтө биз Arduino аркылуу кантип өзүңүз кура алаарыңызды түшүндүрөбүз. Керектүү компоненттер:- Arduino (..duh)- LM317 Mosfet- 2x 60 см аналогдук RGB LED тилкелери (12V)- PVC түтүк