اطلاعیه

Collapse
No announcement yet.

مشکل با adc

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

    مشکل با adc

    با سلام
    من یه برنامه نوشتم که توسط adc انالوگ رو به دیجیتال تبدیل میکنه و روی lcd نشون میده
    این برنامه رو تو پروتئوس اجرا کردن درست اجرا شده
    ولی وقتی رو میکرو پروگرام میکنم وقتی اجرا میکنم اولش اعداد قاطی پاتی نشون میده
    ولی وقتی پایه adc رو وصل میکنم همیشه 255 رو نشون میده یعنی حد اکثر ( این موضوع با هر ولتاژی صدق میکنه)
    دیگه اعصابم خرد شده لطفا یه راهنمایی بکنین
    با تشکر

    #2
    پاسخ : مشکل با adc

    سلام
    باید بگم که احتمالا ولتاژ مرجع خارجی انتخاب کردید
    لذا باس پایه های vref و avcc رو به 5 ولت وصل کنید تا مشکل حل بشه
    اینم بگم که اگه ولتاژ بالای 5 بدی به adc علاوه بر این که میکرو نمیتونه محاسبه کنه بلکه به برزخ میره
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    دیدگاه


      #3
      پاسخ : مشکل با adc

      من پایه های aref و avcc رو به ولتاژ 5 وصل کردم

      دیدگاه


        #4
        پاسخ : مشکل با adc

        بفرمایید اینم کدهای پروژه :
        #include <mega16.h>
        #include <stdlib.h>
        #include <alcd.h>
        #include <delay.h>

        int i=0;
        int c;
        char a[];

        interrupt [TIM0_OVF] void timer0_ovf_isr(void){
        i++;
        if(i==10){
        ADCSRA=0b11000111;
        c=ADCH;
        itoa(c,a);
        lcd_clear();
        lcd_puts(a);
        i=0;
        }
        }

        void main(){
        lcd_init(16);
        #asm("sei&quot
        ADMUX=0b01100011;
        ADCSRA=0b10000111;
        TCCR0=0x05;
        TCNT0=0x00;
        TIMSK=0x01;
        }

        اینم شماتیک تو پروتئوس :

        http://s6.uplod.ir/i/00672/8yam2bwlvdax.jpg


        در ضمن این پروژه رو از تو سایت dmf313.ir (همون سایت خودتون دیدم) فقط یکم تغییرش دادم

        دیدگاه


          #5
          پاسخ : مشکل با adc

          نوشته اصلی توسط mohbakh
          من پایه های aref و avcc رو به ولتاژ 5 وصل کردم
          موقع برنامه نویسی هم اعلام کردی که با چه ولتاژ یا پایه ای مقایسه کنه؟؟
          کدوم زبان؟؟
          من با دانش و آکاهی ام تمام جهالت ها رو به زانو در خواهم اورد.

          دیدگاه


            #6
            پاسخ : مشکل با adc

            یه فیلتر LC روی پایه تغذیه مثبت ADC یزارید
            اگه مرجع داخلی انتخاب کردی با یه خازن 100 نانو پایه Aref رو زمین کنید...
            تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

            www.intelart.ir


            ساخت کنترلر دما PID فازی با AVR [آموزشی]

            دیدگاه


              #7
              پاسخ : مشکل با adc

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

              دیدگاه


                #8
                پاسخ : مشکل با adc

                از پروتئوس تا عمل خیلی راهه
                شما باید اون پین که قراره دیتای انالوگ بهش وارد بشه رو روی ورودی و در حال HI-Z تنظیمش کنی...
                کدهاتون که خونده نمیشه...واسه گذاشتن کد از اون دکمه کد در محیط تایپ استفاده کنید...اینجوری کسی نمیاد کدها رو بخونه... :NO: :NO: :NO:
                من خودم اینجا میذارمش ببینیم مشکلش چیه ...

                [code=c]
                #include <mega16.h>
                #include <stdlib.h>
                #include <alcd.h>
                #include <delay.h>

                int i=0;
                int c;
                char a[];

                interrupt [TIM0_OVF] void timer0_ovf_isr(void){
                i++;
                if(i==10){
                ADCSRA=0b11000111;
                c=ADCH;
                itoa(c,a);
                lcd_clear();
                lcd_puts(a);
                i=0;
                }
                }

                void main(){
                lcd_init(16);
                #asm("sei&quot
                ADMUX=0b01100011;
                ADCSRA=0b10000111;
                TCCR0=0x05;
                TCNT0=0x00;
                TIMSK=0x01;
                }[/code]
                تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                www.intelart.ir


                ساخت کنترلر دما PID فازی با AVR [آموزشی]

                دیدگاه


                  #9
                  پاسخ : مشکل با adc

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

                  www.intelart.ir


                  ساخت کنترلر دما PID فازی با AVR [آموزشی]

                  دیدگاه


                    #10
                    پاسخ : مشکل با adc

                    یه چیز دیگه رو هم دیدم
                    ببین وقتی char[] تعریف میکنی تعداد عناصرش رو هم مشخص کن ...وقتی مشخص نکنی میکرو میره آدرس های بعدی حافظه رو میخونه و مشخصه که عدد عجیب غریب نشون بده:

                    [code=c]char a[10];[/code]
                    تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                    www.intelart.ir


                    ساخت کنترلر دما PID فازی با AVR [آموزشی]

                    دیدگاه


                      #11
                      پاسخ : مشکل با adc

                      اقا نه با ADCH و ADCL و ADCW درست شد نه با مشخص کردن تعداد عناصر متغیر

                      دیدگاه


                        #12
                        پاسخ : مشکل با adc

                        ممنون از همه
                        خودم مشکل رو حل کردم مقاومت پول اپ رو درست نذاشته بودم

                        دیدگاه


                          #13
                          پاسخ : مشکل با adc

                          پول اپ واسه کجا؟؟؟
                          تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                          www.intelart.ir


                          ساخت کنترلر دما PID فازی با AVR [آموزشی]

                          دیدگاه


                            #14
                            پاسخ : مشکل با adc

                            سلام
                            شما در زیر برنامه وقفه از دستور
                            [code=c]lcd_clear();[/code]
                            استفاده میکنی احساس پرش در السی دی نمیکنی؟
                            بهتر نیست از دستور sprintf استفاده کنی؟
                            امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                            دیدگاه

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