اطلاعیه

Collapse
No announcement yet.

کمک فوری ارتباط سریال

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

    کمک فوری ارتباط سریال

    من می خام

    هروقت به A2D ( که به میکرو وصله )
    یه ولتاژ وصل کردم شکل موجش را تو کامپیوتر که به صورت سریال فرستاده میشه نمایش بدم

    0)باید چیکار کنم؟

    1)از Hyper terminal
    می تونم استفاده کنم؟

    2)وقفه ای که باعث میشه کامپیوتر در صورت وصل شدن ولتاژ نشونش بده را چه جوری ایجاد کنم؟

    3)خروجی میکرو هم d2A میخواد؟

    خواهشم اینه که دوستان اگر بلدین بگید :angry:

    #2
    پاسخ : ارتباط سریال

    این کار به دو بخش تقسیم میشه:
    اول قسمت کامپیوتری که می تونه یه برنامه با نرم افزار VB , Delphi , C و یا هر نرم افزاری که به نحوی قابلیت ارتباط با پورت رو داره نوشته بشه. ساده ترین راه استفاده از پورت سریاله.
    دوم قسمت سخت افزاری که شامل یه برنامه میکرو کنترلری و یه درایور موتوره.
    برای شروع فکر می کنم بهتر باشه اول از همه بتونی یه برنامه با میکرو بنویسی که دور موتور رو کنترل کنی. در مرحله دوم روی برنامه ای کار کن که بشه با PC ارتباط برقرار کنه( اگه هدفت پورت سریال باشه و میکروکنترلرت AVR و نرم افزار بیسکام، می تونی از Emulator اون استفاده کنی ، در غیر این صورت میشه از Hyper Terminal خود ویندوز استفاده کرد.)
    در نهایت باید این دو تا برنامه رو تلفیق کنی و بری سراغ برنامهن نویسی تحت ویندوز

    دیدگاه


      #3
      پاسخ : ارتباط سریال

      .

      دیدگاه


        #4
        پاسخ : ارتباط سریال

        سلام

        در مورد ارتباط با پورت سریال توسط ویژوال بیسیک تو وبسایت یه سرچی بزنید فکر کنم بچه ها مطلب نوشته بودن

        اگه پیدا نکردید من کمکتون میکنم تا با ویژوال بیسیک بتونید با پورت سریال کار کنید

        البته اول خودتون شروع کنید و سعی کنید برنامه رو بنویسید و اگه در حین کار بهمشکلی برخوردید بپرسید حتما کمک میکنم
        ِِDie for Life, Not Live to Die
        Freedom Fighter
        " ناخود گاه، هريك از ما ، از ناميرائي خود يقين دارد " . فروید

        دیدگاه


          #5
          پاسخ : ارتباط سریال

          اگه بخوام به جای بیسیک با متلب بنویسم چه جوریه؟
          چه دستوراتی نیازه؟
          و یه سوال دیگه : چه طوری RXD tXD میکرو را فعال کنم؟

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

          دیدگاه


            #6
            پاسخ : ارتباط سریال

            نوشته اصلی توسط masoome
            می خوام از طریق کامپیوتر دور یک موتور را با pwm کنترل کنم ولی نمی دونم توی چه محیطی از کامپیوتر باید شروع کنم و اطلاعات را وارد کنم

            و چه طوری دور موتور را با ارتباط سریال بین میکرو و کامپیوتر تنطیم کنم.


            در واقع میشه بفرمایید باید از کجا شروع کنم؟
            با سلام
            دوست عزیز در سمت کامپیوتر الزاماً نیاز به برنامهآ‌نویسی ندارید. شما میآ‌توانید از برنامهآ‌های ترمینال استفاده کنید به عنوان مثال در ویندوز HyperTerminal وجود داره. این برنامهآ‌ها در واقع خروجی پورت سریال رو روی صفحه نمایش نشان میآ‌دهند و ورودی کیبورد شما رو به پورت سریال متصل میآ‌کنند.

            -- یه ترمینال خیلی خفن متنآ‌باز برای ویندوز هست به نام RealTerm که خیلی کیفیت بالایی داره.
            هنوز این برنامه برای لینوکس port نشده :cry2:
            من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

            دیدگاه


              #7
              پاسخ : ارتباط سریال

              یه ترمینال خیلی خفن متنآ‌باز برای ویندوز هست به نام RealTerm که خیلی کیفیت بالایی داره.
              هنوز این برنامه برای لینوکس port نشده
              من تو لینوکس از cutecom استفاده میکنم
              چیز خوب و کار راه اندازیه :smile:

              البته به پای RealTerm نمیرسه :sad:
              چگونه هوشمندانه بپرسیم

              دیدگاه


                #8
                پاسخ : ارتباط سریال

                من می خام با رابط A2D

                هروقت به A2D یه ولتاژ وصل کردم شکل موجش را تو کامپیوتر نمایش بدم
                باید چیکار کنم؟

                از Hyper terminal
                می تونم استفاده کنم؟

                وقفه ای که باعث میشه کامپیوتر در صورت وصل شدن ولتاژ به میکرو اونو نشونش بده را چه جوری ایجاد کنم؟

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

                دیدگاه


                  #9
                  پاسخ : کمک فوری ارتباط سریال

                  نوشته اصلی توسط masoome
                  وقفه ای که باعث میشه کامپیوتر در صورت وصل شدن ولتاژ به میکرو اونو نشونش بده را چه جوری ایجاد کنم؟
                  خواهشم اینه که دوستان اگر بلدین بگید
                  با سلام
                  اینتراپتآ‌ها در سیستمآ‌عامل توسط device-driver مدیریت میآ‌شه شما به صورت معمول به آن دسترسی ندارید مگر اینکه بیایید از ابتدا device-driver مرتبط با پورت سریال رو بنویسید! در واقع باید پورت رو به صورت polling چک کنید.

                  مشخص است شما توضیح من رو درباره ترمینال (به عنوان مثال hyper-terminal) دقیق نخواندهآ‌اید! ترمینال خروجی پورت سریال را نمایش میآ‌دهد. اگر نمیآ‌خواهید نمودار رسم کنید، میآ‌توانید مقادیر خوانده شده در A/D رو تبدیل به ASCII کنید و آن را مستقیم به پورت سریال بفرستید و در ترمینال مقادیر رو نگاه کنید. ولی اگر نمودار یا چیزهایی به این شکل میآ‌خواهید باید برنامه نویسی کنید.
                  من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

                  دیدگاه


                    #10
                    پاسخ : کمک فوری ارتباط سریال

                    سپاس

                    من میخام در واقع یک اسیلوسکوپ ساده درست کنم.

                    اگه بخام شکل موج سینوسی ای که به A/d دادم تو کامپیوتر ببینم ، باید برنامه شو تو میکرو بنویسم. چی جوری؟ چه دستوراتی نیازه که بنویسم؟

                    دیدگاه


                      #11
                      پاسخ : کمک فوری ارتباط سریال

                      .

                      دیدگاه


                        #12
                        پاسخ : کمک فوری ارتباط سریال

                        نوشته اصلی توسط masoome
                        پس چرا هیشکی به من کمک نمیکنه!!!!!

                        هیشکی منو دوس نداره ه ه ه ه ه ه :cry2:
                        با سلام
                        خیلی غصه نخورید! کدی که شما میآ‌خواهید یه همچین چیزی است که با سرهم کردن دوتا فایل نمونه براتون درست کردم. کد به زبان C و مناسب کامپایلر avrgcc است که توی ویندوز باید از winavr برای کمپایلش استفاده کنید
                        منابع مورد استفاده:
                        http://homepage.hispeed.ch/peterfleury/avr-software.html
                        http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=4 5341

                        کد:
                        #include<avr/io.h>
                        
                        #ifndef F_CPU
                        	#define F_CPU	1000000L
                        #endif
                        
                        #define USART_BAUDRATE 9600
                        #define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)
                        
                        int main (void) 
                        
                        {
                        
                         int x = 0;
                        
                         
                        
                         // Activate ADC with Prescaler 16 --> F_CPU/16 = 62.5kHz
                        
                         ADCSRA = _BV(ADEN) | _BV(ADPS2);
                        
                        
                         // Turn on the transmission and reception circuitry
                         UCSRB |= (1 << RXEN) | (1 << TXEN);  
                         // Use 8-bit character sizes
                         UCSRC |= (1 << URSEL) | (1 << UCSZ0) | (1 << UCSZ1); 
                        
                         // Load lower 8-bits of the baud rate value into the low byte of the UBRR register
                         UBRRL = BAUD_PRESCALE; 
                         // Load upper 8-bits of the baud rate value into the high byte of the UBRR register
                         UBRRH = (BAUD_PRESCALE >> 8); 
                         
                         // Select pin ADC0 using MUX
                        
                         ADMUX = 0;
                        
                         
                        
                         for (;;) { 
                        
                          
                        
                          //Start conversion
                        
                          ADCSRA |= _BV(ADSC);
                        
                          
                        
                          // wait until converstion completed
                        
                          while (ADCSRA & _BV(ADSC) ) {}
                        
                          
                        
                          // get converted value
                        
                          x = ADCW; 
                          
                        
                          // Do nothing until UDR is ready for more data to be written to it
                          while ((UCSRA & (1 << UDRE)) == 0) {}; 
                        	  UDR = ~x>>2;  
                         }
                        
                        }
                        من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

                        دیدگاه


                          #13
                          پاسخ : کمک فوری ارتباط سریال

                          ممنون ایشالا به مدارج عالی برسید :applause:

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

                          پس کامپیوتر چـــــی ؟

                          البته فرصت نکردم متن های انگلیسی را بخونم ولی ایشالا می خونمش.بازم ممنون خـــیلی لطف کردید..

                          دیدگاه


                            #14
                            پاسخ : کمک فوری ارتباط سریال

                            نوشته اصلی توسط masoome
                            ممنون ایشالا به مدارج عالی برسید :applause:

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

                            پس کامپیوتر چـــــی ؟

                            البته فرصت نکردم متن های انگلیسی را بخونم ولی ایشالا می خونمش.بازم ممنون خـــیلی لطف کردید..
                            با سلام
                            البته این برنامه کار خیلی خاصی نمیآ‌کنه فقط در یک حلقه به صورت مداوم ولتاژ روی ADC0 رو میآ‌خونه و با سریال (با سرعت ۹۶۰۰) به کامپیوتر میآ‌فرسته (این برنامه برای میکرو است و باید بعد از کامپایل کردنش روی میکرو پروگرم کنیدش).
                            حالا دیگه شما باید یک برنامه توی کامپیوتر بنویسید که این مقادیر را مرتب از پورت سریال بخونه و روی یک نمودار نشان بده. البته شما یه اشارهآ‌ای به متلب هم کردید. اگر این برنامه رو بلد هستید فکر کنم به سادگی میآ‌توانید باهاش این کار رو انجام بدید چون متلب دستوراتی برای کار با پورت سریال داره. علاوه بر این فکر کنم از ******** هم بتوانید استفاده کنید چون فکر کنم کامپوننتآ‌های مرتبط با سریال رو داشته باشه.
                            من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

                            دیدگاه


                              #15
                              پاسخ : کمک فوری ارتباط سریال

                              بله دستور متلب را میدونم.

                              و برای کامل شدن تایپک اینجا قرارش میدم.
                              باز هم ممنون

                              (S = serial('COM1','BaudRate',9600, 'DataBits',8
                              ( fopen(S
                              ( ' هر چی می خواین بفرستین',fprintf(S
                              ( fclose(S

                              برنامه AVR

                              regfile = "m8def.dat"$
                              $crystal = 4000000
                              baud = 9600$
                              Config Lcd = 16 * 2
                              Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.1 , Rs = Portc.0
                              Dim S As Byte
                              Do
                              Cls
                              ()S = Inkey
                              Lcd S
                              Wait 1
                              Loop

                              دیدگاه

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