اطلاعیه

Collapse
No announcement yet.

راه اندازی سنسور

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

    راه اندازی سنسور

    با عرض سلام خدمت همه دوستان
    در این تایپیک قرار ما اینه که به بررسی مشکلات الکترونیکی، پردازش سیگنال و داده کاوی یک سنسور بپردازیم. امیدوارم که همه دوستانی که میتونن، مشارکت کنن تا کار رو پیش ببریم. (اول لینکهای زیر رو ببینید تا بریم سر توضیحات).
    و اما یه توضیح اولیه راجع به این سنسور. این سنسور برای تخمین انرژی مصرفی (کالری مصرفی) یک ورزشکار خواهد بود. ما در این سنسور از یک شتاب سنج (ADXL330)، یک ماژول رسانایی پوست (GSR یا Galvanic Skin Responce) و یک PPG (پلیستموگراف) استفاده خواهیم کرد.
    خب اولی که معلوم چیه، یه شتاب سنج سه بعدی. دومی هم از روی رسانایی پوست شخص میزان فعالیت عصب سمپاتیک رو تشخیص میده (یه جورایی میشه از روی عصب سمپاتیک عملکرد قلب رو فهمید) و سومی بر مبنای تاباندن نور مادون قرمز به یک اندام از بدن (مثل لاله گوش) و گرفتن بازتاب مادون قرمز میتونه نبض شخص رو تشخیص میده. من در لینک های زیر فایل PCB مدار مادر رو قرار دادم (اگر برنامه پرتل رو نداشتید میتونید عکس رو باز کنید).


    اینم لینک فایل پرتل:
    http://www.uplooder.net/cgi-bin/dl.c...ea02395115517b

    و اما اولین مشکل
    من وقتی تمام اجزاء رو روی این برد نصب میکنم بعد X ماژول شتاب سنجم دچار نویز شدید میشه و اصلا ثابت نمیشه. طبق راهنمایی جناب اصغریان که در تایپیک دیگری فرمودن ممکنه به دلیل رعایت نکردن صفر مشترک باشه می خواستم بدونم من صفر مشترک رو رعایت کردم؟ میتونه دلیل نویز همین باشه. البته یکی از دوستان هم گفتند باید سر Vref ها هم خازن قرار بدم.
    از همه دوستان الکترونیکی خواهش میکنم راهنمایی بفرمایید :smile:

    #2
    پاسخ : راه اندازی سنسور برای بررسی انرژی مصرفی یک ورزشکار

    متاسفانه عکستون باز نشد و نتونستم ببینم و منم نمیتونم رو تبلت فایل پروتل رو ببینم. اما در باره ی. Vref خدمتتون عرض کنم این پایه بسیار حساسه تو میکرو به صورتی که اگر دیتاشیت میکروتون رو ببینید یه مدار فیلتر کوچیک emi متشکل از یک سلف و دوتا خازن گذاشته شده و دیتاشیت تاکید کرده که در صورتی هم که از adc استفاده نمیکنید مدار این پایه رو رعایت کنید، اما خب اکثر دوستان رعایت نمیکنند، موضوع دیگه که تو نویز تاثیر شدیدی داره منبع تغذیتون هست اگر از منبع سوییچ استفاده میکنید حتما خازن مایلار رو رعایت کنید.
    در نهایت بهتر بود مبحثتون رو تو تاپیک قبلی ادامه میدادید.
    Someone who can change the world
    ELECTRONIC ENGINEER

    دیدگاه


      #3
      پاسخ : راه اندازی سنسور برای بررسی انرژی مصر&

      نوشته اصلی توسط tayebeh_it83
      .... من در لینک های زیر فایل PCB مدار مادر رو قرار دادم ...
      با سلام

      به طور خلاصه خدمت تان عرض کنم که :

      1). بنده هم عکسی را ندیدم. لینک هایی که قرار داده اید به صورت FTP نوشتید ( یا هستند) که آدرس های FTP بدین صورت باز نمی شوند. شما باید لینک های تان را دست کم در قالب Http قرار بدهید. و یا ... . .

      2) هنگامی که دارید مطلب تان را تایپ می کنید اگر می خواهید عکسی را به مطلب تان اضافه کنید ، راه راحت تر این است که آدرس Http را به طور کامل بنویسید ، و با ماوس آدرسی را که تایپ کرده انتخاب/Select کنید تا زمینه آبی شده و خطوط آدرس سفید رنگ شوند و سپس از نوار ابزار ردیف دوم (دقیقا زیر حرف B ، اولین آیکون سمت راست "عکس مونالیزا &quot را کلیک کنید. نرم افزار به ابتدا و انتهای خط شما دوتا گزینه[i m g] [/ i m g] اضافه می کند که در هنگام نمایش به طور اتوماتیک عکس داخل تالار گفتگو وارد می شود.

      3). فایل مدار چاپی در حال حاضر کمکی به بررسی مسئله شما نمی کند. بهتر است که یک عکس از شماتیک مدارتان اینجا بگذارید. دست کم نقشه شماتیک را با دست بکشید و با یک دوربین از نقشه کشیده شده عکس بگیرید و به روش بالا این عکس را الصاق Upload کنید.یا اگر شماتیک داخل کامپیوترتان هست با PrntScr از آن عکس بگیرید.

      4). راجع به جزئیات سنسور های موجود در مسئله تان توضیحات بیشتری بدهید. مثلا من خودم نمی دانم که معنی پلیستموگراف چیست و در مسئله/پروژه شما چه وظیفه ای دارد. پیشنهاد من این است که جزئیات را در بیانی شبیه یک تابع عنوان بفرمائید (که البته خیلی جزئی اشاره کرده اید اما کافی نیست). بگوئید که ورودی های شما چه هستند و برای خروجی های آن چه چیزهای متصور و یا مورد انتظار است.

      5). فعلا به نظر می رسد که مشکل شما در خصوص سنسور شتاب سنج است . لذا به شما پیشنهاد می کنم که به جای قرائت مقادیر آنالوگ ، بروید سراغ سنسور شتاب سنج ADXL345 که هر دو پروتکل i2c & SPI را حمایت می کند . این [glow=red,2,300]ویدئو[/glow] را ببینید » http://www.aparat.com/v/L9djh


      6). با توجه به اینکه عملا داخل میکروچیپ PIC فقط یک مبدل انالوگ به دیجیتال وجود دارد پس تعریف ولتاژ مرجع خارجی دست و پا گیر می شود. زیرا در صورتیکه ولتاژ مرجع Vref خوب و به اندازه کافی صاف و یکنواخت نباشد، این ولتاژ مرجع با قدرت کامل باعث بی ثباتی در تبدیلات آنالوگ به دیجیتال می شود. یعنی که سر و کله نویز ؛ به طور مشهود ؛ پیدا می شود. برای درک بهتر به آدرس زیر بروید :
      http://techtrain.microchip.com/webseminars/QuickList.aspx
      و آنجا این عبارت را جستجو کنید :
      "Techniques That Reduce System Noise in ADC Circuits"

      7). نوشته بودید که "یکی از دوستان هم گفتند باید سر Vref ها هم خازن قرار بدم". با احتراام فراوان به این نکته باید پرسید که چه خازنی؟ به چه اندازه ظرفیت؟ دقیق کجا باید قرار دارد؟ ...

      8) البته همانطور که می دانید بسته به اینکه شما از کدام خانواده یا سری PIC ها استفاده می کنید . تعاریف ولتاژ مرجع خارجی محدودیت هایی دارد به عنوان مثال در سری 16 : نمی توان اختلاف ولتاژ بین پایه های مثبت و منفی مرجع را کمتر از 2 ولت قرار داد. همچنین قانون بعدی این است که ولتاژ مرجع نمی تواند کمتر از AVdd-2.5 باشد یعنی که اگر شما میکرو را با 5 ولت تغذیه کنید پس کمترین ولتاژ مرجع برابر 2.5 ولت است که تفکیک پذیری 2 میلی ولت را دارد. پس یک گزینه بهتر این است که شما مبدل داخلی را فراموش کنید و از یک چیپ A/D دیگر بدون دغدغه استفاده کنید و نتیجه را به صورت دیجیتال به میکرو اعمال کنید.

      چون شما کلی نوشتید ، این قدر دامنه جواب ها وسیع شد.

      و اما یک نکته : اگر فکر می کنید که مطلبی برایتان جالب یا مفید بوده ، خیلی خوب است که با استفاده از گزینه "تشکر کردن که کنارش یک علامت ستاره هم هست" فیدبک بدهید.
      والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

      هوشمندانه بپرسيد...

      دیدگاه


        #4
        پاسخ : پاسخ : راه اندازی سنسور

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

        به طور خلاصه خدمت تان عرض کنم که :

        1). بنده هم عکسی را ندیدم. لینک هایی که قرار داده اید به صورت FTP نوشتید ( یا هستند) که آدرس های FTP بدین صورت باز نمی شوند. شما باید لینک های تان را دست کم در قالب Http قرار بدهید. و یا ... . .
        من زیاد با فروم ها کار نکردم ناشیم.لینک ها رو اصلاح کردم. مدار پلیستموگراف یک فرستنده و گیرنده IR داره، و یکسری خازن و مقاومت و یک اپ امپ LM358N و یک BC547 و اینم عکسش

        در واقع من فقط می خوام ضربان قلب شخص رو در یک دقیقه بشمارم.
        و اما نکته پنجم که اشاره فرمودید من فعلا نمی تونم شتاب سنجم رو عوض کنم، اگر امکانش هست روی همین کارم کنیم. میکروم هم PIC16f877A هست. در مورد نکته 8 هم منظورتون رو در مورد چیپ A/D لطفا بیشتر توضیح بدید (من کارشناسی هم IT بودم و در الکترونیک یک فرد مبتدی هستم، البته دارم الکترونیک یک و دو رو میرم کلاس). بعضی از نکاتی که شما و abritco فرمودین رو باید فرصت بدید بیشتر مطالعه کنم. برام یه خورده سنگینه. به هر حال ممنون که وقت میذارید

        دیدگاه


          #5
          پاسخ : راه اندازی سنسور

          با سلام

          خیلی با حرف شما موافق نیستم که الکترونیک خواندین یا نخواندین . آقای مهندس ایرج یزدانبخش که یکی از مدیران موفق ایران هستند در یک سخنرانی از ایشان شنیدم که گفتنند : تنها یک عامل برای موفقیت وجود دارد و آن عشق است. من خیلی آدم های موفقی در صنعت دیدم که رشته شان با کارشان تناسبی نداشته ولی وقتی با شون صحبت می کنید ، لذت مکالمه را هیچ وقت نمی توانید فراموش کنید. در همین تالار گفتگو آقای مهندس ملک حسینی داریم فوق لیسانس عمران دارند اما کارهای الکترونیکی شان را وقتی می بینید ؛ تحسین می کنید و لذت می برید. کار نیکو کردن از پُر کردن است

          بگذریم.... [glow=red,2,300]شهید دکتر بهشتی[/glow] : هر کس که بخواهد کاری را انجام دهد ؛ راهش را و آن کس که نخواهد ؛ بهانه اش را پیدا می کند.

          1) َA/D خارجی یعنی اینکه شما به هردلیلی نخواهید از مبدل داخلی میکرو استفاده کنید. و نیاز است که سیگنال آنالوگ به دیجیتال تبدیل شود پس از یک قطعه دیگری استفاده می فرمائید مثل یکی از اعضا خانواده ADC0800 (مثلاً).

          2) نقشه فیبر مدار چاپی شما : محل لحیم کاری برای قطعات قطرشان زیاد جالب نیست. یعنی پیش فرض پروتل مقدار مناسبی نیست. باید یک کم قطر را برای ماندگاری لحیم دور قطعات بیشتر کنید. البته اگر که هنوز فیبر مدار چاپی تان را نساخته اید و اگر هم که ساخته اید با اهم متر بررسی کنید که همه اتصالات به صورت کاملا صحیح به هم متصل باشند . یعنی مقدار مقاومت شان صفر 0 باشد. بررسی کنید که آیا همه خطوط به اندازه کافی رسانایی دارند. اگر ندارند مقداری قلع اندودشان کنید.

          3) یادتان نره که هرچی زمین Ground هست به هم وصل کنید حتی اگر دو تا برد دارید حتما یک سیم باید زمین را بین همه مشترک کنند.

          4) برای اندازه گیری پالس قلب چرا یک دقیقه ؟؟ شش ثانیه مثلا بخوانید و ضرب در 10 کنید. یک دقیقه خیلیی طولانی است.

          اما یادم هست که یک سوال هنوز برایتان باقی مانده که به همین دلیل هم این تاپیک را ساخته اید. این بود که خروجی محور ایکس نوسانی است. قبلش درست بوده اما الان نوسان می کند! درسته؟ اولین پاسخی که به ذهن من میرسد این است که باید یک چیزی از چشم تان در رفته باشد ، اینقدر کوچک که به آن اهمیتی نداده اید... مثل مواردی که در بند 2 به آن اشاره کرده ام. چون قبلش گفتید که کار می کرده اما الان کار نمی کند !


          البته شاید هم تا الان مسئله را حل کرده باشید. باز هم اگر سوالی هست در حد توان و بضاعت ناچیز م در خدمت تان هستم.

          با هم موفق باشیم
          والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

          هوشمندانه بپرسيد...

          دیدگاه


            #6
            پاسخ : راه اندازی سنسور برای بررسی انرژی مصرفی یک ورزشکار

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

            اضافه شده در تاریخ :
            شماتیک مدار اصلی


            شماتیک مدار PPG


            شماتیک مدار GSR

            دیدگاه


              #7
              پاسخ : راه اندازی سنسور

              با عرض سلام مجدد خدمت دوستان
              من شماتیک برد اصلی و بقیه سنسورها رو قرار دادم. در برد اصلی من فعلا PPG رو برداشتم و اصلا قراره که خروجیشو به یک پین دیجیتال وصل کنم (یه اشتباه از طرف من). حالا من چهار تا ورودی آنالوگ دارم که به پینهای A0,A4,A5,A6 وصل میشن. سه تای اولی مربوط به شتاب سنج هستن و تغذیه شتاب سنج 3.3 ولت هست. حالا برای اینکه رسانایی پوست (GSR) هم در این رنج باشه من ولتاژ 5 ورودی روی این سنسور رو به 3.3 تغییر دادم و داره کار میکنه. همه خروجی با ولتمتر کاملا منطقی و درسته. من در کدی که براتون گذاشتم از رفرنس استفاده کردم.

              کد:
              #include <16F877A.h>
              #use delay(clock=4000000)
              #include "Flex_LCD420.c"
              #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
              
              void initialisations(){ 
                
                setup_adc_ports(AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF);
                setup_adc(ADC_CLOCK_INTERNAL );
                
                setup_psp(PSP_DISABLED);
                setup_spi(SPI_SS_DISABLED);
                setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
                setup_timer_1(T1_DISABLED);
                setup_timer_2(T2_DISABLED,0,1);
                setup_comparator(NC_NC_NC_NC);
                setup_vref(FALSE);
                lcd_init();
              }
              
              int x, y, z, g;
              void Main(){
                
                initialisations();
              
                SET_TRIS_C(0x00);//set all pin as output 
                SET_TRIS_D(0xff);//set all pin as input 
                 
                
                lcd_clear();
                while(TRUE)
                {
                 //delay_ms(5);
                 set_adc_channel(0);
                 x = read_adc();
                 
                 set_adc_channel(4);
                 y = read_adc(); 
                 
                 set_adc_channel(5);
                 z = read_adc();
                 
                 set_adc_channel(6);
                 g = read_adc();   
                 
                 lcd_gotoxy(1,1);
                 printf(lcd_putc,"x:%D",x);
                 printf(lcd_putc,",y:%D",y);   
                 printf(lcd_putc,",z:%D",z);
                 lcd_gotoxy(1,2);
                 printf(lcd_putc,"g:%D",g);    
                         
                }
              }
              منتها وقتی GSR با شتاب سنج اضافه میشه میکرو قاطی میکنه و کلی نویز روی خروجی X شتاب سنج و خود خروجی GSR میوفته(البته در چیزی که من در LCD میبینم نه خروجی واقعی سنسورها). طبق راهنمایی جناب اصغریان ADC داخلی میکرو جواب نمیده و باید از ADC خارجی استفاده کنم، که ایشون ADC0804 رو پیشنهاد کردن. می خواستم اگر امکانش هست برای بستنش راهنمایی بفرمایید و یا یک لینک معرفی کنید تا من سریعتر به نتیجه برسم.
              ممنون از همگی

              دیدگاه


                #8
                پاسخ : راه اندازی سنسور

                نوشته اصلی توسط tayebeh_it83
                . می خواستم اگر امکانش هست برای بستنش راهنمایی بفرمایید و یا یک لینک معرفی کنید تا من سریعتر به نتیجه برسم.
                بسم الله الرحمن الرحیم

                با احترام به خدمت تان عرض کنم (پیرو حرف های قبلی ام) موارد زیر بر روی شماتیک مدار شما وجود داشت که خدمت تان عرض کردم و حالا خلاصه بیان می کنم:
                1) خروجی پالس شما یک ورودی دیجیتال است که شما آن را اصلاح فرموده اید.
                2) چون شتاب سنج در محدوده 3.3 ولت کار می کند شما سه گزینه در پیش روی دارید:
                الف: میکرو را با 3.3 ولت تغذیه کنید پس دیگر نیازی به ساختن ریفرنس ندارید.
                ب : همانطور که قبلا به خدمت تان عرض شد به جای سنسور شتاب مد نظرتان از مدل ADXL345 استفاده کنید که یک ویدئو هم برایتان ضمیمه کردم در اینحالت نیازی نیست که ریفرنس داشته باشید و سه تا ورودی آنالوگ میکرو آزاد می شود. ولتاژ 3.3 ولت.
                ج: هیچ چیز را تغییر ندهید . میکرو با 5 ولت و شما یک ریفرنس 3.3 بسازید. شتاب سنج را 3.3 تغذیه کنید.

                3) امکان اتصال خروجی هیچ پ امپی به ورودی PIC وجود ندارد. (پاشنه آشیل) پس چون در مدار جی اس آر شما خروجی پ امپ به ورودی آنالوگ PIC متصل می کنید . نوسانی می شود .

                4) خود میکرو چیپ بیان می کند که اگر بیش از یک ورودی آنالوگ را استفاده کنید. آمادگی برخورد با Cross Talking را داشته باشید. پس نویز در کانال های دیگر ناشی از این اتفاق است.

                پس علت توصیه بنده به استفاده از یک A/D بیرونی ، موضوع بند 3 است. در ثانی با استفاده از یک مبدل بیرونی شما می توانید جی اس آر چون یک مدار آنالوگ است بسته به نوع انتظارتان و یا پاسخ نویز و هر چیز دیگری به اندازه 5 ولت 6 ولت 12 ولت و یا هر مقدار که بهتر است برایتان ، بایاس کنید.

                5) اگر بپذیرید که یک مبدل دیگر را استفاده کنید. حالا شتاب سنج تان با مبدل میکروکار کند با تنظیماتی دلخواه و مناسب برای آن و جی اس آر تان با یک مبدل دیگر کار می کند که تنظیمات مبدل A/D اولی بر نتیجه دومی تاثیری ندارد.

                در هر صورت انتخاب با خودتان است.

                با هم موفق باشیم
                والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

                هوشمندانه بپرسيد...

                دیدگاه


                  #9
                  پاسخ : راه اندازی سنسور

                  خیلی ممنون از توضیحاتتون
                  من با اجازتون میخوام بند ج و یک مبدل A/D برای GSR استفاده کنم. خوبه؟ انشاالله امروز سعی میکنم یه ADC0804 تهیه کنم. برای بستنشم سرچ میکنم، دیتاشیتشم با دقت بیشتر میخونم. تا آخر هفته انشاالله به نتیجه برسیم.

                  [hr]

                  به نظرم این لینک خوبه! oo:
                  http://sah-mousavi.blogfa.com/post/39
                  شما هم نظرتون رو بفرمایید.

                  دیدگاه


                    #10
                    پاسخ : راه اندازی سنسور

                    نوشته اصلی توسط tayebeh_it83
                    به نظرم این لینک خوبه! ............
                    بسم الله الرحمن الرحیم

                    به نظرم این خوبه که بعد از خداوند ؛ به خودتان تکیه کنید....

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

                    هوشمندانه بپرسيد...

                    دیدگاه


                      #11
                      پاسخ : راه اندازی سنسور

                      من تونستم درستی عملکرد ADC0804 را با 8 عدد LED تست کنم. همه چیز خوب بود. من بدون در نظر گرفتن رفرنس، انواع ورودی ها رو بین 0 و 5 ولت چک کردم. فقط یه سوال برام پیش اومده. طبق دیتاشیت باید از یک خازن 150pf و یک مقاومت 10k بین پین 4 و 19 استفاده کنیم. من چون این رنج ها رو نداشتم از 100pf و 12k استفاده کردم. این چه تاثیری روی نتیجه داره؟ کد CCS شم اینه :
                      کد:
                      #include <16F877A.h>
                      #use delay(clock=4000000)
                      
                      void initialisations(){ 
                      
                        setup_adc_ports(ALL_ANALOG);  
                        setup_adc(ADC_CLOCK_INTERNAL );
                        
                        setup_psp(PSP_DISABLED);
                        setup_spi(SPI_SS_DISABLED);
                        setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
                        setup_timer_1(T1_DISABLED);
                        setup_timer_2(T2_DISABLED,0,1);
                        setup_comparator(NC_NC_NC_NC);
                        setup_vref(FALSE);
                        lcd_init();
                      }
                      
                      void Main(){
                        
                        initialisations();
                      
                        SET_TRIS_C(0x20);//set pin 
                        SET_TRIS_D(0xff);//set all pin as input 
                        SET_TRIS_B(0x00);//set all pin as output 
                        
                        while(TRUE)
                        {   
                         ///***************
                         //CS=0
                         output_low(PIN_C4);
                         //read reset
                         output_high(PIN_C2);
                         //write prepare, low to high
                         output_low(PIN_C3);  
                         output_high(PIN_C3);   
                         //CS=1
                         output_high(PIN_C4);
                         
                         
                         //intrrupt
                         while(input(PIN_C5));
                         //CS=0
                         output_low(PIN_C4);
                         
                         //read prepare
                         output_low(PIN_C2);   
                         
                         ///LED
                         output_bit( PIN_B0,input( PIN_D0 ) );
                         output_bit( PIN_B1,input( PIN_D1 ) );
                         output_bit( PIN_B2,input( PIN_D2 ) );
                         output_bit( PIN_B3,input( PIN_D3 ) );
                         output_bit( PIN_B4,input( PIN_D4 ) );
                         output_bit( PIN_B5,input( PIN_D5 ) );
                         output_bit( PIN_B6,input( PIN_D6 ) );
                         output_bit( PIN_B7,input( PIN_D7 ) );
                         
                         //CS=1
                         output_high(PIN_C4);   
                         
                         delay_ms(10);   
                         //////////////////         
                        }
                      }
                      مدار تست ADC0804

                      دیدگاه


                        #12
                        پاسخ : راه اندازی سنسور

                        نوشته اصلی توسط tayebeh_it83
                        من چون این رنج ها رو نداشتم از 100pf و 12k استفاده کردم. این چه تاثیری روی نتیجه داره؟
                        بسم الله الرحمن الرحیم

                        حتما می دانید که مبدل ها چه آنالوگ به دیجیتال و چه دیجیتال به آنالوگ جزو مدارات سنکرون هستند . یعنی برای انجام وظیفه شان به یک پالس همزمانی یا ساعت نیاز دارند.
                        مقدار مجاز فرکانس پالس ساعت تابعی از پارامترهای گوناگون است که شرکت های سازنده مشخص می کنند. من در اینجا یک ADC0804 نمونه از شرکت Intersil را بررسی می کنم. که عمدتا در بقیه تولیدات ADC0804 شرکت های دیگر هم ؛ همین است ( یعنی تقریبا همگی مشابه اند) :

                        برای ولتاژ 5 ولت
                        مقدار مینیمم فرکانس پالس ساعت : 100 کیلوهرتز
                        مقدار ماکزیمم فرکانس پالس ساعت: 800 کیلوهرتز است.
                        فرمول محاسبه فرکانس بر اساس مقاومت و خازنی است که شما اشاره کرده اید به این شکل :
                        عدد یک تقسیم بر (1.1RC) یعنی با مقاومت 10 کیلو اهم و خازن 150 پیکوفاراد فرکانس تقریبا 606.06 کیلوهرتز است و با مقاومت 12 کیلو اهم و خازن 100 پیکوفاراد فرکانس پالس ساعت برابر 757.57 کیلوهرتز خواهد بود.

                        شرکت Intersil می گوید که برای تبدیل حداقل 62 پالس ساعت و حداکثر 73 پالس نیاز است . علت تفاوت هم در این است که حدود 8 پالس ساعت به تقریب لازم است تا پس از پالس استارت فرآیند تبدیل آغاز شود. لذا افزایش فرکانس پالس ساعت باعث افزایش سرعت تبدیل است و از سویی دیگر باعث افزایش توان تلفاتی و توان مصرفی در قطعه است.

                        اما اگر منظور سوال شما تاثیر در نتیجه تبدیلات است باید گفت که " خیر " این مقاومت و خازن در تغییر پله های تبدیل (یک عدد به ازای 19.6 میلی ولت) اثری ندارد و همانطور که گفتم فقط فرکانس پالس ساعت داخلی توسط این دو مقدار مقاومت و خازن تغییر می کند.
                        والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

                        هوشمندانه بپرسيد...

                        دیدگاه


                          #13
                          پاسخ : راه اندازی سنسور

                          خدا رو شکر من تونستم ADC0804 رو به درستی استفاده کنم و دیگه مشکل نویز رو ندارم. و اما سوالاتی برام پیش اومده، ممنون میشم اگر میتونید راهنمایی بفرمایید. مشگل جدیدی که باهاش مواجه شدم مشکل سنسور رسانایی پوست (GSR) هست. من تا دیروز منتظر رسیدن یک سری الکترود (الکترود Ag/AgCl) از تهران بودم که دیروز به دستم رسید و مدار GSR رو تست کردم. یک توضیح بدم که چرا از این الکترودها استفاده می کنیم. در مدار GSR قراره که یک ولتاژ DC به پوست دست اعمال بشه و میزان رسانایی پوست اندازه گیری و با کمک یکسری پ امپ تقویت بشه. این نوع الکترودها با توجه به این که عرق دست نشان دهنده کم یا زیاد بودن رسانایی پوست هست انتخاب شده تا با عرق که به نوعی یک الکترولیت ضعیف هست واکنش نشون داده تا به درستی رسانایی خونده بشه. یعنی طبق مقالاتی که من خوندم نمیشه از الکترودهای صرفاً هادی استفاده کرد (یا دقتش کمتره). حالا مشکل من چیه؟ من خروجی مدار GSR رو به صورت یک خط راست می بینم، در صورتی که حداقل با کشیدن نفس عمیق باید یه تغییر کوچولو دیده بشه. به نظرتون منطقاً مدار GSR درسته؟ یا مشکل از چیز دیگه ای هست؟
                          سوال دومم راجع به فرکانس نمونه برداری توسط میکرو هست. من از PIC16F877A و یک کریستال 4MHz استفاده می کنم، و همچنین یک ADC0804. در کد میکرو هم فقط یک تاخیر 10 میلی ثانیه دارم. شتاب سنجم از ADC خود میکرو و GSR از ADC0804 استفاده می کنند. فرکانس نمونه برداری که باید در بخش پردازش سیگنال استفاده کنم نهایتاً مربوط به کدوم بخش میشه؟ آیا تاخیری که در کد هست هم باید اعمال بشه؟

                          کد نهایی

                          کد:
                          #include <16F877A.h>
                          #use delay(clock=4000000)
                          #include "Flex_LCD420.c"
                          #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
                          
                          void initialisations(){ 
                          
                            setup_adc_ports(AN0_AN1_AN4_VREF_VREF);
                            setup_adc(ADC_CLOCK_INTERNAL );
                            
                            setup_psp(PSP_DISABLED);
                            setup_spi(SPI_SS_DISABLED);
                            setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
                            setup_timer_1(T1_DISABLED);
                            setup_timer_2(T2_DISABLED,0,1);
                            setup_comparator(NC_NC_NC_NC);
                            setup_vref(FALSE);
                            lcd_init();
                          }
                          
                          int x, y, z, g, p;
                          
                          void Main(){
                            
                            initialisations();
                          
                            SET_TRIS_C(0xb0);//set pin 1011 0000
                            SET_TRIS_D(0xff);//set all pin as input 
                            SET_TRIS_B(0x08);//set all pin as output 
                             
                            output_low(PIN_E0);//A5 is Bluetooth Key
                            output_low(PIN_E1);//A6 is Bluetooth Reset
                            delay_ms(1000);
                            output_high(PIN_E1);
                            
                            while(TRUE)
                            {   
                             set_adc_channel(0);
                             x = read_adc();
                             
                             set_adc_channel(1);
                             y = read_adc(); 
                             
                             set_adc_channel(4);
                             z = read_adc();
                             
                             ///***************
                             //CS=0
                             output_low(PIN_C1);
                             //read reset
                             output_high(PIN_C2);
                             //write prepare, low to high
                             output_low(PIN_C3);  
                             output_high(PIN_C3);   
                             //CS=1
                             output_high(PIN_C1);
                             
                             
                             //intrrupt
                             while(input(PIN_C5));
                             //CS=0
                             output_low(PIN_C1);
                             
                             //read prepare
                             output_low(PIN_C2);            
                             g = input_D();
                             
                             p = input (PIN_B3);
                             
                             lcd_gotoxy(1,1);      
                             printf(lcd_putc,"x%u",x);
                             printf(lcd_putc,"y%u",y);
                             printf(lcd_putc,"z%u",z);
                             
                             lcd_gotoxy(1,2);               
                             printf(lcd_putc,"GSR:%u",g);
                             lcd_gotoxy(9,2);
                             printf(lcd_putc,",PPG:%D",p);
                             
                             //CS=1
                             output_high(PIN_C1);   
                             
                             lcd_clear();
                             delay_ms(10);   
                             //////////////////         
                            }
                          }

                          دیدگاه


                            #14
                            پاسخ : راه اندازی سنسور

                            البته خودم متوجه یه موضوع شدم که نمی دونم درست هست یا نه؟ اگر ما فرض کنیم مدار تقویت کننده درست باشه، من باید تغییرات خروجی سنسور GSR رو با ولت متر اندازه بگیرم و ببینم آیا دامنه تغییرات اون اندازه هست که ADC0804 قادر به تبدیل اون به یک سطح دیگه باشه یا نه؟ هااااا :mrgreen: لطفاً شما هم احتمالات دیگه رو مطرح کنید تا من تست کنم.
                            ممنون از وقتی که میذارید

                            دیدگاه


                              #15
                              پاسخ : راه اندازی سنسور

                              سلام.
                              به علت کمبود وقت، نتونستم کل ارسالها رو بخونم.
                              دلیل خاصی داره که از مبدل ADC خارجی استفاده میکنین؟ با توجه به اینکه ADC داخلی میکرو، از ADC0808 دقت بیشتری داره. (با توجه به گرایشتون این توضیح رو خدمتتون عرض میکنم. برای پیدا کردن میزان حساسیت، ولتاژ مرجع رو تقسیم بکنین بر : 2 به توان 8 ، برای مبدل 8 بیتی و برای مبدل 10 بیتی 2 به توان 10 . عدد حاصل، نشون دهنده ی میزان حساسیت مبدل هست)
                              برای افزایش سرعت تبدیل ADC، پیشنهاد میکنم کریستال 20MHz استفاده کنین و تو تنظیمات ADC 9 هم حداقل زمان انتظار برای تکمیل تبدیل ADC رو انتخاب کنین.

                              دیدگاه

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