اطلاعیه

Collapse
No announcement yet.

خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

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

    خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

    سلام

    دوستان من میخوام با برنامه بسکام و میکرو اتمگا 8 سطح ولتاژ رو سنس کنم و روی السیدی کلمه ای رو بنویسم یعنی میخواهم اگر سطح ولتاژ من کمتر از 2 ولت بود کلمه low واگر بیشتر از 4 ولت بود کلمه high را نمایش دهم.
    در واقع قصد دارم توسط AD خود میکرو این مقادیر رو بخونم . من تا بحال با مبدل آنالوگ به دیجیتال میکرو کار نکردم .
    الان 3تاسئوال برام پیش اومده اینکه :
    1) ولتاژ من داره دائم توسط adc خوانده میشود من هر دفعه که میخوام این ولتاژ را چک کنم آیا باید adc متوقف کنم؟اینجوری از دادههایی که به پینم میاد عقب میفتم؟پس چه کار باید کرد؟
    2)من مقدار Adc را میخوانم ودرون یک متغیر از نوع wordآ‌قرار میدهم حالا چجوری باید بفهمم آن عدد برابر سطح ولتاژ 2 ولت ویا 4 ولت است ؟ منظورم این است که مبدل این اعدادی که میخواند را بر چه اساسی نشون میده که من بتونم با یکسری عملیات ریاضی بفهمم دقیقا الان در چه سطح ولتاژی هستم؟
    3) اگر من از Adcآ‌میکروم فقط از یک کانال آن استفاده کنم یعنی تنها از یک پین portc دارم استفاده میکنم آیا از بقیه پورت میتونم به عنوان i/o استفاده کنم چون من برای السیدی نیازش دارم .

    پیشاپیش از همه دوستان که کمک میکنند ممنونم



    #2
    پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

    من بسکام کار نکردم اما ...
    1- خواندن ولتاژ مثل دریافت اطلاعات از پورت سریال نیست که شما اینجا کاراکتر هایی رو از دست بدید . در حقیقت شما با فواصل زمانی خاصی باید از سیگنال نمونه برداری کنید (ولتازش رو بخونید) چون شما وقتی از سیستم دیجیتال استفاده می کنید که نمیتونید همه اطلاعات رو داشته باشید فقط اگر یک سیگنال مهم و پیوسته مثل سیگنال قلبی داشته باشید باید طبق معیار نایکویست با دوبرابر بیشترین فرکانس سیگنال نمونه برداری کنید
    مثال:
    سیگنالی متشکل از فرکانسهای 10 و 20 و 100 هرتز است برای اینکه شما نمونه برداری کنید کافیه با 2 برابر بیشترین فرکانس یعنی 200 نمونه در ثانیه این کارو انجام بدید . در بقیه زمان میکرو شما به بقیه کاراش میرسه ...
    اگر هم متغیر مورد اندازه گیریتون یک چیزی مثل دماست فقط هر چند قانیه یک لار کافیه بخونیدش
    2- شما یک عدد بین 0 تا 1024 رو از میکرو دریافت میکنید که کافیه با دستورات if یک عمل مقایسه انجام بدید
    3- بله میتونید فقط از یک پایه برای مبدل استفاده کنید و بقیه پایه ها نقش وروذی و خروجی داشته باشن
    Don't hesitate to ask any question ..

    دیدگاه


      #3
      پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

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

      2)من مقدار Adc را میخوانم ودرون یک متغیر از نوع wordآ‌قرار میدهم حالا چجوری باید بفهمم آن عدد برابر سطح ولتاژ 2 ولت ویا 4 ولت است ؟ منظورم این است که مبدل این اعدادی که میخواند را بر چه اساسی نشون میده که من بتونم با یکسری عملیات ریاضی بفهمم دقیقا الان در چه سطح ولتاژی هستم؟
      سلام

      ADC به ازای ولتاژ 5ولت ، عدد 1023 و به ازای ولتاژ صفر ولت ، عدد صفر را در متغییر مربوطه قرار میده
      حالا با یه محاسبه ساده میتونی بفهمی که به ازای ولتاژ 2 ویا 4ولت چه عددی در متغییر قرار میگیره.
      (2ولت ==> 409.2 و 4ولت==>818.4)

      *اگه ولتاژ اعمالی از VCC بیشتر شود ، ADC آسیب میبیند.
      *بهترین ولتاژ اعمالی به ADC برابر 4.5ولت است.
      *اگه بخوای ولتاژی بیشتر از 4.5ولت را اندازه بگیرید ، باید از قانون تقسیم ولتاژ استفاده کنید.
      تشكر لازم نيست. :^O
      اينها همش وظيفه ست. :^O

      دیدگاه


        #4
        پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

        سلام دوستان
        من برنامم بصورت زیر نوشتم اما نمیدونم چرا جواب نمیده یعنی وقتی که انتظار داری روی السیدی بنویسه low
        همان high را نوشته با اینکه ولتاژرا کم وزیاد میکنم اما هیچ فرقی نمیکند میشه بگید اشکال کارم کجاس؟

        Adc0 = Getadc(5)
        Adc_read = Adc0
        If Adc_read =< 409 Then 'v<2
        Locate 2 , 12
        Lcd "low"
        Elseif Adc_read >= 818 Then 'v>4
        Locate 2 , 12
        Lcd "high"
        End If

        البته دستور start adcآ‌ را بعد از کانفیگ آن قبل از حلقه نوشتم.

        ***در ضمن من از مابقیه پورت c برای lcd استفاده کردم .***

        دیدگاه


          #5
          پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

          سلام

          من برنامه رو داخل پروتئوس چک کردم ، مشکلی نداشت.

          فقط باید دستور cls رو قبل از نمایش بر روی lcd بنویسی.
          تشكر لازم نيست. :^O
          اينها همش وظيفه ست. :^O

          دیدگاه


            #6
            خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

            سلام
            خسته نباشید
            سوالی داشتم در مورد اینکه اگر من بخوام همیشه نمونه برداری کنه و بیشترین مقدار ولتاژ خوانده شده توسط adc را در متغییری جا گذاری کنه چطوری عمل کنم در بسکام
            ممنون

            دیدگاه


              #7
              پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

              سلام دوستان/ فرض کنین یک ولتاژ زیر 4 ولت به نوعی میکرو داده شده تا میکرو روشن بشه. چجوری میشه همون ولتاژ ورودی رو توسط میکرو خوند(میکرو میتونه با تغذیه ای از 2.9 ولت به بالا روشن بشه)
              راه حل پیشنهادی من: ولتاژ VCC دیواید بشه و با ولتاژ رفرنس مقایسه بشه.راه بهتری سراغ دارین؟
              جدیدترین ویرایش توسط Amir Zia; ۲۱:۵۹ ۱۳۹۸/۰۹/۱۶.






              امیرحسین ضیا

              دیدگاه


                #8
                پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

                نوشته اصلی توسط Amir Zia نمایش پست ها
                سلام دوستان/ فرض کنین یک ولتاژ زیر 4 ولت به نوعی میکرو داده شده تا میکرو روشن بشه. چجوری میشه همون ولتاژ ورودی رو توسط میکرو خوند(میکرو میتونه با تغذیه ای از 2.9 ولت به بالا روشن بشه)
                استفاده از رفرنس داخلی به عنوان AREF اگه داشته باشه (AVR ها دارن)
                اگر پایه رفرنس یا تغذیه آنالوگ در دسترس نیست ،استفاده از یه رفرنس داخلی یا خارجی به همراه یه تقسیم مقاومتی.
                اگر پایه رفرنس یا تغذیه آنالوگ در دسترس هست، استفاده از همون پایه با یه رفرنس خارجی با تقسیم مقاومتی

                بعضی میکرو ها رفرنس داخلی میدن ولی به عنوان ماگزیمم مقدار ADC نمیشه استفاده ش کرد. فقط محض داشتن یه رفرنس دقیق بدرد میخوره. تو AVR شما با انتخاب رفرنس داخلی 2.56 ولت یا 1.1 ولت، کلا اندازه گیریت رو بر این اساس انجام میدی. اما توی میکروهای دیگه، صرفا یکی از کانال های ADC وصل هست به یه رفرنس دقیق واس کالیبره کردنش. اما ماگزیمم رفرنس همون تغذیه یا رفرنس خارجی میکروه.
                Si vis pacem, para bellum

                دیدگاه


                  #9
                  پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

                  نوشته اصلی توسط tiranoid نمایش پست ها
                  استفاده از رفرنس داخلی به عنوان AREF اگه داشته باشه (AVR ها دارن)
                  اگر پایه رفرنس یا تغذیه آنالوگ در دسترس نیست ،استفاده از یه رفرنس داخلی یا خارجی به همراه یه تقسیم مقاومتی.
                  اگر پایه رفرنس یا تغذیه آنالوگ در دسترس هست، استفاده از همون پایه با یه رفرنس خارجی با تقسیم مقاومتی

                  بعضی میکرو ها رفرنس داخلی میدن ولی به عنوان ماگزیمم مقدار ADC نمیشه استفاده ش کرد. فقط محض داشتن یه رفرنس دقیق بدرد میخوره. تو AVR شما با انتخاب رفرنس داخلی 2.56 ولت یا 1.1 ولت، کلا اندازه گیریت رو بر این اساس انجام میدی. اما توی میکروهای دیگه، صرفا یکی از کانال های ADC وصل هست به یه رفرنس دقیق واس کالیبره کردنش. اما ماگزیمم رفرنس همون تغذیه یا رفرنس خارجی میکروه.
                  ممنونم.
                  دوستان فرض کنین من میخوام یک باتری منیجمیت سیستم بسازم و به دلایلی نمیخوام از یک میکرو استفاده کنم و میخوام برای هر سلول یک میکرو استفاده کنم. تغذیه ی ماژول مدیریت سلول از خود همون سلول فراهم میشه. به فرض برای یک باتری یا سوپر کپ 6 سلولی ما 6 عدد ماژول خواهیم داشت که هر ماژول یک میکرو و گراند خودشو داره!
                  سوال اینجاست! ما از هر سلول ممکنه 100 آمپ بکشیم.فاصله ی ترک کشی های ماژول کنترلی از سیم های انتقال جریان زیاد هست و ماژول کنترلی روی جریان نداره(صرفا میخواد ولتاژ رو بخونه)
                  احتمال هنگ کردن میکرو زیاد هست در این حالت؟ بهتره از آیسی استفاده کنم؟(میکرو کار زیادی قرار نیست انجام بده و میشه با آیسی هم سر قضیه رو هم آورد ولی چون ممکنه بخوام کالیبره کنم ولتاژ هارو یکم با آیسی سخت میشه کالیبریشن . با میکرو تو یه خط کد میشه کالیبره کرد ولی آیسی خیر.)






                  امیرحسین ضیا

                  دیدگاه


                    #10
                    پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

                    سلام دوستان
                    اول از صحبتم بگم که من ادم حرفه ای نیستم پس اگه جایی اشتباه شد دیگه ببخشید
                    من میخواستم یه کدی رو بنویسم که ولتاژ مدار رو اندازه بگیره اگه از یه مقدار کمتر شد با استفاده از یه پتانسیومتر دیجیتال و یه باتری مقداری ولتاژ رو افزایش بدم
                    اینم بگم که با ولتاژ خیلی پایین مثل 0.9 تا 1.5 ولت کار میکنم برای یک سنسور میخوام که سیکنال هاشو دستکاری کنم و ایا میشه این کارو با خود میکرو کرد منظورم اندازه گیری و مقایسه ولتاژ هست
                    اگه میشه بهم کمک کنید چون من تابه حال کدی مثل این کار نکردم
                    یا اصلا همچین چیزی رو میشه نوشت یا نه
                    ممنون میشم اگه کسی بتونه کد رو تا حدی بنویسه

                    دیدگاه


                      #11
                      پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

                      نوشته اصلی توسط javadsob نمایش پست ها
                      سلام دوستان
                      اول از صحبتم بگم که من ادم حرفه ای نیستم پس اگه جایی اشتباه شد دیگه ببخشید
                      من میخواستم یه کدی رو بنویسم که ولتاژ مدار رو اندازه بگیره اگه از یه مقدار کمتر شد با استفاده از یه پتانسیومتر دیجیتال و یه باتری مقداری ولتاژ رو افزایش بدم
                      اینم بگم که با ولتاژ خیلی پایین مثل 0.9 تا 1.5 ولت کار میکنم برای یک سنسور میخوام که سیکنال هاشو دستکاری کنم و ایا میشه این کارو با خود میکرو کرد منظورم اندازه گیری و مقایسه ولتاژ هست
                      اگه میشه بهم کمک کنید چون من تابه حال کدی مثل این کار نکردم
                      یا اصلا همچین چیزی رو میشه نوشت یا نه
                      ممنون میشم اگه کسی بتونه کد رو تا حدی بنویسه
                      سلام
                      چرا نشه! اصلا ADC برای همین کاره دیگه.
                      این سوالی که پرسیدید خیلی کلیه. واضحه که باید بتونید با ADC کار کنید. اگر توی کار با ADC مشکلی داشتید بفرمایید. ففط یک سری نکات راجع به ADC هست که احتمالا وقتی در موردش تحقیق میکنید، خودتون متوجه اش میشید.

                      دیدگاه


                        #12
                        پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

                        تشکر
                        من سایت هایی رو که مطالعه کردم هیچکدوم در مورد کد نویسی adc صحبت نکرده بودند و همین من رو یکم گیج کرد ار اینجا تاپیکی باشه در این مورد خوشحال میشم به اشتراک بگذارید

                        دیدگاه


                          #13
                          پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

                          نوشته اصلی توسط javadsob نمایش پست ها
                          تشکر
                          من سایت هایی رو که مطالعه کردم هیچکدوم در مورد کد نویسی adc صحبت نکرده بودند و همین من رو یکم گیج کرد ار اینجا تاپیکی باشه در این مورد خوشحال میشم به اشتراک بگذارید
                          سخت افزارتون مگه چیه؟ دیگه هیچی هم که نباشه دیتاشیت اون میکروکنترلر هست.

                          دیدگاه


                            #14
                            پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

                            نوشته اصلی توسط hossein.m98 نمایش پست ها
                            سخت افزارتون مگه چیه؟ دیگه هیچی هم که نباشه دیتاشیت اون میکروکنترلر هست.
                            atmega16 هست
                            متاسفانه زبانم خیلی خوب نیست اما خب به هرحال یه جوری پیدا میکنم الان مهم ترین مشکل من اینه که نمیدونم چطور باید بعد از مقایسه ب پتانسیومتر دیجیتال دستور بدم که زیاد یا کم شه و برام خیلی هم مهم هست که دیجیتال باشه و نه به طور دستی
                            باز هم ممنونم

                            دیدگاه


                              #15
                              پاسخ : خواندن سطح ولتاژ با مبدل آنالوگ به دیجیتال میکرو

                              نوشته اصلی توسط javadsob نمایش پست ها
                              atmega16 هست
                              متاسفانه زبانم خیلی خوب نیست اما خب به هرحال یه جوری پیدا میکنم الان مهم ترین مشکل من اینه که نمیدونم چطور باید بعد از مقایسه ب پتانسیومتر دیجیتال دستور بدم که زیاد یا کم شه و برام خیلی هم مهم هست که دیجیتال باشه و نه به طور دستی
                              باز هم ممنونم
                              برای AVR که پر از آموزشه. با کوچکترین سرچ گوگل هم آموزش هاش میاد براتون!
                              یه لینکی به عنوان نمونه براتون توی شخصی میفرستم تا ببینید.

                              دیدگاه

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