اطلاعیه

Collapse
No announcement yet.

ساخت ولتمتر دیجیتال قابل اتصال به کامپیوتر

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

    #31
    پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

    سلام
    واقعا ممنونم ازتون
    آقای KhepeleSibilo خیلی ممنونم از راهنماییتون واقعا خوشحال شدم مرسی
    MSCOMM رو داشتم اما نمی دونستم از کجا باید پیداش کنم الان از توی components پیداش شد.
    تنظیمات مربوط به سرعت خوندن و ... در این مورد بیشتر برام توضیح بدین لطفا . نمی دونم منظورتون تنظیم baudrate توی هایپر ترمینال کامپیوتر و میکرو هستش یا جای دیگه ای هم باید تنظیماتی انجام برم؟
    از توضیح جامع و کاملتون هم بی نهایت ممنونم.

    آقای روباه از لطف شما هم واقعا سپاسگزارم
    در مورد برنامه هم حتما مزاحمتون می شم
    در واقع الان برنامه رو به این صورت نوشتم می شه لطف کنید ببینید درسته یا نه ؟
    dim a as string
    option explicit
    private sub form_load()
    mscomm1.comport=1
    mscomm1.settings=""9600,n,1
    timer1.interval=100
    end sub
    private sub Hscroll1_change()
    timer1.interval=Hscroll1.value
    end sub
    private sub timer1_timer()
    a=mscomm1.input
    text1=val(a)&" V"
    end sub
    من آن گلبرگ مغرورم که می میرم ز بی آبی ولی با خفت و خواری پی شبنم نمی گردم.

    دیدگاه


      #32
      پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

      منظورم همون baudrate بود، اگه از این برنامه استفاده میکنین، دیگه هایپرترمینال نیاز نیست،در حقیقت ما داریم خوده هایپر ترمینال رو می نویسیم با امکاناتی که توو برنامه مون نیازه(مثلا نمایش نمودار دما و ... ) و اون تنظیماتی که اونجا داشتیم رو الان باید اینجا هم انجام بدیم
      این رو هم ، هم اونطور که توو عکس گزاشتم میشه هم با همون خطی که اول برنامه اضافه کردین :
      mscomm1.comport=1
      mscomm1.settings=""9600,n,1

      دیدگاه


        #33
        پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

        سلام
        این برنامه رو نوشتیم هونطور که گفتید،تنظیماتش رو هم انجام دادیم
        ولی برای ارسال عددش مشکل داره؟؟؟؟؟
        برنامه میکرو مون درسته چون خروجی میکرومون بین صفر تا 5 یک موج مربعی می ده
        و max رو هم جداگونه چک کردیم اونمو درسته
        اتصالات DB9مون هم درسته
        ولی عدد مورد نظر رو ارسال نمی کنه و فقط ولتاژ صفر رو بهون نشون می ده؟؟؟؟؟؟؟؟؟؟؟؟
        ما نمی دونیم مشکلش از چیه؟؟؟

        من یه چیزو نمی دونم؟ محیط ترمینال امولیتور bascom وقتی استفاده می شه که ما اتصالات سخت افزاری رو انجام بدیم بعد نتیجه رو می تونیم اونجا ببینیم؟؟؟
        ما وقتی اتصالاتمون رو انجام دادیم قسمت پایینش com1 و تنظیماتش رو نوشته بود یعنی شناخته ولی عددی رو بهمون نشون نمی داد؟؟
        اونو باید جی کارش کنیم تا بتونیم عدد ارسالی رو اونجا ببینیم؟؟؟؟؟؟؟؟؟؟؟؟؟؟
        وقتی upload file رو زدیم پایینش نوشته بود transmiting file printb یعنی عدد ما که توی منغییر b بود رو داشت می فرستاد ولی دیگه هیچی نشون نمی داد؟؟؟
        کجا می فرستاد مگه نباید عدد رو نشون بده پس باید اونو دریافت کته دیگه نه بفرسته جایی؟
        اگه در مورد این هم توضیح بدید ممنون می شم؟؟؟؟؟؟؟؟؟؟ : :rolleyes:
        گاهی دلم برای چوپان دروغگو خیلی می سوزد.بیچاره 2 بار بیشتر دروغ نگفت انگشت
        نماشد... ولی ما هنوز صادق ترینیم

        دیدگاه


          #34
          پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

          نوشته اصلی توسط fargol_m1454
          من یه چیزو نمی دونم؟ محیط ترمینال امولیتور bascom وقتی استفاده می شه که ما اتصالات سخت افزاری رو انجام بدیم بعد نتیجه رو می تونیم اونجا ببینیم؟؟؟
          ما وقتی اتصالاتمون رو انجام دادیم قسمت پایینش com1 و تنظیماتش رو نوشته بود یعنی شناخته ولی عددی رو بهمون نشون نمی داد؟؟
          اونو باید جی کارش کنیم تا بتونیم عدد ارسالی رو اونجا ببینیم؟؟؟؟؟؟؟؟؟؟؟؟؟؟
          وقتی upload file رو زدیم پایینش نوشته بود transmiting file printb یعنی عدد ما که توی منغییر b بود رو داشت می فرستاد ولی دیگه هیچی نشون نمی داد؟؟؟
          کجا می فرستاد مگه نباید عدد رو نشون بده پس باید اونو دریافت کته دیگه نه بفرسته جایی؟
          اگه در مورد این هم توضیح بدید ممنون می شم؟؟؟؟؟؟؟؟؟؟ : :rolleyes:
          برای نمایش نتیجه ارسال تو Emulator کافیه تو Setting مقدار Baud را با اون چیزی که تو برنامه تعریف کردی انتخاب کنی . اگر تو برنامه دستور print رو به کار ببری تو صفحه Emulator نشون داده میشه.

          دیدگاه


            #35
            پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

            نوشته اصلی توسط روباه
            سلام
            شما در VB6 باید از قسمت Active X ها MSComm Control 6 رو انتخاب کنید.انوقت به نوار ابزارتون یه شمای تلفن اضافه میشه و فقط باید اونرو تو فرم قرار بدین و برنامتون رو باهاش کامل کنید
            اگه تو برنامه نویسیشم مشکل دارید بگید

            سلام آقا یا خانم "روباه"
            برنامه زیر رو نوشتم اما جواب نمی ده می شه برام نگاه کنین؟

            Dim a As String
            Option Explicit
            Private Sub form_load()
            MSComm1.CommPort = 1
            MSComm1.Settings = "9600,n,8,1"
            Timer1.Interval = 100
            End Sub
            Private Sub Hscroll1_change()
            Timer1.Interval = HScroll1.Value
            End Sub
            Private Sub timer1_timer()
            MSComm1.PortOpen = True
            a = MSComm1.Input
            Text1 = Val(a) & " V"
            MSComm1.PortOpen = False
            End Sub

            اگه این برنامه جاییش مشکل داشت لطفا بگین بهم زودتر ممنون می شم.
            الان وقتی مدارم و وصل می کنم ولتاژ 0 ولت رو فقط نشون می ده حالا نمی دونم اشکال از اینجاست یا نه
            لطفا کمکم کنید :job:
            من آن گلبرگ مغرورم که می میرم ز بی آبی ولی با خفت و خواری پی شبنم نمی گردم.

            دیدگاه


              #36
              پاسخ : سوال برای برنامه نویسی میکرو AVR کمک


              سلام آقای online62
              من از طریق Terminal Emulator نتونستم عدد ارسالی رو ببینم که
              چه طوری باید ببینم ارتباط برقرار شده
              عدد رو کجای این محیط باید نشون بده ؟
              تازه برنامه VB رو هم نوشتم اما اونجا هم جوابی نمی گیرم
              تنظیمات Baudrate رو هم انجام دادم
              اصلا نمی دونم ارتباط با PC برقرار می کنه یا نه مدارم!
              می شه در مورد Terminal Emulator بیشتر برام بگین که دقیقا کجاش باید نشون بده ؟ مرسی
              من آن گلبرگ مغرورم که می میرم ز بی آبی ولی با خفت و خواری پی شبنم نمی گردم.

              دیدگاه


                #37
                پاسخ : سوال برای برنامه نویسی میکرو AVR کمک


                Private Sub timer1_timer()
                MSComm1.PortOpen = True
                a = MSComm1.Input
                Text1 = Val(a) & " V"
                MSComm1.PortOpen = False
                End Sub


                پورت رو یک بار توو form load باز کنین و توو دکمه خروج ببندین!آ‌ وقتی هی پورت رو می بندین،مقادیره ارسالی بهش از بین میره ... اون رو توو یه حلقه بی نهایت بندازین،وگرنه بافر اون پر می شه و باید ازش بایت به بایت بخونین ...
                عدد صفری که اینجا می نویسه برای اینه که a = MSComm1.Input
                a مقدار تهی میگیره که val اون صفره!
                بنا به دلایلی از هایپر ترمینال استفاده کنین ...

                دیدگاه


                  #38
                  پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

                  نوشته اصلی توسط anahita_hita

                  می شه در مورد Terminal Emulator بیشتر برام بگین که دقیقا کجاش باید نشون بده ؟ مرسی
                  یه برنامه ساده بنویس . مثل این:
                  $regfile="m32def.dat"
                  $crystal=8000000
                  $baud=9600
                  dim s as string*10
                  s="It's OK"
                  do
                  print "TEST"
                  print
                  wait 1
                  loop

                  بعد تو نرم افزار Ctrl+T رو بزن . صفحه آبی ترمینال ایمولاتور باز میشه. تو منوی Terminal گزینه Setting رو انتخاب کن و از پنجره باز شده قسمت نرخ ارسال رو روی 9600 انتخاب کن. بعد تغذیه مدار و اتصال به پورت سریال رو برقرار کن و نتیجه رو ببین.

                  دیدگاه


                    #39
                    پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

                    نوشته اصلی توسط KhepeleSibilo

                    Private Sub timer1_timer()
                    MSComm1.PortOpen = True
                    a = MSComm1.Input
                    Text1 = Val(a) & " V"
                    MSComm1.PortOpen = False
                    End Sub


                    پورت رو یک بار توو form load باز کنین و توو دکمه خروج ببندین!آ‌ وقتی هی پورت رو می بندین،مقادیره ارسالی بهش از بین میره ... اون رو توو یه حلقه بی نهایت بندازین،وگرنه بافر اون پر می شه و باید ازش بایت به بایت بخونین ...
                    عدد صفری که اینجا می نویسه برای اینه که a = MSComm1.Input
                    a مقدار تهی میگیره که val اون صفره!
                    بنا به دلایلی از هایپر ترمینال استفاده کنین ...

                    سلام ممنون از راهنماییتون
                    باز و بسته کردن پورت رو درستش می کنم حتما اینجوری که شما گفتین
                    اصلا دو تا دکمه می ذارم که یکی بازش کنه یکی ببنده.
                    نفهمیدم کدوم و توی حلقه بی نهایت گفتین بذارم؟ می شه بگین و بگین چه جوری؟
                    مقدار تهی معنیش اینه که هیچی بهش ارسال نمی شه ؟ یعنی مدارم هم مشکل داره؟
                    از هایپر ترمینال چه جوری استفاده کنم؟ آخه باید برنامه نویسیش با VB باشه حتما. استاد پروژه گفته...
                    متشکرم.
                    من آن گلبرگ مغرورم که می میرم ز بی آبی ولی با خفت و خواری پی شبنم نمی گردم.

                    دیدگاه


                      #40
                      پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

                      توو start->programs->accessories برنامه hyperterminal رو پیدا کنین
                      توو اولین صفحه یه اسم بدین

                      پورت رو انتخاب کنین

                      تنظیمات رو انجام بدین

                      توو صفحه بعد هر چی از دستگاه بیاد دیده میشه و هر چی تایپ کنی میره ..



                      با این مدار رو تست کنین،اگه جواب میده، برای بیسیک هم برنامه می نویسیم

                      دیدگاه


                        #41
                        پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

                        سلام
                        خسته نباشین
                        این برنامه vb برای خوندن اطلاعت از پورت و نمایش اون:
                        http://www.4shared.com/file/28239374/1d3ab3b9/serial2.html
                        این هم یه برنامه vb و کد های بسکام برای ارسال از کامپوتر به میکرو:
                        http://www.4shared.com/file/16954013/1e1f9ec5/bascom_codesvisual_codes.html
                        »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»» »»»»»»»»»»»»
                        برای استفاده از mscomm باید اول اونرو پیکربندی کنیم که
                        کدهای زیر برای ارسال و دریافت کفایت میکنه:
                        a)ms.CommPort = 1
                        b)mscomm.Settings = "9600,N,8,1"
                        c)mscomm.PortOpen = True
                        d)mscomm.RThreshold = 1
                        >>>>>
                        سه تای اولی که هیچ....
                        ولی کد چهارم گمشده ی شماست.
                        دوستان در بالا برای خوندن اطلاعات از پورت ار تایمر استفاده کردن
                        ولی mscomm این امکان رو گذاشته که ورود اطلاعات رو با یک interrupt
                        اعلام میکنه و این کد این حالت رو فعال میکنه.
                        فقط کافیه در قسمت event این ocx کد رو در یه متغیر قرار بدید
                        یا مستقیما نمایش بدید و ... .

                        >>>>>>>>>>>>&g t;>>>>>>>>>>>> >>>>>>>>>>>&gt ;
                        >>>>>>>>>>>>&g t;>>>>>>>>>>>> >>>>>>>>>>>&gt ;
                        تجربه های بنده:
                        1)شما فقط یه بار پورت رو در فرم لود open کنین دیگه نبستین هم موردی نیست
                        هنگام خرو ج برنامه خودش میبنده.(البته اگه نیمخواین به >موازات<برنامه خودتون از یه برنامه دیگه که با این پورت کار میکنه استفاده کنین مثلا هایپرترمینال).
                        2) قسمت های سخت افزاری رو چک کنید:
                        اگه از max232 استفاده می کنید حتما خازن هاشو چک کنید
                        اگه از max233 استفاده می کنید حتما اتصال 12 به 17،یازده به 15 و شانزده به 10 رو
                        چک کنید.همچنین 6 و 9 به gnd و 7 به vcc.
                        حتما rx میکرو به tx پورت و tx میکرو به rx پورت(این قسمت رو حتما چک کنید.ممکنه همنامی باعث اشتباه و وصل همنام ها بهم بشه ).
                        از درست بودن و اتصال سیمها با کانکتور db مطمئن بشین.
                        در اتصال کابل به پورت مورد نظر که ما در این مثال comm1 رو انتخاب کردیم اطمینان
                        حاصل کنید.
                        باود ریت میکرو و کامپیوتر رو حتما یکی کنید.
                        اگر از avr استفده می کنید fusebit هاشو رو درست تنظیم بکنید که اگه نشه باود میکرو اونی نمیشه که ما می خواهیم.
                        فعلا اینها به ذهنم رسید.

                        دیدگاه


                          #42
                          پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

                          سلام
                          ممنون از اینکه این همه راهنماییمون کردین
                          واقعا متشکرم
                          آقای hamed این لینکی که گذاشتین
                          ین برنامه vb برای خوندن اطلاعت از پورت و نمایش اون:
                          http://www.4shared.com/file/28239374/1d3ab3b9/serial2.html
                          رو دانلود کردم اما باز نمی شه و یک Error می گیره
                          می شه لطفا چک کنین اگه ممکنه برنامه شو از توش اینجا کپی کنین تا ببینم
                          فرمش هم عکسش و بذارین
                          مرسی

                          راستی در این موردم لطفا بیشتر توضیح بدین :
                          اگر از avr استفده می کنید fusebit هاشو رو درست تنظیم بکنید که اگه نشه باود میکرو اونی نمیشه که ما می خواهیم.
                          من آن گلبرگ مغرورم که می میرم ز بی آبی ولی با خفت و خواری پی شبنم نمی گردم.

                          دیدگاه


                            #43
                            پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

                            سلام
                            برنامه مثل اینکه ایرادی نداره.
                            لطفا اول فایل رو unzip کنید.
                            عکسش هم همونیه که گذاشتم.
                            نوشته اصلی توسط anahita_hita
                            راستی در این موردم لطفا بیشتر توضیح بدین :
                            اگر از avr استفده می کنید fusebit هاشو رو درست تنظیم بکنید که اگه نشه باود میکرو اونی نمیشه که ما می خواهیم.
                            چیز خاصی نیست.وقتی میکرو برای اولین بار مورد استفاده قرار میگیره یا می خواین تنظیماتشو تغییر بدین
                            باید فیوزبیتهاشو رو تنظیم کنید.مثلا انتخاب مقدار فرکانس کاری میکرو از منوی فیوزبیتهاست. اونی که اول برنامه می نویسیم کشکه.(البته دلیلشو منم هنوز نفهمیدم)البته اگه با avr کار کردین حتما باید اینکارو کرده باشین.اوایل کار با میکرو همین مشکل رو داشتم یعنی باود میکرو و کامپیوتر وقتی یکی میشد کاراکترها رو عوضی نشون میداد و فقط زمانی درست کار میکرد که باود میکرو 9600 و باود کامپیوتر 1200 میشد.
                            بعدا مشخص شد که مشکل تنظیم نکردن فیوزبیت ها بوده.


                            دیدگاه


                              #44
                              پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

                              نوشته اصلی توسط H_A_M_E_D
                              سلام
                              برنامه مثل اینکه ایرادی نداره.
                              لطفا اول فایل رو unzip کنید.
                              عکسش هم همونیه که گذاشتم.

                              چیز خاصی نیست.وقتی میکرو برای اولین بار مورد استفاده قرار میگیره یا می خواین تنظیماتشو تغییر بدین
                              باید فیوزبیتهاشو رو تنظیم کنید.مثلا انتخاب مقدار فرکانس کاری میکرو از منوی فیوزبیتهاست. اونی که اول برنامه می نویسیم کشکه.(البته دلیلشو منم هنوز نفهمیدم)البته اگه با avr کار کردین حتما باید اینکارو کرده باشین.اوایل کار با میکرو همین مشکل رو داشتم یعنی باود میکرو و کامپیوتر وقتی یکی میشد کاراکترها رو عوضی نشون میداد و فقط زمانی درست کار میکرد که باود میکرو 9600 و باود کامپیوتر 1200 میشد.
                              بعدا مشخص شد که مشکل تنظیم نکردن فیوزبیت ها بوده.


                              salam
                              omidvaram haletun khub bashe :icon_razz:
                              mishe daghighan behemun yad bedid che toori fusebit haru
                              chek ****m???
                              ma aslan nemidunim micro hai ke dar ekhtiar darim ghablan chek shodan ya na
                              age behemun yad bedid ke khudemun chekesh ****m mamnoon mishim????

                              rasti in fusebite haru faghat zamani chek mi****m ke bekhaim ye etesal be computer dashte bahsim???
                              yani age ye barname ru micro rikhte bashe ke niazi be etesal be computer nadashte bashe niazi be chek kardane inha nis???
                              mishe bishtar dar moredesh baramun tozih bebid
                              khili mamnoonam :applause: :applause: :rolleyes: :rolleyes:
                              گاهی دلم برای چوپان دروغگو خیلی می سوزد.بیچاره 2 بار بیشتر دروغ نگفت انگشت
                              نماشد... ولی ما هنوز صادق ترینیم

                              دیدگاه


                                #45
                                پاسخ : سوال برای برنامه نویسی میکرو AVR کمک

                                فیوز بیت ها یه سری از امکانات میکروهای AVR هستن که می تونیم اونها را با توجه به نحوه کاربرد تنظیم کنیم.
                                به طور ساده با فیوز بیت ها می تونیم یه سری از امکانت رو حذف یا فعال کنیم.
                                فیوز بیت ها با مقدار یک فعال و با صفر غیر فعال می گردند. چند تا از فیوزبیت های معروف ATMEGA32 رو برای فهم بیشتر میگم.
                                فرض کن تو برنامه فرکانس کاری رو 8 مگا هرتز انتخاب کردی. تحلیل گر برنامه اون رو متوجه میشه اما میکرو چی؟ باید یه جوری میکرو هم متوجه بشه که فرکانس کاری چنده تا اون کلاک را تولید کنه.
                                برای همین توسط فیوز بیت مربوط به فرکانس مشخص می کنیم که مثلا از اسیلاتور داخلی با فرکانس 8000000 هرتز کار می کنیم. یا مثلا قراره با EEPROM داخلی میکرو کار کنیم . در حالت پیش فرض این فیوز بیت غیر فعال (صفر) هست. پس برای فعال کردنش اون رو یک می کنیم.
                                یا مثلا اگه تو برنامه از پورت C استفاده کردی باید فیوزبیتی که یه جوری مربوط به اونه رو درست کنی. در حالت عادی فیوز بیت JTAG فعاله . JTAG از پورت C استفاده می کنه. پس باید اون رو غیر فعال کنی.


                                فیوز بیت ها انواع مختلفی دارند و هر کدوم بسته به نوع برنامه نرع نیاز فعال یا غیر فعال میشن.

                                دیدگاه

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