اطلاعیه

Collapse
No announcement yet.

*** ADC ***

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

    #16
    پاسخ : *** ADC ***

    Dim V As Word
    Dim Vv As Single
    Config Adc = Single , Prescaler = Auto , Reference = avcc
    Start Adc
    do
    V = Getadc(0) 'baraye khandane adc

    vv=v*0.0048875855327468230694037145650049
    locate 1,1
    lcd"v: ";vv;" " 'baraye lcd
    loop


    اگه این عدد رو به 1023 ضرب کنی میبینی 5 میاد
    0.0048875855327468230694037145650049

    ینی انالوگ به دیجیتال میکرو 1024 پله است( 10 بیتی) خوب ورودی هم همون adc 0 هست تو مگا 8 پایه 23 و تو مگا 32 و 16 پایه 40 رو با یه مقاومت 1 کیلو اهمی یا بیشتر کمتتر زیاد فرقی نداره به ولتاژ 0 تا 5 ولتی بزنی ولتاژت رو lcd نشون داده میشه :nice: :nerd:
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

    دیدگاه


      #17
      پاسخ : *** ADC ***

      درود بر شما
      برای پیکربندی ADC از دستور زیر استفاده کنید :
      Config Adc = Single , Prescaler = Auto
      برای شروع کار ADC از دستور :
      Start Adc
      و برای خواندن عدد متناظر با ولتاژ ورودی در ADC از دستور :
      A = Getadc (x) l
      در دستور بالا x شماره پایه ADC است که می خواهید آن را بخوانید و مقدار آن در متغییر A قرار می گیرد

      $regfile = "m8def.dat"
      $crystal = 8000000
      Config Adc = Single , Prescaler = Auto
      Start Adc
      Do
      Cls
      A0 = Getadc(0)
      Lcd A0
      Waitms 100
      Loop
      در روزگاری که لبخند آدم ها بخاطر شکست توست برخیز تا بگریزند. کورش کبیر
      شاد بودن، تنها انتقامی است که میتوان از زندگی گرفت. ارنستو چه گوارا

      دیدگاه


        #18
        پاسخ : *** ADC ***

        زمانیکه در دستور پیکربندی ولتاژ Reference را acvv تعریف می کنید یعنی ولتاژ مرجع خارجی
        Config Adc = Single , Prescaler = Auto , Reference = avcc
        در این حالت می بایست پایه های avcc و aref را به vcc (5V)l وصل نمایید
        در روزگاری که لبخند آدم ها بخاطر شکست توست برخیز تا بگریزند. کورش کبیر
        شاد بودن، تنها انتقامی است که میتوان از زندگی گرفت. ارنستو چه گوارا

        دیدگاه


          #19
          پاسخ : *** ADC ***

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

          چرا باید پایه های AREF و AVCC رو به ولتاژ 5 ولت متصل کنم و یک سوال این که پایه های AREF و AVCC چه کاربرد هایی دارند و به چه منظوری در میکرو تعبیه شده اند و می توان چه استفاده هایی از آن کرد ؟

          با تشکر
          http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

          دیدگاه


            #20
            پاسخ : *** ADC ***

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

            من هنگام راه اندازی ADC متوجه شدم که پین های ADC در ATmega32 معادل 8 عدد هست که برای معرفی و پیکربندی هر پایه باید از چه دستوری استفاده کرد ؟
            و یک سوال دیگر این که ، یک مثال ساده برای اندازه گیری ولتاژ وارد شده به پایه ADC میکرو در زیر آورده ام آیا این مثال کامل و درست است ؟
            و یک سوال دیگر این که آیا باید ولتاژ مثلا 5 ولت مستقیما به پایه ADC میکرو متصل شود ؟

            regfile = "m32def.dat"
            $crystal = 8000000
            Config Adc = Single , Prescaler = Auto
            Dim A as Byte
            Start Adc
            Stop Adc
            Do
            Cls
            A = Getadc(0)
            Lcd A
            Waitms 100
            Loop
            http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

            دیدگاه


              #21
              پاسخ : *** ADC ***

              در مورد برنامه
              متغییر را از نوع Byte تعریف کردی ، Byte از 0 تا 255 مقدار میگیرد در صورتیکه عدد ADC از 0 تا 1023 میباشد ، متغییر را از نوع word تعریف کن
              در روزگاری که لبخند آدم ها بخاطر شکست توست برخیز تا بگریزند. کورش کبیر
              شاد بودن، تنها انتقامی است که میتوان از زندگی گرفت. ارنستو چه گوارا

              دیدگاه


                #22
                پاسخ : *** ADC ***

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

                من هنگام راه اندازی ADC متوجه شدم که پین های ADC در ATmega32 معادل8عدد هست که برای معرفی و پیکربندی هر پایه بایداز چه دستوری استفاده کرد ؟

                * و یک سوال دیگر این که ، یک مثال ساده برای اندازه گیری ولتاژ وارد شده به پایه ADC میکرو در زیر آورده ام آیا این مثال کامل و درست است ؟
                * * و یک سوال دیگر این که آیا باید ولتاژ مثلا 5 ولت مستقیما به پایه ADC میکرو متصل شود ؟

                regfile = "m32def.dat"
                $crystal = 8000000
                Config Adc = Single , Prescaler = Auto
                Dim A as word
                Start Adc
                Stop Adc
                Do
                Cls
                A = Getadc(0)
                Lcd A
                Waitms 100
                Loop
                http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                دیدگاه


                  #23
                  پاسخ : *** ADC ***

                  a =getadc(0) 1
                  2 ( a =getadc(1
                  3 (a =getadc(2
                  4 (a =getadc(3
                  1 =adc 1
                  2=adc2
                  تا اخر این طوریه اون عدد توی پرانتز ورودی تو مشخص میکنه :bye
                  [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                  دیدگاه


                    #24
                    پاسخ : *** ADC ***

                    * و یک سوال دیگر این که ، یک مثال ساده برای اندازه گیری ولتاژ وارد شده به پایه ADC میکرو در بالا آورده ام آیا این مثال کامل و درست است ؟
                    * * و یک سوال دیگر این که آیا باید ولتاژ مثلا 5 ولت مستقیما به پایه ADC میکرو متصل شود ؟
                    http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                    دیدگاه


                      #25
                      پاسخ : *** ADC ***

                      باسلام

                      من 2 عدد سوال دیگر بدون پاسخ در این زمینه در زیر مطرح کرده ام اگر که پاسخ دهید خیلی خیلی ممنون می شوم

                      1. یک مثال ساده برای اندازه گیری ولتاژ وارد شده به پایه ADC میکرو در زیر آورده ام آیا این مثال کامل و درست است ؟
                      2. آیا باید ولتاژ مثلا 5 ولت مستقیما به پایه ADC میکرو متصل شود ؟

                      regfile = "m32def.dat"
                      $crystal = 8000000
                      Config Adc = Single , Prescaler = Auto
                      Dim A as word
                      Start Adc
                      Stop Adc
                      Do
                      Cls
                      A = Getadc(0)
                      Lcd A
                      Waitms 100
                      Loop
                      http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                      دیدگاه


                        #26
                        پاسخ : *** ADC ***

                        ببین داداش گلم
                        این مثال هم درسته هم غلط
                        درستیش اینه که یه عددی بین 0 تا 1023 تو اlcd نمایش میده که رابطه مستقیم با ولتاژ داده شده به ورودیت داره
                        مثلا وقتی 5 ولت رو میدی به ورودیت عدد 1023 و وقتی 0 ولت میدی عدد 0 نشون داده میشه هالا اگه 2.5 ولت بدی نصف عدد 1023 رو نشون میده ینی 512 خوب برای اینکه بتونی ولتاژ رو دقیقا حساب کنی این کارو باید بکنی
                        عدد گرفته شده از adc رو ضرب در عدد
                        0.0048875855327468230694037145650049
                        بکنی ینی
                        1023 *0.0048875855327468230694037145650049=5 ولت
                        و 512 *0.0048875855327468230694037145650049=2.5 ولت
                        که برنامه به این صورت در میاد
                        regfile = "m32def.dat"
                        $crystal = 8000000
                        Config Adc = Single , Prescaler = Auto
                        Dim A as word
                        Start Adc
                        Stop Adc
                        Do
                        Cls
                        a=a* 0.0048875855327468230694037145650049
                        A = Getadc(0)
                        Lcd A
                        Waitms 100
                        Loop




                        در ضمن دستور Stop Adc رو پاک کن اگه برنامه ارور داد باید متغیر دومی از نوع singel معرفی کنی تا بتونه اعدد ممیز دار رو هم نشون بد ه چون تو اون سطر عددت ممیز دار میشه و متغیر ورد ممیز قبول نمیکنه به احتمال زیاد باید یه متغیر دیگه بر حسب singel تعریف کنی
                        [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                        دیدگاه


                          #27
                          پاسخ : *** ADC ***

                          خط stop adc را حذف کن
                          از 0 تا 5 ولت را می تونی به ADC وصل کنی
                          چند سوال :
                          1- در برنامت می خوای از عدد متناظر با ولتاژ استفاده کنی یا دقیقا" مقدار ولتاژ را بدونی ؟
                          2- سنسور یا قطعه ای به ADC وصل کردی ؟
                          در روزگاری که لبخند آدم ها بخاطر شکست توست برخیز تا بگریزند. کورش کبیر
                          شاد بودن، تنها انتقامی است که میتوان از زندگی گرفت. ارنستو چه گوارا

                          دیدگاه


                            #28
                            پاسخ : *** ADC ***

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

                            من فقط می خواهم که ولتاژ روی LCD نمایش داده شود و نیازی به عدد متناظر با ولتاژ ندارم که با توجه با پاسخ های شما دوستان متوجه شدم که باید ضرب در عدد 0.0048875855327468230694037145650049 کنم
                            ولی یک سوال چرا باید Stop ADC رو پاک کنم ؟
                            و یک سوال دیگر این که چگونه می توانم سنسور هایی مانند فوتوسل (مقاومت نوری) رو به میکرو و ADC متصل کنم و مثلا نور یک LED رو نسبت به نور محیط تغییر دهم ؟
                            http://vz.iminent.com/vz/39a77668-19...h-fishing.giff

                            دیدگاه


                              #29
                              پاسخ : *** ADC ***

                              به همان دلیل که start adc را می نویسیم
                              در سنسور های آنالوگ نسبت به تغییرات محیطی ولتاژ خروجی تغییر می کند که با اتصال آن به ADC می توان تغییرات را توسط تغییرات عدد متناظر با ولتاژ ورودی بدست آورد
                              در روزگاری که لبخند آدم ها بخاطر شکست توست برخیز تا بگریزند. کورش کبیر
                              شاد بودن، تنها انتقامی است که میتوان از زندگی گرفت. ارنستو چه گوارا

                              دیدگاه


                                #30
                                پاسخ : *** ADC ***

                                نوشته اصلی توسط pooya_ict
                                به همان دلیل که start adc را می نویسیم
                                :nice: :nice: :nerd:
                                دمت گرم
                                خیلی حال کردم با این جوابت
                                [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

                                دیدگاه

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