اطلاعیه

Collapse
No announcement yet.

کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

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

    کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

    سلام دوستان
    بک گیرنده و فرستنده باند 433 مگاهرتز طراحی نمودم با AVR جهت کنترل چند موتور دی سی PWM
    عالی جواب داد
    هرکس در این باب سوئال داره جواب بدم :nice:

    #2
    پاسخ : کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

    خودتون طراحی کردید؟ عالیه
    میشه نقشه رو بذارید برای استفاده دوستان؟
    راستی بردش چقدره؟

    دیدگاه


      #3
      پاسخ : کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

      نوشته اصلی توسط سایمون
      خودتون طراحی کردید؟ عالیه
      میشه نقشه رو بذارید برای استفاده دوستان؟
      راستی بردش چقدره؟
      فقط نقشه نیست یک پروژه است باید فایل rar بشه و ایمیل کنم دوتا برنامه avr داره در پاسخ ها توضیح برنامشو گفتم

      دیدگاه


        #4
        پاسخ : کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

        سلام دوست عزیز من چند وقته که میخوام همچین ریموتی رو درست کنم ولی کلی مشکل دارم لطفا به این صحفه سر بزنید واگه میتونید کمکم کنید راستی این رو هم بگم که چندتا برنامه نوشت ولی کارنکرد راستی اگه میشه برنامه هاتون رو بزارید
        اینم پیج :NO: :NO:
        http://www.eca.ir/forum2/index.php?topic=109163.0
        من تمام سوالام توی این صحفه است لطفا جواب بدید oo: oo: oo:

        دیدگاه


          #5
          پاسخ : کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

          در پاسخ ها توضیح برنامشو گفتم
          کدوم پاسخ ها؟!!
          خب اگر ساختید و جواب داده میتونید همینجا بذارید . بردشم نگفتید چقدره

          دیدگاه


            #6
            پاسخ : کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

            سلام
            اگه میشه برنامه رو بذارید . خیلی به کار میاد
            ما زنده به آنیم که آرام نگیـریم
            موجـیم که آسودگی ما عدم ماست...

            دیدگاه


              #7
              پاسخ : کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

              در فرستنده از adc خاندن 8 بیت از چهار کانال در نتیجه 4 بایت دیتا داریم

              فرستنده
              //===============================================
              void send(unsigned char a,unsigned char j)
              {
              // ابتدا کارکتر "#"ارسال شود
              while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR='#';
              // ارسال شود جهت تعیین آدرس "a" متغیر از کارکتر"A" تا"Z"
              while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR=a;
              // متغیر "j" را درمبنای دهدهی تبدیل شود
              a=j%10;j=j/10;
              while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR=a+'0';
              a=j%10;
              while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR=a+'0';
              a=j/10;
              while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR=a+'0';
              // در انتها کارکتر "!" ارسالشود
              while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR='!';
              }
              //===============================================

              گیرنده
              خوب در گیرنده باید هر زمانذ کارکتر "#" بیت دریافت فعال شود
              //================================================== ======
              interrupt [USART_RXC] void usart_rx_isr(void)
              {
              char status,data;
              status=UCSRA;
              data=UDR;
              if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
              {
              if(data=='[&#039
              {
              recive_conter=5;
              recive_open=1;
              recive_cmplt=0;
              return;
              }
              if(recive_open==1)
              {
              recive_cmplt=0;
              if(data=='!&#039
              {
              recive_open=0;
              if(recive_conter==1)
              {
              if(recive_bufer[5]>='A&#039
              {
              if(recive_bufer[5]<='Z&#039
              {
              if(recive_bufer[4]>='0&#039
              {
              if(recive_bufer[4]<='9&#039
              {
              if(recive_bufer[3]>='0&#039
              {
              if(recive_bufer[3]<='9&#039
              {
              if(recive_bufer[2]>='0&#039
              {
              if(recive_bufer[2]<='2&#039
              {
              recive_cmplt=1;
              return;
              }
              }
              }
              }
              }
              }
              }
              }
              }
              return;
              }
              recive_bufer[recive_conter]=data;
              recive_conter--;
              if(recive_conter<=0)
              {
              recive_conter=0;
              recive_open=0;
              }
              return;
              }
              }
              }
              //===============================================

              دیدگاه


                #8
                پاسخ : کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

                برد 50 متر
                در فرستنده از adc خاندن 8 بیت از چهار کانال در نتیجه 4 بایت دیتا داریم

                فرستنده
                //===============================================
                void send(unsigned char a,unsigned char j)
                {
                // ابتدا کارکتر "#"ارسال شود
                while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR='#';
                // ارسال شود جهت تعیین آدرس "a" متغیر از کارکتر"A" تا"Z"
                while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR=a;
                // متغیر "j" را درمبنای دهدهی تبدیل شود
                a=j%10;j=j/10;
                while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR=a+'0';
                a=j%10;
                while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR=a+'0';
                a=j/10;
                while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR=a+'0';
                // در انتها کارکتر "!" ارسالشود
                while ((UCSRA & DATA_REGISTER_EMPTY)==0);UDR='!';
                }
                //===============================================

                گیرنده
                خوب در گیرنده باید هر زمانذ کارکتر "#" بیت دریافت فعال شود
                //================================================== ======
                interrupt [USART_RXC] void usart_rx_isr(void)
                {
                char status,data;
                status=UCSRA;
                data=UDR;
                if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                {
                if(data=='[&#039
                {
                recive_conter=5;
                recive_open=1;
                recive_cmplt=0;
                return;
                }
                if(recive_open==1)
                {
                recive_cmplt=0;
                if(data=='!&#039
                {
                recive_open=0;
                if(recive_conter==1)
                {
                if(recive_bufer[5]>='A&#039
                {
                if(recive_bufer[5]<='Z&#039
                {
                if(recive_bufer[4]>='0&#039
                {
                if(recive_bufer[4]<='9&#039
                {
                if(recive_bufer[3]>='0&#039
                {
                if(recive_bufer[3]<='9&#039
                {
                if(recive_bufer[2]>='0&#039
                {
                if(recive_bufer[2]<='2&#039
                {
                recive_cmplt=1;
                return;
                }
                }
                }
                }
                }
                }
                }
                }
                }
                return;
                }
                recive_bufer[recive_conter]=data;
                recive_conter--;
                if(recive_conter<=0)
                {
                recive_conter=0;
                recive_open=0;
                }
                return;
                }
                }
                }
                //===============================================

                دیدگاه


                  #9
                  پاسخ : کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

                  دوستان ببخشید نمی دانم چرا متن برنامه بهم ریخته
                  نوشته اصلی توسط سایمون
                  کدوم پاسخ ها؟!!
                  خب اگر ساختید و جواب داده میتونید همینجا بذارید . بردشم نگفتید چقدره
                  برد فرستنده 10 میلوات (50 متر) است اگر تقویت شود تا 7 وات پرتو دارد (تا 20 کلومتر در محیط انتشار خوب)
                  تقویت کننده ماژول "RA07M3340M" نکات ریزی در استفاده از ماژول وجود دارد
                  1 باید آنتن طول 17.6 سانت باشد
                  2جعبه ماژول باید فلزی و تاجای ممکن کوچک باشد
                  3 تغذیه ماژول باید 12ولت دقیق باشد
                  4 مازول فرستنده از "TWS-CS-2" با حد اقل فاصله با "RA07M3340M" باشد
                  5 گیرنده بایداز ماژول "RWS-530" باشد

                  دیدگاه


                    #10
                    پاسخ : کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

                    ممنون دوست من
                    اگر بتونی چن تا عکس هم از کارت بذاری بد نیست
                    برای کد ها هم از این علامت # کنار نقل قول استفاده کن

                    دیدگاه


                      #11
                      پاسخ : کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

                      سلام البته در جریان زیاد با مشکل مواجه شدم :angry: باید تحقیق کنم تا بتوانم مشکل را حل کنم :job:

                      دیدگاه


                        #12
                        پاسخ : کنترل از راه دور چند موتور دی سی ب صورت PWM با ترمز

                        در جریان و ولتاژ زیاد این مدار به خوبی عمل می کند اما خیلی گران تمام می شه
                        TLP250 اپتی کوپلر خوبیه اما باید یک تغذیه DC 2 DC برای سویچ های بالا چون از دیود نمیشه استفاده کرد

                        دیدگاه

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