اطلاعیه

Collapse
No announcement yet.

تمرین های میکروکنترلر

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تمرین های میکروکنترلر

    بچه ها سلام ، دارم میکروکنترلر یاد میگیرم ، موقع تمرین ها به یه سری مشکل برخورد میکنم میخاستم تمرین هایی که مشکل دارم رو در میون بزارم تا دوستانی که تجربه دارن کمک کنن ، زبان برنامه هم بیسیک هست @
    تمریــــــــــــن 1: برنامه ای بنویسید که با زدن یک کلید و برداشتن دست از روی آن مدار روشن شود ؟
    در خصوص این سوال میخاستم بپرسم به نظرتون با پیکربندی پورتها و دستور شرطی میشه این کار رو کرد یا اینکه دستور خاصی داره؟
    تمرِِیِِِـــــــــــن2: یک منبع آب داریم که 3 سطح در آن وجود دارد از زیر به بالا سطح A - سطح B - سطح C
    که اگر آب به سطح A رسید ، هیچ کدام از موتورها روشن نشود ، آب به سطح B رسید موتور شماره 1 روشن شود ، اگر آب به C رسید هم موتور شماره 1 و موتور شماره 2 روشن شود .
    هر کدام از سطرها را به عنوان متغیر انتخاب کنید؟
    من این برنامه رو نوشتم
    کد:
    $regfile = "m16def.dat"
    $crystal = 1000000
    
    
    
    Config Portd = Output
    Config Portb = Input
    
    Dim A As Byte
    
    A = Portb
    
    Do
    If A = 0 Then
    
    Portd = 0
    Elseif A = 4 Then
    Portd = &H0
    
    Elseif A = 6 Then
    Portd = 1
    
    Elseif A = 7 Then
    Portd = 3
    
    
    
    End If
    
    Loop
    
    End

    ولی یه مشکلی داره موقعی که آب داره یواش یواش پر میشود مشکلی ندارد ، یعنی موتورها با توجه به شرط روشن میشود ، اما به محفظ خالی شدن اگر یک دهم میلیمتر از C پایین تر بیاید موتور دومی خاموش میشود ، و با یک موتور با توجه به شرط اولیه ای که نوشته بودیم کار میکند ، اما نیاید اینطور باشد باید موتور دوم در هنگام خاموش شدن تا سطح B روشن باشد. و برای سطح B به A هم همینطور موقع خالی شدن آب باید تا رسیدن به A یک موتور روشن باشد نه اینکه وقتی از B رد شد سریع موتور شماره یک هم خاموش شود ! دوستان کسی نظرخاصی در این باره داره؟
    [img width=65 height=100]http://s1.picofile.com/file/7243484622/untitled.bmp[/img]

    #2
    پاسخ : تمرین های میکروکنترلر

    سلام

    1.کلید در حالت عادی با مقاومت پول اپ 0 شده اگه 1 بشه باید بیفته توی یه حلقه ازش خارج هم نشه تا زمانی که 0 نشده توی این حلقه یه شرط دیگه هم باشه اکه اگه 0 شد از حلقه خارج بشه :biggrin:

    2.تا اون جایی که فهمیدم مثلا اگه روی C باشه از C که پایین تر امد یه تایمر شروع به شماردن کنه بعد سپری شدن حتما از C بیشتر اب پایین میاد بعد بره سراغ B اگه هم اب از C پایین تر نیومده بود دوباره تایمر شروع به شماردن کنه

    البته حتما باید در مورد 1و 2 راه های دیگه ای هم وجود داشته باشه :icon_razz:

    دیدگاه


      #3
      پاسخ : تمرین های میکروکنترلر

      نوشته اصلی توسط erfan m
      سلام

      1.کلید در حالت عادی با مقاومت پول اپ 0 شده اگه 1 بشه باید بیفته توی یه حلقه ازش خارج هم نشه تا زمانی که 0 نشده توی این حلقه یه شرط دیگه هم باشه اکه اگه 0 شد از حلقه خارج بشه :biggrin:

      2.تا اون جایی که فهمیدم مثلا اگه روی C باشه از C که پایین تر امد یه تایمر شروع به شماردن کنه بعد سپری شدن حتما از C بیشتر اب پایین میاد بعد بره سراغ B اگه هم اب از C پایین تر نیومده بود دوباره تایمر شروع به شماردن کنه

      البته حتما باید در مورد 1و 2 راه های دیگه ای هم وجود داشته باشه :icon_razz:



      مشکل اینه که از تایمر نمیشه استفاده کرد!!!!
      [img width=65 height=100]http://s1.picofile.com/file/7243484622/untitled.bmp[/img]

      دیدگاه


        #4
        پاسخ : تمرین های میکروکنترلر

        2.میشه کاری کرد وقتی که رسید به C یه علامت بزاره (مثلا یه متغیر رو 1 کنه ) بعد تا وقتی که این متغیر 1 هست دوتا موتور روشن باشه وقتی که B رسید متغیر 0 کنه و یه موتور روشن بشه B تا A همینطوری .

        فقط شاید یکم نوشتنش سخت بشه :mrgreen:

        دیدگاه

        لطفا صبر کنید...
        X