اطلاعیه

Collapse
No announcement yet.

کمک در باره موتور پله ای

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

    کمک در باره موتور پله ای

    سلام
    برنامه زیر کنترل موتور پله ای 1.8 که یک بار به صورت پله و بار دیگر به صورت نیم پله راه اندازی می شود که از کتاب علی کاهه نوشتم
    من چند تا سوال داشتم :
    در دستور for a= 1 to 50 منظرم از 50 چیه این عدد از کجا امده
    یا E=128 ........این عدد از کجا امده
    میشه اجمالا یکی کل این برنامه را توضیح بده
    ////////////////////
    ایا میشه این پروژه را طوری نوشت که یک بار به صورت چپ گرد و بار دیگر به صورت
    راست گرد بچرخد

    $regfile = "m32def.dat"
    $crystal = 8000000
    Config Portc = Output
    Dim A As Byte , B As Byte , E As Byte , F As Byte
    Do
    For A = 1 To 50
    E = 128
    For B = 1 To 4
    Rotate E , Left
    Portc = E
    Waitms 20
    Next B
    Next A
    Wait 1
    For A = 1 To 50
    F = 129
    E = 128
    For B = 1 To 4
    Rotate E , Left
    Portc = E
    Waitms 20
    Rotate F , Left
    If F = 24 Then F = 9
    Portc = F
    Waitms 20
    Next B
    Next A
    Loop
    End

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

    سلام.
    دوست عزیز من خیلی وقته بیسیک کار نکردم حدود سه سال میشه ولی یه چند تا چیز به ذهنم رسید گفتم بگم شاید کمک کنه اگه هم اشتباه بود دوستان دیگه اصلاح کنن:

    عدد 50 که فکر میکنم عدد خاصی نیست یه میزانی هست که به چپ و راست میچرخه همین میتونید عوضش کنید بکنید مثلا 70 طوری نمیشه فقط موتور بیشتر میچرخه.

    اون عدد 128 هم اگه در مبنای دو بنویسید میشه یه بایت که فقط بیت با ارزشش یک هست و اون بیت و اون رو میچرخونه. 10000000 در مبنای دو میشه.حالا این بیت رو به چپ و یا به راست می چرخونه.
    موفق باشید.
    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
    هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
    چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

    دیدگاه


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

      سلام
      این 128 یک عدد در مبنای 2 میشه
      10000000
      با دستور rotate بیت 1 رو میچرخونه
      50 تعداد باری که حلقه میچرخه . 50 بار چرخش بیت
      فکر کنم بشه right به جای left استفاده کرد

      روش بهتر استفاده از اعداد واقعی برای خروجی هر پورت هست

      نوفن پردازش هوشمند

      دیدگاه


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

        نوشته اصلی توسط پشه 007
        سلام
        این 128 یک عدد در مبنای 2 میشه
        10000000
        با دستور rotate بیت 1 رو میچرخونه
        50 تعداد باری که حلقه میچرخه . 50 بار چرخش بیت
        فکر کنم بشه right به جای left استفاده کرد

        روش بهتر استفاده از اعداد واقعی برای خروجی هر پورت هست

        ممنمون
        اگه دوستان لطف کنند و دقیق تر توضیح بدهند ممنون می شوم

        دیدگاه


          #5
          پاسخ : کمک در باره موتور پله ای

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

          شما وقتی موتور رو به وسیله بافر به پورت وصل می کنید ( معمولا ساده ترین نوع 4 سیمه ) می تونی این رو در نظر بگیری که به نسبت سیم های کدوم پایه ها باید به ترتیب دارای پالس بشه
          حالا خود اینکه پالس های با چه سرعتی تا چه حدی بیاند مسله است معمولا اگه حلقه ای تو ی برنامه وظیفه شیفت رو داشته باشه کل دور زدن این حلقه توی یه ثانیه بیشتر از 3 بار باشه مشکل پیش میاد

          حالا شما می تونی بگی استپ رو با 4 تا بیت پائینی یه پورت راه اندازی می کنم
          پس اعدادت از 1 شروع میشه تا 4
          حالا 1 تا 4 شمرده بشه میشه مثلا راست گرد
          و برعکس چپ گرد
          اگه اشتباه نکنم توی دستور for می تونی قسمت step اعداد منفی بدی تا عمل کاهش رو انجام بده وگرنه برعکس هم میشه عمل کرد

          وسط این دستورات می تونه دستور waitms رو قرار بدی و با چند بار آزمون و خطا به صورت عملی ( تاکید می کنم عملی ) موتور رو به راحتی راه اندازی بکنی


          موفق باشی

          دیدگاه


            #6
            پاسخ : کمک در باره موتور پله ای

            با این برنامه میتونید موتور رو به راست و چپ بچرخونید


            $regfile = "m32def.dat"
            $crystal = 8000000


            Config Portb = Output
            Config Portd = Input



            Main:
            If Pind.0 = 0 Then Gosub Right1
            If Pind.1 = 0 Then Gosub Left1


            Goto Main
            Right1:
            Portb = 9
            Waitms 5
            Portb = 0


            Portb = 3
            Waitms 5
            Portb = 0


            Portb = 6
            Waitms 5
            Portb = 0


            Portb = 12
            Waitms 5
            Portb = 0
            Return

            Left1:
            Portb = 12
            Waitms 5
            Portb = 0


            Portb = 6
            Waitms 5
            Portb = 0


            Portb = 3
            Waitms 5
            Portb = 0


            Portb = 9
            Waitms 5
            Portb = 0
            Return

            M0ccw:
            Portb = 48 ' turn on Q1
            Waitms 3 ' wait wa ms
            Portb = 0 ' turn off Q1


            Portb = 96 ' turn on Q2
            Waitms 3 ' wait wa ms
            Portb = 0


            Portb = 192 ' turn on Q3
            Waitms 3 ' wait wa ms
            Portb = 0 ' turn off Q3


            Portb = 144 ' turn on Q4
            Waitms 3 'wait wa ms
            Portb = 0 'turn off Q4
            Return

            M0cw:
            Portb = 144 ' turn on Q1
            Waitms 3 ' wait a ms
            Portb = 0 ' turn off Q1


            Portb = 192 ' turn on Q2
            Waitms 3 ' wait wa ms
            Portb = 0


            Portb = 96 ' turn on Q3
            Waitms 3 ' wait wa ms
            Portb = 0 ' turn off Q3


            Portb = 48 ' turn on Q4
            Waitms 3 'wait wa ms
            Portb = 0
            Return

            M1ccw:
            Portb = 3 ' turn on Q1
            Waitms 3 ' wait wa ms
            Portb = 0 ' turn off Q1


            Portb = 6 ' turn on Q2
            Waitms 3 ' wait wa ms
            Portb = 0


            Portb = 12 ' turn on Q3
            Waitms 3 ' wait wa ms
            Portb = 0 ' turn off Q3


            Portb = 9 ' turn on Q4
            Waitms 3 'wait wa ms
            Portb = 0 'turn off Q4
            Return

            M1cw:
            Portb = 9 ' turn on Q1
            Waitms 3 ' wait a ms
            Portb = 0 ' turn off Q1


            Portb = 12 ' turn on Q2
            Waitms 3 ' wait wa ms
            Portb = 0


            Portb = 6 ' turn on Q3
            Waitms 3 ' wait wa ms
            Portb = 0 ' turn off Q3


            Portb = 3 ' turn on Q4
            Waitms 3 'wait wa ms
            Portb = 0
            Return

            دیدگاه


              #7
              پاسخ : کمک در باره موتور پله ای

              سلام.
              دوست عزیز اگه فرصت دارید برنامه رو به همراه شبیه ساز پروتئوسش برای سایت ارسال کنید تا توی آرشیو پروژه های سایت قرار بگیره.
              موفق باشید.
              شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
              هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
              چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

              دیدگاه

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