خروجی یک مولتی ویبراتور مونواستابل زمانی که ورودی تحریک می شود در مدت زمان مشخصی که از قبل تعریف شده است فعال می شود و سپس غیرفعال می شود.

در این پروژه، وقتی سویچی فشرده می شود؛ یک LED برای 5 ثانیه روشن خواهد شد.

 
Learning ARM
 

در این پروژه ابتدا باید نحوه اتصال یک سویچ یا کلید را به میکرو بدانیم. اگر میکروکنترلر پایه معینی را بررسی می کند، این پایه نباید روی هوا باشد یعنی همیشه باید یا به پالس متصل باشد و یا به زمین.

برای این کار ما باید سویچ را بین پایه میکرو و یکی از پایه های زمین یا ( VCC ) قرار دهید و یک مقاومت هم بین پایه میکرو و VCC یا ( زمین ) بگزاریم.

مقاومتی که قرار می هیم نباید مقدار کمی باشد زیرا جریان زیادی وارد پایه میکرو می شود و باعث می شود که آن پایه بسوزد.

در اینجا ما سویچ را بین پایه میکرو و VCC قرار می دهیم و از یک مقاومت 10 کیلو برای اتصال پایه میکرو به زمین استفاده می کنیم.

معمولا این روش اتصال رایج تر است زیرا وقتی سویچ فشرده شود مقدار پایه میکرو 5 ولت یا همان 1 منطقی می شود و از لحاظ برنامه نویسی یک سیگنال درست به حساب می آید و می تواند برنامه نویسی را کمی آسانتر کند.

حال نحوه اتصال LED  به میکرو را شرح می دهیم:

برای اتصال LED یه میکرو ابتدا پایه منفی LED را توسط یک مقاومت به زمین متصل می کنیم و پایه مثبت LED را به طور مستقیم به میکرو وصل می کنیم.

به دلیل اینکه پایه های میکرو جریان زیادی را در اختیار ما قرار نمی دهند ما حتما باید یک مقاومت با LED خود سری کنیم تا جریان مصرفی LED را پایین بیاوریم.

البته این نوع اتصال اتصال درست و اصولی نیست و حتما باید از ترانزیستور برای تقویت جریان استفاده کنیم ولی برای این چنین پروژه های آزمایشی که بیشتر جنبه آموزش برنامه نویسی میکرو را دارد زیاد مهم نیست.

حال به سراغ آموزش نوشتن برنامه می رویم:

همانطور که می دانید میکرو کنترلر ARM با زبان برنامه نویسی C کار می کند، پس زبان برنامه نویسی آن C است بنابراین برای افرادی که با میکروهای دیگر و یا برنامه نویسی های کامپیوتری که برپایه C بوده است و کار کرده اند آسانتر خواهد بود.

ابتدا باید کتابخانه میکرو مورد استفاده خود را در خط اول بنویسید که فرمت استفاده آن به صورت زیر است:

که به جای علامت سوال ها باید مدل میکرو کنترلر خود را بنویسید.

برنامه کامل:

 

حال به بررسی خط به خط برنامه می پردازیم:

خط 1 را که قبلا توضیح دادیم.

خط 2 : دستور DigitalIN برای تعریف یک پایه از میکرو به عنوان ورودی دیجیتال است. ما سویج را به پایه 20 میکرو متصل کرده ایم و نام button را برای آن انتخاب می کنیم. پس هر جا ما button را بنویسیم منظورمان همان پایه 20 میکرو است که سوچ به آن متصل شده است.

خط 3 : دستور DigitalOut برای تعریف یک پایه از میکرو به عنوان خروجی دیجیتال است. که ما نام myled را برای آن انتخاب کرده ایم. در این پروژه ما از LED خارجی برای نمایش استفاده نکرده ایم و از همان LED روی برد میکرو کنترلر ARM بهره برده ایم.

خط 4 : تعریف یک بدنه برای برنامه اصلی میکرو است.

خط 5 : از دستور While با مقدار 1 که  همیشه درست است استفاده کرده ایم. این کار باعث می شود که یک حلقه بینهایت تولید کند.

خط 6 : استفاده از دستور شرطی IF با مقدار button ، که زمانی که مقدار button به صورت منطقی 1 شود این شرط برقرار است و وارد این دستور می شود.

زمانی که وارد دستور می شود ابتدا LED را روشن می کند، به مدت 5 ثانیه صبر می کند، LED را خاموش می کند.