اطلاعیه

Collapse
No announcement yet.

عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

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

    عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

    با سلام.

    در ماژول hx711 که یه ماژولی هست برای راه اندازی لودسل که کارای تبدیل آنالوگ به دیجیتال رو به عهده داره وآخرش یه خروجی دیجیتال به ما میده رو چطوری بخونیم؟بزارید واضح تر بگم.تو میکرو یه مبدل آنالوگ به دیجیتال داریم آنالوگ رو میدیم به یه پایه adc میکرو بعد اونم به دیجیتال تبدیل میکنه ومیریزه تو یه متغیر ()a=getadc

    اینجا یه ولتاژ مرجعی گفتیم که از روی این ولتاژ با فورمول 1024*ولتاژ ورودی /ولتاژ مرجع یه عددی به وجود میاد که میگیم دیجیتالی عدد ی که به صورت آنالوگ 3.5 وارد adcشده دیجیتالیش میشه 716

    حالا سوال بنده در قسمت خروجی این ماژول عدد دیجیتالی به همین صورت عدد ظاهر می شه یا صفر ویک؟
    سوال بعدی عدد به دست اومده اگر صفر ویک بود چطوری خونده میشه؟
    ارتباط این ماژول با میکرو آیا با uart هست؟ تو دیتا شیت قید شده ارتباط سریال وقتی اسم نوع ارتباط رو ننوشته باشه از کجا می فهمیم از چه نوعی هست؟ spi i2c uart???
    چون فقط یه خروجی داریم.آیا uatr هست؟
    سوالا زیاد شد :redface: تو دیتا شیت اون طوری که فهمیدم انگار باید به ماژول پالس بدیم تا اونم خروجی بده
    یه جدولی داره که هر گین رو بخوام با اون کار کنیم باید طبق جدول به همون تعداد پالس وارد کنیم
    گین 128 25 پالس میخواد حالا چطور دقیق 25 تا پالس تولید کنیم ممنون میشم راهنمایی بکنید ببخشید دیگه مبتدی هستم سوالات زیادی تو ذهن هست انشالله از اطلاعات مفیدتون بتونم به نحو احسنت استفاده بکنم واین چرخه یادگیری ویاد دهی همینطور ادامه داشته باشه .ممنون

    دیتا شیت ماژول hx711 www.dfrobot.com/image/data/SEN0160/hx711_english.pdf‎

    اضافه شده در تاریخ :
    خواهش میکنم یه پاسخ کاملی بفرمایید منتظر لطف دوستان هستم
    معلوليت محدوديت نيست

    آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

    #2
    پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

    سلام

    خروجی ماژول نه uart نه spi ....
    بهت 24 بیت دیتا میده به صورت 0 1 با هر کلاکی که بهش میدی یه بیت رو میفرسته اگه باینری رو تبدیل کنی به دیسمال میشه همون عددت (مثل adc میکرو)

    اگه 24 بیت رو بریزی توی یه متغیر عددت دیسمال میشه

    دیگه چیزی نمی مونه :mrgreen:

    دیدگاه


      #3
      پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

      ممنون بابت راهنماییتون . این قسمت فرمودین هر کلاکی که بهش میدی یه بیت رو میفرسته
      منظورتون اینه اگر مثلا 1کلاک پالس بهش بدیم یه بیت خروجی میده واگر 24 کلاک پالس تو یه یک ثانیه بهش بدیم 24 بیت
      دیتا تو خروجی داریم؟
      یه سوال دیگه طریقه دریافت اعداد باینری مثلا 24 بیتی با میکرو به چه صورت منظورم با چه دستوریه؟ نقل قول شما:اگه 24 بیت رو بریزی توی یه متغیر
      معلوليت محدوديت نيست

      آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

      دیدگاه


        #4
        پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

        همزمان با کلاک شما خروجی میده باکلاک اول بیت اول رو دریافت می کنید با کلاک دوم بیت دوم رو ...
        برای ذخیره

        a.x

        x = به جای x بیتی که باید ذخیره بشه رو می نویسی اگه بیت اول باشه x میشه 1

        دیدگاه


          #5
          پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

          خیلی ممنون که لطف کردین پاسخ دادین.قسمت اول سوالم رو متوجه شدم ولی قسمت دوم رو متوجه نشدم میشه لطف بکنید یکم بازتر بکنید (مبتدی هستم) مثلا با یه پین یه پورت میکرو دریافت انجام میشه؟ مثال شما تو هلپ بسکام موجوده؟
          وقتی کلاک داده شد از این طرف کل 24بیت با رعایت اینکه 24 پالس دادیم وارد متغیر a درست متوجه شدم؟


          معلوليت محدوديت نيست

          آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

          دیدگاه


            #6
            پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

            قرار 24 تا کلاک بدیم تا 24 تا بیت رو دریافت کنیم
            باید 24 بار یکی از پایه های میکرو 1 کنیم مثلا pinb.0
            dim i as byte
            din a as long
            for i = 0 to 24
            set pinb.0
            a.i=pinb.1
            reset pintb.1
            waitms 1
            next
            مثل این


            توضیح :
            کلاک میدیم مقدار خروجی از ماژول رو می خونیم مقدار خونده شده رو (بر اثاص اینکه کلاک چندم رو داریم روی همون بیت ذخیره می کنیم )


            متغیر a 32 بیت هست

            0000000000000000000000000000000
            ^-----------------------------------------------------------bit1
            ^----------------------------------------------------------- bit0

            دیدگاه


              #7
              پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

              مرسی عالی توضیح میدین :applause:
              dim i as byte
              din a as long
              for i = 0 to 24
              set pinb.0
              a.i=pinb.1
              reset pintb.1
              waitms 1
              next

              ببخشید این خط از برنامه چی میگه؟
              معلوليت محدوديت نيست

              آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

              دیدگاه


                #8
                پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

                مقدار PINB.1 رو میریزه توی متغیر A ب (I هم مشخص کننده بیت هست A 32 بیت هست )

                دیدگاه


                  #9
                  پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

                  ضمن تشکر دوبار از شما جناب erfan m ببینید درست متوجه شدم :redface:
                  dim i as byte
                  din a as long
                  for i = 0 to 24
                  set pinb.0
                  a.i=pinb.1
                  reset pintb.1
                  waitms 1
                  next

                  متغیر Iیک میشه بعد پین B.0 یک میشه تا یه کلاک ایجاد بشه در خط بعدی چون متغیر I یک هست (تو حلقه)
                  بیت شماره یک میریزه توی متغیر A

                  خط بعدی نمیدونم چرا پین B.1 ریست میشه؟ به نظرم باید پین B.0ریست بشه تا در برگشت حلقه کلاک دوم ایجاد بشه درسته یا ریست `پین B.1 یه معنی خاصی داره
                  یه 1میلی ثانیه تاخیر ایجاد میشه
                  بعد دستور NEXT برمیگرده واینبار I دو میشه و بیت دوم تو متغیر A ذخیره میشه و....... تا بیت 24
                  استاد تا اینجا درس رو درست توجه شدم؟
                  یه سوال دیگه اگه گفته های بنده رو تائید بکنید حالا وقتی یه بیت توی متغیر Aذخیره میشه بعد بیت دوم میاد ذخیره بشه
                  بیت اول باقی میمونه دیگه؟ منظورم اینه که کنار هم یکی یکی ذخیره میشندیگه
                  مثل
                  A=0
                  A=00
                  A=000
                  A=0000
                  ....
                  A=000000000000

                  بازم ممنون از لطفتون
                  معلوليت محدوديت نيست

                  آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

                  دیدگاه


                    #10
                    پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

                    نوشته اصلی توسط mahdi210
                    ضمن تشکر دوبار از شما جناب erfan m ببینید درست متوجه شدم :redface:
                    dim i as byte
                    din a as long
                    for i = 0 to 24
                    set pinb.0
                    a.i=pinb.1
                    reset pintb.1
                    waitms 1
                    next

                    متغیر Iیک میشه بعد پین B.0 یک میشه تا یه کلاک ایجاد بشه در خط بعدی چون متغیر I یک هست (تو حلقه)
                    بیت شماره یک میریزه توی متغیر A

                    خط بعدی نمیدونم چرا پین B.1 ریست میشه؟ به نظرم باید پین B.0ریست بشه تا در برگشت حلقه کلاک دوم ایجاد بشه درسته یا ریست `پین B.1 یه معنی خاصی داره
                    یه 1میلی ثانیه تاخیر ایجاد میشه
                    بعد دستور NEXT برمیگرده واینبار I دو میشه و بیت دوم تو متغیر A ذخیره میشه و....... تا بیت 24
                    استاد تا اینجا درس رو درست توجه شدم؟
                    یه سوال دیگه اگه گفته های بنده رو تائید بکنید حالا وقتی یه بیت توی متغیر Aذخیره میشه بعد بیت دوم میاد ذخیره بشه
                    بیت اول باقی میمونه دیگه؟ منظورم اینه که کنار هم یکی یکی ذخیره میشندیگه
                    مثل
                    A=0
                    A=00
                    A=000
                    A=0000
                    ....
                    A=000000000000

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

                    دیدگاه


                      #11
                      پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخون

                      چند تا چیز که بهشون توجه نشده بود

                      باکلاک های وردی می تون کانال رو انتخاب کرد
                      اگه پایه SDCK با مدت 64US یک بشه ای سی POWER DOWN میشه پس WAITMS 1 نباید باشه
                      اون برنامه هم 25 تا کلاک میفرسته

                      استاد هم خودتونید :mrgreen:

                      دیدگاه


                        #12
                        پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

                        جنابerfan m ای سی POWER DOWN یعنی چی؟آیسی خاموش میشه؟
                        معلوليت محدوديت نيست

                        آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

                        دیدگاه


                          #13
                          پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

                          نوشته اصلی توسط mahdi210
                          جنابerfan m ای سی POWER DOWN یعنی چی؟آیسی خاموش میشه؟
                          فکر کن لپ تاپ صفحه نمایش و هارد و چیزای دیگه خاموش بشن و cpu هم کاری انجام نده تا اطلاع ثانوی
                          آیسی هم توی یه حالتی هست که خاموش نیست ولی هیچ کاری نمیکنه تا بهش دستور کار مجدد داده بشه

                          دیدگاه


                            #14
                            پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

                            استاد حالا اگر ما بخوایم به صورت مصنوعی وبدون ماژول در محیط پرتیوس این عدد زیرو که 24 بیتی هست رو به پین میکرو بدیم ومیکرو بیت به بیت بگیره وتبدییل بکنه به مقدار عددی و روی ال سی دی نمایش بده باید چیکار بکنیم؟
                            من اومدم به جای کلاک به صورت دستی خودم پینd.0 مربوط به کلاک رو با یک کلید(باتون) در هر بار یک بکنم
                            پایین خط6 گفتم اگر پین یd.0=1 شد یه واحد i روافزایش بده (شبیه به حلقه فور که شما فرمودی) خط 10 عدد باینری تبدیل به مقدار عددی شده توی متغیر b ریخته میشه .

                            Config Portd = Input
                            Dim I As Byte
                            Dim A As Long
                            Dim B As Long

                            Do
                            If Pind.0 = 1 Then
                            Incr I

                            End If

                            A.i = Pind.1

                            B = Binval(a.i)
                            Cls
                            ------------------------
                            Locate 1 , 13 --------->این خط هم گذاشتم بینم وقتی به پایه مربوط به کلاک دستی یک میدم شماره کلاک رو ببینم وبدونم چند کلاک دادم (مطمئن بشم بیت چندم وارد شده)
                            Lcd I
                            ---------------------
                            Lcd B
                            Loop
                            حالا نمیدونم چطوری به صورت دستی این عدد 24 بیتی رو بدم
                            100000110101000110001001
                            روی کاغذ تبدیلش کردم شد 8606089
                            حالا چطوری این عدد باینری رو به صورتی که قبلا فرمودی به پینd.1 میکرو تو پرتیوس بدم وبا کلاک های دستی که میدم شاهد تبدیل بیت به بیت این عددباشم خلاصه بگم میخوام درسهایی که از شما گرفتم تو پرتیوس اجرا کنم
                            ومطمئن بشم ولمس کنم بله این عدد رو بیت به بیت تونستم وارد کنم اون قضیه گرفتن بیتها وذخیره تو متغیر a
                            رو به شکل ملموس درک کنم وچون عدد رو خودم تبدیلش کردم با دیدن همین عدد(8606089 ) رو ال سی دی
                            خیالم راحت بشه که درس شمارو با جان ودل یاد گرفتم.
                            ممنون میشم با اطلاعات ارزشمندتون راهنمایی بکنین.
                            معلوليت محدوديت نيست

                            آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

                            دیدگاه


                              #15
                              پاسخ : عدد تبدیل شده به دیجیتال رو چطوری بخونیم؟

                              می تونی یه میکرو دیگه بزای که بفرسته اون با اینتراپت کلاک رو بخونه بعد دیتا رو بفرسته (یا بدونه اینتراپت دستور bitwait وای میسه تا شرط برقرار بشه ) کریستال میکرو فرستانده جای hx711 بیشتر از گیرنده باشه .

                              دیدگاه

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