اطلاعیه

Collapse
No announcement yet.

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

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

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

    با سلام خدمت دوستان عزیز
    من با کمک ارتباط سریال و برنامه ویژوال بیسیک یه led رو روشن کردم اما الان با همون دستورات می خواستم یه دور موتور را کنترل کنم جواب نمیده؟آیا مقدار baud تاثیر داشته؟اصلا تاثیر مقدار این چیه؟ :question:
    فوق کل ذی علم علیم
    مهندسین هیچ گاه به بن بست نمیرسند یا راهی پیدا می کنند یا راهی میسازند

    کلید تشکر انگیزه دادن بیشتر به دوستان برای همدلی بیشتر است

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

    با درود لطفا مشکلتو دقیق مطرح کن تا بتونیم راحت تر کمکت کنیم
    در کل باید یه pwm بسازی که عددشو از کامپیوتر بگیره و نسبت به اون عدده دور موتور کم یا زیاد میشه
    برای ارتباط سریال باید دو طرف تنظیم بشن مثلا با استاندارد
    9600
    n
    8
    1

    دیدگاه


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

      سلام دادا.
      این که خیلی ساده هست. کافیه با VB یه برنامه بنویسی که یا عدد بین 0 تا 255 بسازه. برای این کار از یه trackbar استفاده کن.
      توی برنامه میکرو هم با استفاده از وقفه دریافت سریال مقدار رو بخون و توی یه متغیر بریز. در نهایت مقدار این متغیر رو برابر رجیستر OCR تایمرت بذار.
      تشکر لازم نیست!

      دیدگاه


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

        با تشکر از اساتید عزیز
        بنده می خوام pwm رو با میکرو بگیرم
        در واقع از کامپیوتر فقط عدد بگیرم
        ظاهرا وقتی یه عدد می فرستم خوب جواب میده اما
        وقتی می خواد منتظر باشه ببنیم کدوم عدد فرستاده میشه نمی تونه
        خودم دقیقا نمی تونم بفهمم چرا این بار جواب نمیده :sad: :sad: :sad:
        فوق کل ذی علم علیم
        مهندسین هیچ گاه به بن بست نمیرسند یا راهی پیدا می کنند یا راهی میسازند

        کلید تشکر انگیزه دادن بیشتر به دوستان برای همدلی بیشتر است

        دیدگاه


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

          نوشته اصلی توسط khandani
          ظاهرا وقتی یه عدد می فرستم خوب جواب میده اما
          وقتی می خواد منتظر باشه ببنیم کدوم عدد فرستاده میشه نمی تونه
          خودم دقیقا نمی تونم بفهمم چرا این بار جواب نمیده :sad: :sad: :sad:
          از وقفه دریافت سریال استفاده کن.خیلی راحته دادا. با C میتونم برات بنویسم. (اگه خواستی)
          تشکر لازم نیست!

          دیدگاه


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

            ایمان جان تشکر کردم
            این برنامه میکرو شه:با بیسیک (بسکام)
            $regfile = "m8def.dat"
            $baud = 9600
            $crystal = 4000000
            Config Portb = Input
            Config Portc = Output
            Config Serialout = Buffered , Size = 50
            Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Prescale = 8
            Enable Interrupts
            Enable Urxc
            On Urxc Motor
            Dim N As Byte , B As Byte
            Dim A As Word
            A = 200
            B = 0
            Pwm1a = A
            Do
            Print B
            Loop
            End 'end program
            Motor:
            N = Udr
            If N = 15 Then Gosub P1
            If N = 16 Then Gosub P2
            If N = 17 Then Gosub P3
            If N = 18 Then Gosub P4
            If N = 20 Then Gosub R
            If N = 21 Then Gosub L
            If N = 22 Then Gosub Down
            If N = 23 Then Gosub Up
            If N = 24 Then Gosub Stoping
            Return 'end program
            R:
            Portc.2 = 0
            Portc.3 = 0
            Waitms 50
            Portc.2 = 1
            Portc.3 = 0
            Return
            L:
            Portc.2 = 0
            Portc.3 = 0
            Waitms 50
            Portc.2 = 0
            Portc.3 = 1
            Return
            Stoping:
            Portc.2 = 1
            Portc.3 = 1
            Waitms 50
            Portc.2 = 0
            Portc.3 = 0
            Return
            Up:
            A = A + 40
            If A > 1024 Then
            A = 1024
            End If
            If A > 800 Then
            Print 7
            End If
            If A < 200 Then
            Print 5
            End If
            If A > 200 Then
            If A < 800 Then
            Print 6
            End If
            End If
            Pwm1a = A
            Return
            Down:
            A = A - 40
            If A < 0 Then A = 0
            If A > 1024 Then
            A = 1024
            End If
            If A > 800 Then
            Print 7
            End If
            If A < 200 Then
            Print 5
            End If
            If A > 200 Then
            If A < 800 Then
            Print 6
            End If
            End If
            Pwm1a = A
            Return

            اینم برنامه ویژوال بیسیکش:
            Private Sub Form_Load()
            MSComm1.Settings = "9600,n,8,1"
            MSComm1.CommPort = 1
            MSComm1.RThreshold = 1
            MSComm1.PortOpen = True
            Text5.Text = 15
            Text6.Text = 16
            Text7.Text = 17
            Text8.Text = 18
            End Sub
            ــــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــــــــــــــــــ
            Private Sub Command6_Click()
            Text3.Text = " حرکت به چپ "
            MSComm1.Output = Chr(Text10.Text)
            End Sub

            Private Sub Command7_Click()
            MSComm1.Output = Chr(Text11.Text)
            End Sub
            Private Sub Command8_Click()
            MSComm1.Output = Chr(Text12.Text)
            End Sub

            Private Sub Command9_Click()
            Unload Me
            End Sub
            ــــــــــــــــــــــــــــــــــــــــــــــــــ ــــــــ
            Private Sub Form_Unload(Cancel As Integer)
            MSComm1.PortOpen = False
            End Sub
            البته نمی دونستم چطور میشد کد هاشو نوشت که جا نگیره زیاد
            بی زحمت نگاه کنین اگه اشکالی نداشت ممکنه اشکال از پروگرام شدن یا نشدن میکرو باشه یا چیز دیگه
            بسیار ممنون
            ایشالا ستاره هاتون زیاد بشه بشین کاربر کامل!!!!!!!
            فوق کل ذی علم علیم
            مهندسین هیچ گاه به بن بست نمیرسند یا راهی پیدا می کنند یا راهی میسازند

            کلید تشکر انگیزه دادن بیشتر به دوستان برای همدلی بیشتر است

            دیدگاه


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

              سلام دادا.
              من بسکام کار نیستم.
              بهتره دوستانی که بیسک کار می کنن جواب بدن.
              می تونی از آقای "حمیدرضا رضائی" یا "علی علی پور ریکنده" یا بقیه دوستان (حضور ذهن ندارم آلان) کمک بگیری.
              تشکر لازم نیست!

              دیدگاه

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