طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
ورودی این فرکانس متر قادر است با ولتاژهای 12 تا 500 ولت AC کار کند. ماکزیمم فرکانس اندازه گیری 20KHz می باشد. همچنین با تعیین نرخ نمونه برداری می توانید فرکانس را تا دو رقم اعشار اندازه گیری نمائید.این پروژه قابلیت تشخیص نشتی گاز و کمی دود و افزایش دما را دارد. به این صورت که اگر نشتی رخ دهد با ارسال یک پیامک SMS برای شماره تعریف شده کاربر را مطلع می نماید. همچنین یک رله نیز فعال می شود که می تواند یه آژیر خطر را صدا درآورد.با استفاده از ماژول HM-R و HM-T ابتدا به کمک سنسور LM35 دما اندازه گیری شده و به ماژول HM-T ارسال می شود، در سمت گیرنده سیگنال توسط HM-R دریافت شده و بر اساس مقدار دما دور موتور به صورت PWM کنترل می شود. همچنین قابلیت تعریف رنج دمای کاری برای موتور نیز امکان پذیر می باشد.اندازه گیری ظرفیت خازن از 1nf تا 2000uf - دارای دو حالت علمی اندازه گیری - دارای کالیبره سازی خودکار - نمایش اتوماتیک رنج خازن بر روی نمایشگردر این پروژه با استفاده از یک ساعت نجومی و محاسبات ریاضی، دو عدد سروو موتور یکی در جهت XY و دیگری در جهت Z پنل خورشیدی را به صورت اتوماتیک در موقیعتی قرار می دهید که بیشترین تابش خورشید را دریافت کند.
پروژه فرکانس متر صنعتی 500 ولت 20KHz با avr

MCP-1

پروژه فرکانس متر صنعتی 500 ولت 20KHz با avr
پروژه نشت یاب گاز و کنترل با SMS

MCP-35

پروژه نشت یاب گاز و کنترل با SMS
پروژه کنترل بی سیم دور موتور برحسب دما با avr

MCP-8

پروژه کنترل بی سیم دور موتور برحسب دما با avr
پروژه خازن سنج دو حالته از 1nf تا 2000uf

MCP-22

پروژه خازن سنج دو حالته از 1nf تا 2000uf
پروژه کنترلر پنل خورشیدی با استفاده از ساعت نجومی

MCP-25

پروژه کنترلر پنل خورشیدی با استفاده از ساعت نجومی

آموزش ميكرو كنترلر AVR به زبان بيسيك (قسمت سوم)

در اين قسمت آموزشي به تشريح دستور CASE و زير برنامه ها و نحوي فراخواني آنها مي پردازيم.
دستور العمل CASE :
به كمك اين دستور شما مي تواند محتواي يك متغيير را نسبت به يك بازه عددي انتخاب كنيد و سپس براي اين بازه ها زير برنامه بنويسيد تا ميكرو اين برنامه ها را نسبت به محدوده بازه و متغيير انجام بده.
ساده تر ميگيم: به عنوان مثال شما يك برنامه دماسنج مي خواهيد بنويسيد. بعد از اندازه گيري دما شما مي خواهيد به ميكرو بگيد كه اگر دما از 0 تا 20 درجه بود فلان كار رو انجام بده و اگر دما از 21 تا 30 بود فلان كار رو انجام بده و اگر دما از 31 تا 40 بود فلان كار رو انجام بده. به همين سادگي شما مي توانيد به ميكرو فرمان بدهيد كه اگر دما در اين بازه بود اين كار رو انجام بده.
همين توضيحات رو به كمك اين دستور به صورت برنامه مي نويسيم:
Regfile="m8def.dat"
Crystal=8000000
Dim t as byte

از بخش سفارش طراحی هم اکنون درخواست خود را ثبت کنید
حل و تشریح کلیه تمرینات درس میکروکنترلر AVR
طراحی و ساخت مدارات دلخواه شما با میکروکنترلر AVR


.
برنامه اندازه گيري دما و ريختن عدد دما در متغيير T .  
.
Select case t
Case 0 to 20 :
                  …
Case 21 to 30:
                 …
Case 31 to 40:
                 …
End select
قالب اين دستور به اين صورت مي باشد   متغيير    select   case
     شما مي توانيد تعداد زيادي CASE تعريف كنيد بستگي به برنامه تون داره. و در نهايت با دستور END SELECT به دستور SELCET CASE خاتمه مي دهيد.
همچين شما مي توانيد CASE را به اين صورت هم انتخاب كنيد:
مثلا اگر دما بزرگتر از 35 درجه بود فلان كار رو انجام بده:
Select case t
Case is >35
End select
و يا كوچكتر باشد:
Select case t
Case is <35
End select
و يا CASE ما يه عدد خاص باشد مثلا 20 درجه:
Select case t
Case 20:
End select
خوب انواع حالت هاي مختلف اين دستور را همرا با يك مثلا گفتيم. اميدورام كه متوجه شده باشيد.
معرفي زير برنامه ها :
براي اجراي يك زير برنامه ابيتدا بايد در اوايل برنامه نام ريز برنامه را تعريف كنيم و بعد هم بقيه كار ها مانند فراخواني در 8051 مي باشد.
قالب آن به اين صورت مي باشد:
نام متغيير      Declare sub
.
.
.
: نام متغيير
دستورات زير برنامه
End sub
با يك مثال اين دستور را بيشتر توضيح مي دهيم:
Regfil = "m8def.dat"
Crystal = 8000000
Config portb= output
Declare sub wait_d
Dim s as byte
Do
Portb= 20
Call wait_d
Portb= 50
Call wait_d
Portb= 55
Call wait_d
Loop
End
 
wait_d:
for s =1 to 10
waitms 1000
next s
end sub
خوب ما در اين برنامه مي خواستيم سه عدد 20 و 50 و 55 را با فواصل زماني 10 ثانيه به خروجي پورت B بفرستيم. براي اينكه طول برنامه زياد نشود ما برنامه تاخير 10 ثانيه اي رو به صورت يك زير برنامه نوشتيم و هز ر جا كه لازم شود به كمك دستور Call آن را فراخواني مي كنيم.
ابتدا در اول برنامه ما نام زير برنامه يعني wait_d  را تعريف كرديم و در آخر برنامه اين اسم رو نوشتيم و بعد اون هم : گذاشتيم كه در اينجا شروع زير برنامه مي باشد و بعد هم برنامه رو نوشتيم و در نهايت دستور END SUB رو مي نويسيم.
حالا هر جا كه لازم باشه از تاخير 10 ثانيه اي استفاده كنيم كافي بنويسيم Call wait_d
 
دستور Gosub:
عملكرد اين دستور هم شبيه به دستور بالايي مي باشد با اين تفاوت كه لازم نيست نام زير برنامه رو تعريف كنيم. و همچنين آخر زير برنامه ديگه با END SUB تمام نميشه بلكه بايد RETURN بنويسيم.
مثال بالا رو با اين دستور مي نويسم:
Regfil = "m8def.dat"
Crystal = 8000000
Config portb= output
Dim s as byte
Do
Portb= 20
gosub wait_d
Portb= 50
gosub wait_d
Portb= 55
gosub wait_d
Loop
End
 
wait_d:
for s =1 to 10
waitms 1000
next s
Return
 
در قسمت بعدي به آموزش پيكره بندي و امكانات AVR مي پردازيم.

  منبع: www.picpars.com

  لطفا مقالات، آموزش‌ها و پروژه های خود را به آدرس ایمیل ارتباطی ایمیل نمائید تا آن را با نام خودتان در سایت منتشر کنیم.

به این مطلب امتیاز دهید

برچسب ها:
تاریخ ارسال چهارشنبه، 21 بهمن ماه، 1388    نویسندهنویسنده: مدیریت    نظرات 2 نظر    بازدید بازدید [ 10662 ]   پرینتنسخه چاپی
فایل پی دی اف فایل پی دی اف   ارسال به دوستان ارسال به دوستان