اطلاعیه

Collapse
No announcement yet.

تنظیمات Ad7715

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

    تنظیمات Ad7715

    سلام دوستان
    بنده در حال انجام یک پروژه با AD7715 هستم تو این پروژه من قصد دارم که سیگنال یک لودسل (0.5 تا 2 میلی ولت) رو با استفاده از یه AD7715 و یک AVR و یه MAX233 به کامپیوتر منتقل کنم در سمت کامپیوتر هم با یه برنامه ویژوال بیسیک آن را نمایش بدم مراحل انجام پروژه هم تا حد زیادی انجام دادم یعنی مدار رو روی برد بورد بستم برنامه ویژال بیسیک رو هم نوشتم سیگنال آنالوگ رو هم تونستم که از طریق کامپیوتر دریافت کنم اما مشکلی که دارم اینه که :
    1) در زمان دریافت سیگنال وقتی که هیچ وزنه ای روی لودسل نیست در برنامه باید عدد 0.5 میلی ولت رو دریافت کنم اما این عدد مدام تغییر میکنه و در حدود 2 تا سه گرم خطا دارم و این موضوع زمانی که داده هام رو روی گراف میارم باعث پرش روی نمودار میشه
    2) زمانی که به لودسل نیرو وارد میکنم تا چند لحظه اعداد نمایش داده شده به صورت نا منظم بین مقادیر ماکزییم و منییمم قابل اندازه گیری توسط لودسل تغییر میکنه
    3) دز زمان نمایش اعداد وقتی هیچ نیروی هم به لودسل وارد نمیکنم ما بین هر 4 یا 5 نمونه که از مدار میگیریم یک سری اعداد که مقادیر ماکزییم و مینیمم هم هست به صورت مکرر نمایش داده میشه
    حالا من میخواستم بدونم که آیا این مشکل میتونه ازنوع تنظیمات AD7715 باشه آخه من تودیتاشیت رو که خوندم خیلی از کالبریشن صحبت کرده بود ولی من فقط روی self Calibration جواب گرفتم و روی بقیه مد ها هیچ جوابی نگرفتم در ضمن بقیه تنظیمات AD7715 رو هم به این صورت انجام دادم:
    کریستال 2.4 -فرکانس نمونه برداری 60 -گین 1 -حالت سنکرو غیرفعال-بافر آنالوگ فعال(BUF ) خوشحال میشم که منو راهنمایی کنید تا بعد از انجام کامل پروژ آن رو در اختیار همگان قرار بدیم ممنون

    #2
    پاسخ : تنظیمات Ad7715

    بچه ها کسی چیزی نمیدونه؟؟؟

    دیدگاه


      #3
      پاسخ : تنظیمات Ad7715

      نوشته اصلی توسط hassan1366
      بچه ها کسی چیزی نمیدونه؟؟؟
      سلام
      .دوست عزیز این تاپیکی که بهت معرفی میکنم کلا در مورد لودسل هست که از ad7780-7730-7715 استفاده کردند .بادقت بخونش انشاله که مفید واقع بشه

      http://www.eca.ir/forum2/index.php?topic=21006.0

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

      دیدگاه


        #4
        پاسخ : تنظیمات Ad7715

        http://www.eca.ir/forum2/index.php?t...2719#msg422719

        دیدگاه


          #5
          پاسخ : تنظیمات Ad7715

          سلام و با تشکر از دوستانی که وقت گذاشتن و جواب دادن اما با توجه به اون چه قبلا گفتم من در راه اندازی AD7715 مشکلی ندارم و مقادیر تغییرات لودسلم رو که در حدود 0.5 میلی ولته رو هم به خوبی مانیتور میکنم اما مشکل من این هاست:
          1) در زمان دریافت سیگنال وقتی که هیچ وزنه ای روی لودسل نیست در برنامه باید عدد 0.5 میلی ولت رو دریافت کنم اما این عدد مدام تغییر میکنه و در حدود 2 تا سه گرم خطا دارم و این موضوع زمانی که داده هام رو روی گراف میارم باعث پرش روی نمودار میشه
          2) زمانی که به لودسل نیرو وارد میکنم تا چند لحظه اعداد نمایش داده شده به صورت نا منظم بین مقادیر ماکزییم و منییمم قابل اندازه گیری توسط لودسل تغییر میکنه
          3) دز زمان نمایش اعداد وقتی هیچ نیروی هم به لودسل وارد نمیکنم ما بین هر 4 یا 5 نمونه که از مدار میگیریم یک سری اعداد که مقادیر ماکزییم و مینیمم هم هست به صورت مکرر نمایش داده میشه
          حالا من میخوام بدونم که آیا این مشکل میتونه از نوع کالیبره کردن AD7715 باشه آخه همان طور که میدونید AD7715 چهار مود کالیبره داره یا میتونه از نوع برنامه نویسیم باشه یا حتی مداری که بستم البته مدار رو من مطابق دیتا شیت بستم. من که بیشتر شکم به حالت های کالیبره است حالا اگر کسی از دوستان چیزی از انواع کالیبره این آیسی میدونه ما رو هم بی نصیب نزاره خدا خیرتون بده چون تا اونجایی که من داخل دیتاشیت خوندم مطالب داخل دیتاشیت در این خصوص گویا نبود

          دیدگاه


            #6
            پاسخ : تنظیمات Ad7715

            سلام دوستان یعنی کسی تو این سطح با ad7715 کاری انجام نداده اگر فکری به ذهنتون میرسه بگید چون پروژه من 32 تا لودسل داره که بعداز این که این مشکلش تو این مرحله حل بشه میخوام برای هر 4 تا لودسل یک 4052 بزارم تا خروجی ها شون رو مالتی پلکس کنم بعد با RS487 بیارمشون روی باس 485 بعد بدم به کامپیوتر که در کل کار جالبیه اگر برو بچ کمک کنن که پروژه خوب جلو بره بعد از تموم شدن فایل کامل پروژه که شامل برنامه ویژوال بیسک سمت کامپیوتر هم میشه رو تو سایت میزارم که همه استغفاده کنن تازه برنامه کامپیوترش رو با استفاده از LABVIEW هم دارم مینویسم که فکر کنم در نوع خودش جالبه!!!!

            دیدگاه


              #7
              پاسخ : تنظیمات Ad7715

              سلام
              من با این کد این آی سی رو درایو کردو و زمانی که به ورودیش صفر ولت میدم صفر رو ارسال میکنه اما زمانیکه ورودی بیش از صفر میدم خروجی های غلط ارسال میشه.
              کد:
              // AVR Core Clock frequency: 16.000000 MHz
              
              #include <mega16.h>
              #include <alcd.h>
              #include <stdio.h>
              #include <spi.h>
              #include <delay.h>
              #include <stdlib.h>
              
              #define ADC_RESET PORTB.3
              #define ADC_CS  PORTB.4
              #define ADC_DRDY PINB.2
              #define high   1
              #define low    0
              
              void adc_init(void); 
              unsigned int read_spi();
              
              void main(void)
              {
              float resultf;
              
              PORTB=0x00;
              DDRB=0xB8;
              
              // USART initialization
              // Communication Parameters: 8 Data, 1 Stop, No Parity
              // USART Receiver: Off
              // USART Transmitter: On
              // USART Mode: Asynchronous
              // USART Baud Rate: 9600
              UCSRA=0x00;
              UCSRB=0x08;
              UCSRC=0x86;
              UBRRH=0x00;
              UBRRL=0x67;
              
              // SPI initialization
              // SPI Type: Master
              // SPI Clock Rate: 1000.000 kHz
              // SPI Clock Phase: Cycle Start
              // SPI Clock Polarity: High
              // SPI Data Order: MSB First
              SPCR=0x5D;             
              SPSR=0x00;
              
              lcd_init(16);
              adc_init();
              while (1)
                 {          
                  resultf = read_spi();  
                  printf("Data: %d\r",resultf);
                  delay_ms(500) ;
                 }
              }
              
              void adc_init(void)
              {
              	printf("Please wait\r");
              	ADC_RESET=low; 
                 
              	ADC_CS=low;	//Set low to AD7715 chip select low pin
              	ADC_RESET=high;	//Set high to AD7715 reset low pin
              	ADC_CS=high;
              	delay_ms(3000);
                
                ADC_CS=low;
              	spi( 0x10 );
              	ADC_CS=high;	
              	ADC_CS=low;			//Communications Register
              	spi( 0x7C);     //250Hz update rate
              	ADC_CS=high;		//Setup Register info here
                  printf("Calibrated\r");
                  delay_ms(1000);
              }
              
              unsigned int read_spi()
              {
               unsigned result;
               while ( ADC_DRDY);
               while (! ADC_DRDY );
               while ( ADC_DRDY );
               ADC_CS=low;
               spi(0x38);
               ADC_CS=high;
               ADC_CS=low;
               result=(unsigned) spi(0)<<8;
               ADC_CS=low;
               result|=spi(0);
               result=(unsigned) ((unsigned long) result);
               return result;
              
              }
              تقدیر تقویم انسانهای عادی ، تغییر تدبیر انسانهای عالیست.

              دیدگاه


                #8
                پاسخ : تنظیمات Ad7715

                oo:
                تقدیر تقویم انسانهای عادی ، تغییر تدبیر انسانهای عالیست.

                دیدگاه


                  #9
                  پاسخ : تنظیمات Ad7715

                  :biggrin: خوشبختانه مشکلم حل شد، بجای متغیر از نوع float > unsigned int تعریف کردم، فکر کنم تو کانفیگ کدویژن متغیر ورودی sprintf رو float تنظیم کنی هم درست شه.
                  تقدیر تقویم انسانهای عادی ، تغییر تدبیر انسانهای عالیست.

                  دیدگاه

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