اطلاعیه

Collapse
No announcement yet.

adc مدار

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

    adc مدار

    یک سنسور دما و چندتا ولوم به adc وصل کردم و برنامه رو نوشتم و برنامه درست کار میکرد و هیچ مشکلی نداشت اما بعضی قطعه هاشو لحیم کاریشو مرتب کردم کلا پورت adc از کار افتاد بقیه مدارم درست داره کار میکنه lcd و قسمت های دیگه فقط مشکل ام اینه پورت adc همش عدد 1023 رو نشون میده با اینکه رو پایه های adc ولتاژ ها حدود یک ولت هست.4 تا adc همزمان هر4 تاش از کار افتاده میکرو رو عوض کردم هیچ فرقی نکرد

    #2
    پاسخ : adc مدار

    AVcc و AREF مدارو چک کن
    گفت که دیوانه نهی لایق این خانه نهی

    دیدگاه


      #3
      پاسخ : adc مدار

      نوشته اصلی توسط Finder_
      AVcc و AREF مدارو چک کن
      مشکلی ندارن جفتشون :sad:

      دیدگاه


        #4
        پاسخ : adc مدار

        یک خازن 100 نانو با تغذیه موازی کردم تغذیه امم از سویچینگه
        میتونه مشکل از این باشه؟

        دیدگاه


          #5
          پاسخ : adc مدار

          نوشته اصلی توسط masror_d
          یک خازن 100 نانو با تغذیه موازی کردم تغذیه امم از سویچینگه
          میتونه مشکل از این باشه؟
          100 نانو نزار
          1000 میکرو بزار!
          ========
          درضمن شما گفتی که بعد از مرتب کردن لحیم ها اینجور شده!
          پس با یه مسواک که ازش استفاده ای ندارید بین لحیم کاری ها بمالید .
          اگه بازم درست نشد از تینر فوری هم استفاده کنید.
          1 در دنیا 100 در آخرت (درس و مشق فعالیتمو تو انجمن کم کرده)
          من آنچه شرط بلاغست با تو میآ‌گویم. تو خواه از سخنم پند گیر و خواه ملال. سعدی
          !Electronic On! Programming On
          هوشمندانه سوال بپرسیم!
          http://ir02x6.persiangig.com/logo/eca/tanks_01.png

          دیدگاه


            #6
            پاسخ : adc مدار

            چرا 1000 میکرو؟

            دیدگاه


              #7
              پاسخ : adc مدار

              سلام


              خیالت رو راحت کنم
              نویز فقط کاهش دقت داری. مثلا تعداد پرش عدد ADC میکرو ات رو زیاد می کنه
              مشکل شما از نویز نیست و یه مشکل ریشه ای هست

              برنامه و شماتیک و PCB ات رو بذار.
              برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
              http://hosseinwalkingday.com

              دیدگاه


                #8
                پاسخ : adc مدار

                نوشته اصلی توسط مرتضی م.
                سلام


                خیالت رو راحت کنم
                نویز فقط کاهش دقت داری. مثلا تعداد پرش عدد ADC میکرو ات رو زیاد می کنه
                مشکل شما از نویز نیست و یه مشکل ریشه ای هست

                برنامه و شماتیک و PCB ات رو بذار.
                ایشون گفتن که من قبل از اینکه لحیم هارو مرتب کنم مدارم خب کار میکرده.
                پس نگو شماتیک و pcb بزار..........

                اضافه شده در تاریخ :
                نوشته اصلی توسط masror_d
                چرا 1000 میکرو؟
                چون بهتر نویز رو میگیره.
                1 در دنیا 100 در آخرت (درس و مشق فعالیتمو تو انجمن کم کرده)
                من آنچه شرط بلاغست با تو میآ‌گویم. تو خواه از سخنم پند گیر و خواه ملال. سعدی
                !Electronic On! Programming On
                هوشمندانه سوال بپرسیم!
                http://ir02x6.persiangig.com/logo/eca/tanks_01.png

                دیدگاه


                  #9
                  پاسخ : adc مدار

                  کدوم قطعات رو لحیم کاریشو مرتب کردین؟
                  مشکل باید از همون لحیم کاری باشه.
                  به احتمال زیاد مربوط میشه به قسمت تغذیه ADC و یا ولتاژ مرجع.
                  لحیم کاریارو دوباره خوب چک کنید.
                  رو PCB کار میکنید یا فیبر سوراخدار؟

                  دیدگاه


                    #10
                    پاسخ : adc مدار

                    تقریبا همه مدار و به حالت قبل برگردوندم
                    روی پایه های adc ولتاژ مختلف رو دارم اما پایه ای که به سنسور دما وصله عدد 511 و ولوم هام عدد 1023 رو نشون میده و اصلا براش مهم نیست سنسور باشه یا نه
                    میکروی دیگه رو امتحان میکنم همه رو صفر نشون میده یعنی عددی که سنسور دما داره میده و همچنین ولوم هام صفره!!!!! یکی میکرو همه رو 1023 و سنسور دما رو 511 و میکروی دیگه همه رو 0!!!!!

                    دیدگاه


                      #11
                      پاسخ : adc مدار

                      خب شما میکرو رو بردار، بدون میکرو با ولتمتر خروجی ولومهارو روی سوکت میکرو بگیر ببین چجوریه

                      دیدگاه


                        #12
                        پاسخ : adc مدار

                        این کار و که همون اول انجام دادم، کلا adc مدارم روی پایه های ورودیش ولتاژهایی که باید باشه هست اما میکرو انگار adc ایش قطع شده

                        دیدگاه


                          #13
                          پاسخ : adc مدار

                          کد:
                          /*****************************************************
                          This program was produced by the
                          CodeWizardAVR V2.05.0 Professional
                          Automatic Program Generator
                          © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
                          http://www.hpinfotech.com
                          
                          Project : 
                          Version : 
                          Date  : 3/2/2015
                          Author : 
                          Company : 
                          Comments: 
                          
                          
                          Chip type        : ATmega32
                          Program type      : Application
                          AVR Core Clock frequency: 8.000000 MHz
                          Memory model      : Small
                          External RAM size    : 0
                          Data Stack size     : 512
                          *****************************************************/
                          
                          #include <mega32.h>
                           #include <stdio.h>
                          
                          #include <delay.h>
                          
                          // Alphanumeric LCD Module functions
                          #include <alcd.h>
                          
                          #define ADC_VREF_TYPE 0x40
                          
                          // Read the AD conversion result
                          unsigned int read_adc(unsigned char adc_input)
                          {
                          ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
                          // Delay needed for the stabilization of the ADC input voltage
                          delay_us(10);
                          // Start the AD conversion
                          ADCSRA|=0x40;
                          // Wait for the AD conversion to complete
                          while ((ADCSRA & 0x10)==0);
                          ADCSRA|=0x10;
                          return ADCW;
                          }
                          int a;
                          char lcd[9];
                          // Declare your global variables here
                          void main(void)
                          {
                          // Declare your local variables here
                          
                          // Input/Output Ports initialization
                          // Port A initialization
                          // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                          // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
                          PORTA=0x00;
                          DDRA=0x00;
                          
                          // Port B initialization
                          // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                          // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
                          PORTB=0x00;
                          DDRB=0x00;
                          
                          // Port C initialization
                          // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                          // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
                          PORTC=0x00;
                          DDRC=0x00;
                          
                          // Port D initialization
                          // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                          // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
                          PORTD=0x00;
                          DDRD=0x00;
                          
                          // Timer/Counter 0 initialization
                          // Clock source: System Clock
                          // Clock value: Timer 0 Stopped
                          // Mode: Normal top=0xFF
                          // OC0 output: Disconnected
                          TCCR0=0x00;
                          TCNT0=0x00;
                          OCR0=0x00;
                          
                          // Timer/Counter 1 initialization
                          // Clock source: System Clock
                          // Clock value: Timer1 Stopped
                          // Mode: Normal top=0xFFFF
                          // OC1A output: Discon.
                          // OC1B output: Discon.
                          // Noise Canceler: Off
                          // Input Capture on Falling Edge
                          // Timer1 Overflow Interrupt: Off
                          // Input Capture Interrupt: Off
                          // Compare A Match Interrupt: Off
                          // Compare B Match Interrupt: Off
                          TCCR1A=0x00;
                          TCCR1B=0x00;
                          TCNT1H=0x00;
                          TCNT1L=0x00;
                          ICR1H=0x00;
                          ICR1L=0x00;
                          OCR1AH=0x00;
                          OCR1AL=0x00;
                          OCR1BH=0x00;
                          OCR1BL=0x00;
                          
                          // Timer/Counter 2 initialization
                          // Clock source: System Clock
                          // Clock value: Timer2 Stopped
                          // Mode: Normal top=0xFF
                          // OC2 output: Disconnected
                          ASSR=0x00;
                          TCCR2=0x00;
                          TCNT2=0x00;
                          OCR2=0x00;
                          
                          // External Interrupt(s) initialization
                          // INT0: Off
                          // INT1: Off
                          // INT2: Off
                          MCUCR=0x00;
                          MCUCSR=0x00;
                          
                          // Timer(s)/Counter(s) Interrupt(s) initialization
                          TIMSK=0x00;
                          
                          // USART initialization
                          // USART disabled
                          UCSRB=0x00;
                          
                          // Analog Comparator initialization
                          // Analog Comparator: Off
                          // Analog Comparator Input Capture by Timer/Counter 1: Off
                          ACSR=0x80;
                          SFIOR=0x00;
                          
                          // ADC initialization
                          // ADC Clock frequency: 1000.000 kHz
                          // ADC Voltage Reference: AREF pin
                          ADMUX=ADC_VREF_TYPE & 0xff;
                          ADCSRA=0x83;
                          
                          // SPI initialization
                          // SPI disabled
                          SPCR=0x00;
                          
                          // TWI initialization
                          // TWI disabled
                          TWCR=0x00;
                          
                          // Alphanumeric LCD initialization
                          // Connections specified in the
                          // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
                          // RS - PORTB Bit 0
                          // RD - PORTB Bit 2
                          // EN - PORTB Bit 3
                          // D4 - PORTB Bit 4
                          // D5 - PORTB Bit 5
                          // D6 - PORTB Bit 6
                          // D7 - PORTB Bit 7
                          // Characters/line: 8
                          lcd_init(8);
                          
                          while (1)
                             {
                          a=read_adc(0);
                          lcd_gotoxy(0,0);
                          sprintf(lcd,"%u",a);
                          lcd_puts(lcd);
                          delay_ms(100);
                             }
                          }

                          دیدگاه


                            #14
                            پاسخ : adc مدار

                            با دو تا میکرو تست کردم یکیشون 0 نشون میده یکیشون 1023

                            دیدگاه


                              #15
                              پاسخ : adc مدار

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

                              دیدگاه

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