فهرست مطالب:

State State Machine در آردوینو - چراغ راهنمایی عابر پیاده: 6 مرحله (همراه با تصاویر)
State State Machine در آردوینو - چراغ راهنمایی عابر پیاده: 6 مرحله (همراه با تصاویر)

تصویری: State State Machine در آردوینو - چراغ راهنمایی عابر پیاده: 6 مرحله (همراه با تصاویر)

تصویری: State State Machine در آردوینو - چراغ راهنمایی عابر پیاده: 6 مرحله (همراه با تصاویر)
تصویری: Traffic light and pedestrian walkway 2024, جولای
Anonim
State State on Arduino - چراغ راهنمایی عابر پیاده
State State on Arduino - چراغ راهنمایی عابر پیاده

سلام! من قصد دارم به شما نشان دهم که چگونه با استفاده از YAKINDU Statechart Tools یک چراغ راهنمایی عابر پیاده را برای Arduino در C ++ با دستگاه حالت محدود برنامه ریزی کنید. این امر قدرت ماشین های دولتی را نشان می دهد و می تواند به عنوان نقشه ای برای پروژه های بعدی مورد استفاده قرار گیرد.

تدارکات

شما فقط به یک آردوینو ، چند دکمه فشاری ، LED ، Jumper و مقاومت احتیاج دارید.

سخت افزار

  • دکمه فشاری 2 برابر
  • 2 برابر چراغ راهنمایی یا می توانید از LED های با مقاومت 220 اهم استفاده کنید
  • 2x مقاومت 10k اهم
  • تخته نان
  • بلوز
  • Arduino Uno/Mega (یا هر دستگاه دیگری که حداقل 8 GPIO داشته باشد)

نرم افزار

  • ابزارهای YACINDU Statechart
  • Eclipse C ++ IDE برای آردوینو

مرحله 1: نحوه عملکرد آن را مشخص کنید: چراغ راهنمایی عابر پیاده

در ابتدا ، ما باید نحوه عملکرد چراغ راهنمایی عابر پیاده را مشخص کنیم. من سعی کردم نکات مهم را خلاصه کنم:

  • از دو چراغ راهنمایی استفاده می شود - یکی برای اتومبیل ها و دیگری برای عابران پیاده
  • چراغ راهنمایی را می توان با استفاده از یک دکمه روشن کرد
  • عابران پیاده می توانند با فشردن یک دکمه تقاضای عبور از خیابان را داشته باشند
  • چراغ راهنمای خاموش با چشمک زدن هر دو LED زرد نشان داده می شود
  • پس از روشن شدن ، چراغ راهنمایی در حالت ایمن 10 ثانیه منتظر می ماند
  • پس از حالت ایمن ، خودروها همیشه فاز سبز دارند تا زمانی که عابر پیاده درخواست خود را شروع کند
  • درخواست عابر پیاده برای عبور با روشن کردن LED زرد نشان داده شده است

علاوه بر این ، برخی از رویدادهای زمانی بسته به نحوه عملکرد چراغ راهنمایی وجود دارد.

مرحله 2: ساختن مدار

ساختن مدار
ساختن مدار

بیایید راه اندازی مدار را شروع کنیم. در مثال من ، همانطور که در تصویر پیش نمایش مشاهده می کنید ، من از Arduino Mega 2560 استفاده کرده ام ، اما هر Arduino دیگری با حداقل هشت GPIO باید خوب باشد. علاوه بر این ، من چند چراغ راهنمایی 5 ولت در آمازون خریدم. کافی است آردوینوی Traffic Light را جستجو کنید. در غیر این صورت ، می توانید به سادگی از شش LED مختلف استفاده کنید. علاوه بر این ، شما نیاز به دو دکمه فشاری و دو مقاومت 10k اهم دارید.

سه چراغ LED سمت چپ برای تردد خودروها و سه LED سمت راست برای عابران پیاده استفاده می شود که در آن رنگ زرد می تواند نشان دهنده درخواست باشد.

مرحله 3: ایجاد ماشین دولتی

ایجاد ماشین دولتی
ایجاد ماشین دولتی

بنابراین ، همانطور که می بینید دو حالت اصلی با اعضای مرکب وجود دارد - حالت روشن و خاموش. با استفاده از رویداد onOff ، که به دکمه ON/OFF متصل است ، می توانید بین هر دو حالت جابجا شوید. در حالت اولیه ، حالت خاموش ، هر دو LED زرد هر ثانیه شروع به چشمک زدن می کنند. پس از روشن شدن چراغ راهنمایی ، در Safestate روشن می شود. پس از 10 ثانیه رفتار معمولی چراغ های راهنمایی کنترل می شود. چراغ قرمز و زرد در حالت StreetPrepare روشن می شود و چراغ راهنمایی بعد از 2 ثانیه دیگر سبز می شود. از این پس ، دستگاه دولتی منتظر رویداد پیاده روی است که به دکمه دوم متصل می شود. پس از ارسال رویداد ، درخواست را با روشن کردن LED زرد در هر ثانیه در حالت PedWating نشان می دهد. 7 ثانیه بعد چراغ راهنمایی ابتدا به رنگ زرد و سپس قرمز تغییر می کند تا زمانی که عابران پیاده سیگنال حرکت در حالت پیاده روی را دریافت کنند. پس از این ، PedestrianRed فعال شده و چرخه تکرار می شود. فقط با خاموش کردن دوباره چراغ راهنمایی می توان این کار را قطع کرد.

مرحله 4: اجرای مثال

مرحله 5: کد C ++ ایجاد می شود

کد C ++ ایجاد شده یک سوئیچ کلاسیک برای اداره منطق ماشین حالت است. این فقط یک قطعه کد از ظاهر آن است:

void TrafficLightCtrl:: runCycle () {clearOutEvents ()؛ for (stateConfVectorPosition = 0؛ stateConfVectorPosition <maxOrthogonalStates؛ stateConfVectorPosition ++) {switch (stateConfVector [stateConfVectorPosition])) {case main_region_on_r1_StreetGreen: {main_region_on_r1_rere_rere_rere_rere_re1_Street_rreen_re1_Street_rre_green_re1_Street_rre_re1_Street_rre_re1_Street_rre_re1_Street_rre_re1_Street_rre_re1_Street_rre_re1_Street_rre_re1_StreetGreen_re1_StreetGreen_re1_StreetGreen: زنگ تفريح؛ } case main_region_on_r1_PedWaiting_r1_waitOn: {main_region_on_r1_PedWaiting_r1_waitOn_react (درست) ؛ زنگ تفريح؛ } پیش فرض: break؛ } clearInEvents ()؛ }

مرحله 6: مثال را دریافت کنید

کل مثال آماده کامپایل و اجرا است. همراه با YAKINDU Statechart Tools ، که برای استفاده غیر تجاری رایگان است. پس از بارگیری ، می توانید مثال را مستقیماً در ابزار وارد کنید:

فایل -> جدید -> مثال -> نمونه های YAKINDU Statechart -> بعدی -> چراغ راهنمایی (C ++) برای آردوینو

> در اینجا می توانید YAKINDU Statechart Tools << را بارگیری کنید

می توانید با یک دوره آزمایشی 30 روزه شروع کنید. پس از آن ، باید مجوز دریافت کنید ، که برای استفاده غیر تجاری رایگان است!

توصیه شده: