اطلاعیه

Collapse
No announcement yet.

مشکل با تاچ (touch) و adc

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

    مشکل با تاچ (touch) و adc

    سلام به همه دوستان و اساتید
    من نمی دونم چرا مقادیری که توسط adc می خونم مدام در حال تغییر هست؟
    تغییر اون هم طوری نیست که گردن نویز بندازم یعنی با توجه به تعیین #device adc=8 و خواندن adc ، مقادیر نمایش داده شده از 255 تا 0 تغییر می کنند به صورت مداوم.
    من برنامم رو این زیر گذاشتم ، اگه کسی بلده کمک کنه لطفا.
    کد:
    for(;;)
    {
      unsigned int8 value;
      char str[20];
      setup_adc_ports(NO_ANALOGS);
      setup_adc(ADC_OFF);
      setup_adc(ADC_CLOCK_INTERNAL); 
      setup_adc_ports(AN0_AN1_VSS_VREF);
      
    
    
    
      //reading x position
      //first giving voltage to the cross axis
      output_high(y1);
      output_low(y2);
      //then giving zero to one lid of current axis
      output_low(x2);
      //then reading voltage of other lid of current axis
      set_adc_channel(0);
      delay_ms(3);//delay_us(10); //while(!ADC_done());
      value=read_adc();
      sprintf(str,"X is:%5u",value);
      show_mytext(10,10,str);
      delay_ms(300);
      
      //reading y position
      //first giving voltage to the cross axis
      output_high(x1);
      output_low(x2);
      //then giving zero to one lid of current axis
      output_low(y2);
      //then reading voltage of other lid of current axis
      set_adc_channel(1);
      delay_ms(3);//delay_us(10); //while(!ADC_done());
      value=read_adc();
      sprintf(str,"Y is:%5u",value);
      show_mytext(11,10,str);
      delay_ms(300);
    }
    دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

    #2
    پاسخ : مشکل با تاچ (touch) و adc

    خوب اینقدر کمک نکردید که خودم مشکل adc رو فهمیدم
    من تو تنظیمات یا باید VREF رو انتخاب می کردم و بهش فیلتر وصل می کردم.
    یا باید می ذاشتم خود به خود VCC رو به عنوان VREF انتخاب کنه
    در مورد TOUCH فقط یه مسئله ای هست:
    توی روند خوندن تاچ گفته شده که باید یکی از پایه هاHIGH IMPEDANCEH باشه ،من تو 8051 می دونستم باید چیکار کنم ولی تو CCS نمی دونم
    دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

    دیدگاه


      #3
      پاسخ : مشکل با تاچ (touch) و adc

      ای بابا انگار یکی پیدا نمیشه بگه حالت چطوره. جواب دادن که سهله.
      خودم تاچ رو درست کردم.تو ccs برای امپدانس بالا از دستور output_float(pin_a0) v می شه.
      فقط الان مونده اینکه چرا مختصاتی که به من میده نهایت عدد 10 هست؟
      یعنی حدود ایکس و ایگرگی که تو ال سی دی من می بینم 0 تا 10 هست ( در صورتی که من یک متغیر 8 بیتی برای هر کدوم در نظر گرفتم(یعنی256) و وقتی که با پتانسیومتر بین 0تا5ولت تغییر می کنه عدد من هم بین 0 تا 255 تغییر می کنه.
      فکر کنم این سوال هم اینقدر بمونه تا خودم بیام جوابش رو بدم
      دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

      دیدگاه


        #4
        کتابخانه

        انقدر کسی جواب نمی ده تا آدم یواش یواش خودش همه راه رو بره . حتی یه نفر پیدا نمی شه بیاد بگه حالت خوبه یا نه! :sad:
        من الان تاچ رو راه انداختم ، مشکلاتش رو هم برطرف کردم و آماده است ، با اینکه ذاتا آدم خسیسی هستم ، قصد دارم یک پروژه کامل شامل کار با lcd t6963 ( مثلا درست کردن و کار با دکمه ها) ، استپ موتور ، بازر(شیر برقی) ، شیر برقی ، خواندن اپتو کانتر(خواندن دور و مقدار حرکت شفت انکودر) و تاچ اسکرین ( مثلا دفتر نقاشی و زدن دکمه و ...) و... بذارم . :job:
        حالا یا همینجا یا تو بخش پروژه های تکمیل شده . یه چیزی تو مایه های یه کتابخونه که همه و خودم بتونیم ازش برای پروژه های کاری(دانشگاهی) استفاده کنیم.
        [hr]
        تا الان مشکلایی مثل مرتبط شدن ایکس و وای به هم ، تغییر خیلی سریع و زیاد مقادیر خوانده شده ی تاچ و ... رو برطرف کردم ولی الان مشکلم اینه که نمی تونم پارامتر فشار رو از تاچم جدا کنم ، در حقیقت برای برنامه نویسی باید مختصات نقطه ی مذبور رو داشته باشم و با این شرایط نمی شه مشخصات نقطه رو در آورد .
        مثلا وقتی یه کم فشار روی تاچ هست مختصات نقطه (150,66) هست ولی وقتی همون نقطه رو بیشتر فشار می دیم میشه (202و97) که این مختصات یک نقطه دیگه است با فشار ملایم.
        دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

        دیدگاه


          #5
          پاسخ : مشکل با تاچ (touch) و adc

          یه شبه آموزش برای راه اندازی تاچ مقاومتی توسط میکرو های psoc دیدم .
          جالب اینه که تو این مقاله مقادیر خوانده شده از پایه های x1 , x2 رو منفک از میزان فشار حساب می کنه و البته در تئوری نیز باید همین طور باشه ولی در عمل برای من با فشار دادن بیشتر مقادیر x و y تغییر می کنه! ( شاید پین ها رو اشتباه وصل کرده باشم!!!!)
          دو تا فرمول گردن کلفت هم داده برای محاسبه ی فشار که به نظر من هر دوشون مسخره هستن و آدم می تونه با یه تفریق ساده (rt=z1-z2)میزان فشار رو بدست بیاره . ضریبی هم که ممکنه مقدار خوانده شده داشته باشه اصلا مهم نیست چون هم دو پارامتر دیگه ای که بدست اومده نسبی هستش و هم فشاری که خونده می شه نسبیه !
          دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

          دیدگاه


            #6
            پاسخ : مشکل با تاچ (touch) و adc

            سلام جناب "محمد حسین"
            من قبلا با تاچ اسکرین کار کردم همچین مشکلی رو نداشتم لحظه اول اومدم پاسخ بدم که شاید فشار زیادی باعث می شه که صفحه کشیده بشه و خطا ایجاد بشه اما دیدم توی عمل اکثر جاها در سخت افزارهای پیاده سازی شده ساده هم با این تغییرات این خروجی منطقی نیست ، من با تاچ های مقاومتی کار کردم ، شاید تاچ شما خازنی باشه(که من تا به حال این مدلها رو ندیدم از نزدیک)

            اگر مدل سنسور و نمونه مدارتون هم بزارین اگر بشه سوال بگیریم ببینم دقیقا مشکل از کجاست که حداقل هم یاد گرفته باشم هم به نحوی کمکی به شما بشه

            هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

            دیدگاه


              #7
              پاسخ : مشکل با تاچ (touch) و adc

              نوشته اصلی توسط baby_1
              سلام جناب "محمد حسین"
              من قبلا با تاچ اسکرین کار کردم همچین مشکلی رو نداشتم لحظه اول اومدم پاسخ بدم که شاید فشار زیادی باعث می شه که صفحه کشیده بشه و خطا ایجاد بشه اما دیدم توی عمل اکثر جاها در سخت افزارهای پیاده سازی شده ساده هم با این تغییرات این خروجی منطقی نیست ، من با تاچ های مقاومتی کار کردم ، شاید تاچ شما خازنی باشه(که من تا به حال این مدلها رو ندیدم از نزدیک)

              اگر مدل سنسور و نمونه مدارتون هم بزارین اگر بشه سوال بگیریم ببینم دقیقا مشکل از کجاست که حداقل هم یاد گرفته باشم هم به نحوی کمکی به شما بشه
              سلام ، مخلصم.نمی دونید چقدر خوشحال شدم از اینکه دیدم بلاخره یک نفر یه جواب داده . :applause:(داشتم دیگه نا امید می شدم!)
              از پاسختون متشکرم.
              - عرضم خدمت شما که مطمئنم تاچ من مقاومتی هست .(تعداد سیم ها ، مقاومتی که از این چهار سیم به صورت دستی گرفتم و همین نتیجه نصفه نیمه)
              - مدار خاصی نیست برای همین شفاهی خدمتتون می گم : سیم شماره یک و دو رو وصل کردم به analog1 , analog0 (RA0,RA1)S و سیم سه و چهار تاچم رو هم وصل کردم به RC1,RC2 میکرو (اگر اشتباه نکنم با برعکس گرفتن تاچ هم مشکلی پیش نمیاد یعنی اگر ترتیب سیم هایی که من گرفتم به جای 1234 ، ، 4321 باشه هم باز نوع کار همین می شه با این تفاوت که جای طول و عرض عوض می شه). در ضمن آنالوگ هاا رو با 1 مگا اهم به زمین پول داون کردم.
              کد:
              #define y1 pin_a0   //ADC channel(0)
              #define x1 pin_a1   //ADC channel(1)
              #define y2 pin_c1   //gnd | float
              #define x2 pin_c2   //gnd | float
              (اگه لازم می دونید که نقشه باشه بفرمایید بکشم )
              من خودم چند تا حدس می زنم :
              1. من 200 میلی ثانیه میزارم برای اینکه تاچ خونده بشه ( 100 بار مقادیر تاچ اندازه گیری شود و در نهایت میانگین گیری شود(همون مشکلم در تقسیم ساده که لطف کردید جواب دادید!)) شاید این 200 میلی ثانیه باعث شده باشه فکر کنم مشکل از فشاره.(باید تست کنم)
              2. مشکل زمان لازم برای خوندن طول یا عرض کمه و این باعث می شه خازن های ماژول ADC من خوب شارژ نشن ( و فقط در زمانی که یک زمان زیاد روش نگه داشتم و چندین بار خونده میشن درست عمل کنن - من 1 میلی ثانیه برای گرفتن نتیجه صبر می کنم)

              منظورتون از سنسور همون تاچه؟ والا نمی دونم تاچم چیه فقط می دونم که به قیمت 18 هزار تومان خریدمش.(و چون قیمتش کمه شاید کیفیتش هم کم باشه!)
              [hr]
              الان امتحان کردم دیدم با ته خودکار این مشکل پیش نمیاد- پس مشکل در اینجاست که من وقتی با ناخن میزدم با فشار بیشتر نقاط تماس بیشتری ایجاد میشده :redface:
              شرمنده که وقت شما رو هم گرفتم :redface:
              دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

              دیدگاه


                #8
                پاسخ : مشکل با تاچ (touch) و adc

                سلام
                خدا رو شکر مشکلتون رو پیدا کردین ، البته در نظر داشته باشین مقاومت یک مگااهم رو در کار عملیتون به کار نبرین و دلیل اصلی آن هم بالابردن توان نویز و همچنین امپدانس دیده شده از سمت میکرو و افزایش زمان شارژ خازن در زمان نمونه برداری هست ،

                موفق باشین
                هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                دیدگاه


                  #9
                  پاسخ : مشکل با تاچ (touch) و adc

                  آقا من تازه فهمیدم چقدر هیچی بلد نیستم :sad: :redface:
                  یه بار مینویسم
                  کد:
                  for(i=0;i<=touch_time;i++)
                  کار نمی کنه بعد می نویسم
                  کد:
                  for(i=0;i!=touch_time;i++)
                  کار می کنه.
                  :eek:
                  یه بار می نویسم
                  کد:
                  position[0]+=read_adc();
                  یه رقم میده (63430) ، بعد این کد زیری رو میدم یه رقم دیگه میده (65143)
                  کد:
                  position[0]=position[0]+read_adc();
                  کل کدم هم اینه:
                  کد:
                  void touch(unsigned long *position)
                  { 
                    position[0]=0;
                    position[1]=0;
                    setup_adc(ADC_CLOCK_INTERNAL); 
                    setup_adc_ports(AN0_AN1_AN3); 
                    unsigned int8 i=0;
                    for(i=0;i!=touch_time;i++)
                    {
                     //reading x position-----------------------------------------
                     output_high(x1);
                     output_low(x2);
                     output_float(y2);  
                     set_adc_channel(1);//y1  
                     delay_us(4);//while(!ADC_done());//delay_ms(1); //
                     position[0]+=(unsigned long)read_adc();//position[0]=position[0]+read_adc();
                     //reading y position-----------------------------------------
                     output_high(y1);
                     output_low(y2);
                     output_float(x2);  
                     set_adc_channel(0);//y1 
                     delay_us(4);//while(!ADC_done());//delay_ms(1);//
                     position[1]=(unsigned long)((unsigned long)position[1]+(unsigned long)read_adc());
                    }
                    setup_adc(adc_off);
                    
                    //position[0]=(unsigned int16)position[0]/(unsigned int16)touch_time;
                    //position[1]=(unsigned int16)position[1]/(unsigned int16)touch_time;
                    
                    //position[0]=x_const-position[0];
                    //position[1]=y_const-position[1];  
                    
                    //position[0]=(unsigned int16)((float)position[0]*x_factor);
                    //position[1]=(unsigned int16)((float)position[1]*y_factor);
                    
                    char str[20];  
                    sprintf(str,"Y is:%8lu",position[1]);
                    show_text(11,10,str);
                    sprintf(str,"X is:%8lu",position[0]);
                    show_text(10,10,str);
                    delay_ms(500);
                    //-------daftar naghashi----------------
                    //gdispsetpixel((int16)position[0],(int16)position[1],1);
                  }
                  مگه این دو تا دستور با هم یکی نیستن m=m+n , m+=n
                  ????
                  دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

                  دیدگاه


                    #10
                    عدم دقت در مختصات طول و عرض

                    مختصاتی که از طول و عرض گرفته میشه یه مشکل دیگه هم داره.
                    اگر چهارگوشه تاچ(ال سی دی) رو در نظر بگیرید . این مختصات از چهار گوشه بدست میاد:
                    (1,1)
                    (45,2)
                    (1,27)
                    (60,52)
                    همونجور که دیده میشه مختصات بیشینه طول با افزایش عرض افزایش پیدا می کنه .البته این مربوط به مقدار بیشینه نیست و هر طول مشخصی که در نظر بگیرید در عرض های متفاوت مقادیر متفاوت میده. و همینطور عرض نیز با تغییر طول تغییر می کنه.

                    ولی در عمل نباید این اتفاق بیافته. از مدلی که با 5 مقاومت برای صفحه تاچ ساخته شده بر میاد که این دو تا پارامتر باید مستقل از هم عمل کنند.
                    خودم یه حدس می زنم : شاید این مسئله بر میگرده به شارژ مانده در خازن adc و این باعث تاثیر گذاشتن در مقدار خوانده شده کانال بعدی می شه. (یه حدس دیگه هم زدم گفتم نکنه خوب پایه ها float نمیشن دستی یکی از سیم های تاچ رو جدا کردم دیدم فرقی نکرد.)
                    دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

                    دیدگاه


                      #11
                      پاسخ : مشکل با تاچ (touch) و adc

                      خوب من مشکل رو حل کردم :rolleyes:

                      اما نه از راه درستش :redface: ( هر چی زور زدم خدایی نشد! )

                      هنوز برای من سواله که چرا وقتی output_high_x1 انجام می دادم نتایج قبلی x1 که خونده شده بود مشکل دار می شد و به نوعی به پارامتر y مرتبط می شد!؟!؟!؟

                      شاید این مربوط به تنظیمات adc می شد و خوندن مقادیر دو تا adc کانال رو بلد نبودم درست انجام بدم....
                      به زمان که نمی تونه بربطه چون زمان رو تا 5 میلی ثانیه هم بردم بالا

                      به هر حال الان من با یه سوئیچ آنالوگ جفت کانال های آنالوگی که باید خونده بشه x1,y1 رو وصل کردم به هم و هر کدوم رو که بخوام به adc بوصلم با سوئیچ فرمان میدم
                      فقط اینجوری پینای تاچم به جای 4 تا شده 7 تا
                      دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

                      دیدگاه


                        #12
                        تاچ با میکرو پیک

                        خوب این هم از فیلم پروژه تاچ . مدار و برنامه رو به صورت جدا بعدا می زارم
                        http://wdl.persiangig.com/pages/download/?dl=http://mhjmail.persiangig.com/document/touch_worked.3gp
                        در ضمن 7 تا پایه رو هم کردم همون 4 تا پایه
                        دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

                        دیدگاه


                          #13
                          پاسخ : مشکل با تاچ (touch) و adc

                          سلام دوست عزیز ! یکم به خودم امیدوار بشم !!! من از مقاومت داخلی پایه ی میکرو استفاده کردم و پایه های 3و4 رو با مقاومت 4.7 کیلو به مثبت وصل کردم ! همین ! منم 2 هفته روش کار کردم و جواب گرفتم و تمام این مشکلات شمارو که داشتم هیچ ، کلی بیشتر هم بودن !!
                          بگذریم . من موندم در کف این جوانانی که وقتی میفهمن میرن پی کارشون و مشکلات بقیه اصلا براشون اهمیتی نداره ! هرچند قابل درکه .

                          بریم سراق اشکالات و اصلاحات :
                          اول اینکه وقتی میخواین کالیبره بکنید : فقط 2 نقطه رو باید در نظر بگیرین . بالا سمت راست + پایین سمت چپ . بعدش دیگه برداره ! ریاضی راهنماییه ! 2 نقطه ی اول و آخر رو دارین . تفاضلشون میشه تعداد حداکثر درجه بندیتون ( که کلا خطا داره ) . حالا باید این عددهای تفاضل بدست اومده رو مندرج کنید . یعنی تصمیم بگیرید " یک جدل روی صفحه رسم کنید . چندتا مربع دارین داخلش ؟ یعنی چند در چند هستش ؟ " هرچی تعداد طول*عرض بیشتر بشه خطا بیشتر میشه ( بهتره بگم سختتر میشه باهش کار کرد ) . مثلا برای شروع حداکثر 4*4 در نظر بگیرین . حالا اون عددهای X و Y که از تفاضل بدست آووردین رو تقسیم بر تعداد مربع های طول و عرض بکنین ( جدا جدا ) . حالا چی شد ؟ شما X MAX و Y MAX و X MIN و Y MIN رو دارین ( رجیستر بزنین با همین نام ها راحتترین !) . حالا در ابتدا همیشه هر مختصاتی رو میخونین باید منهای X MIN بکنین و Y .... . حالا مختصات از صفر تا MAX هر 2 تا رو دارین . بعدش برای کالیبره اولیه بهتره از نوک یه چیزی شبیه به مداد ( ولی باید کلفتتر باشه و انگشت خیلی بد و سخت جواب درست میده ) 2 تا نقطه رو لمس کنید .بعدش باید عددهای X Y MAX MIN رو نگاه کنید . اگه کمتر از 18 برای طول و 10 برای عرض بود ، بدرد نمیخوره و باید دوباره کالیبره رو بگیرین . در ضمن نباید جوابتون منفی باشه ! باور کنین اینقدر پیش میاد !... بعدش روی خود تاچ اون مربع ها رو رسم کنید . مثلا 4*4 . حالا در آخر هر مربع رو لمس کنید ( با انگشت هم مشکلی نداره ) . یادتون باشه عددهای هر خانه رو یادداشت کنید . در ضمن همیشه در یک خط افقی باید مقادیر X ثابت باشه و Y تغییر میکنه . در مورد عمودی در هر سری خانه X باید تغییر بکنه و Y باید ثابت باشه . در ضمن فراموش کردم بگم باید وقتی XMAX - XMIN میکنید ، باید تقسیم بر عدد تعداد خانه های X ها بکنید ( مثلا 4) . بعد از اینکه کالیبره کردین دیگه هیچ مشکلی در زمینه ی خطا نخواهید داشت . یادتون باشه بهتره فقط یکبار کلا کالیبره بکنید و تمام عددها رو یادداشت کنید و بعد کالیبره رو از برنامه حذف کنید و فقط عددهای بدست اومده رو به صورت ثابت تو برنامه بگذارید . کالیبره به هم نخواهد خورد مگه LCD صدمه ببینه ! در ضمن سمپل ADC رو هم نمیخواد اونقدر در نظر بگیرین ! 40 تا سمپل کافیه . اگه قبل از هرکاری و کالیبره و ... یک محافظ تاچ ( از این کلفتا ، اگه خودش نداره روش بذارین خیلی دقتتون بهتر میشه ! معمولا ندارن . اما اگه تاچ گوشی با مارک بخرین مثلا سامسونگ ، روش داره که آرم هم روش زده مثلا سیاهه ) . موفق و شاد باشید .
                          if all men are the same
                          then
                          why do women take so long to choose one ?

                          دیدگاه


                            #14
                            پاسخ : مشکل با تاچ (touch) و adc

                            نوشته اصلی توسط josef2600
                            سلام دوست عزیز ! یکم به خودم امیدوار بشم !!! من از مقاومت داخلی پایه ی میکرو استفاده کردم و پایه های 3و4 رو با مقاومت 4.7 کیلو به مثبت وصل کردم ! همین ! منم 2 هفته روش کار کردم و جواب گرفتم و تمام این مشکلات شمارو که داشتم هیچ ، کلی بیشتر هم بودن !!
                            بگذریم . من موندم در کف این جوانانی که وقتی میفهمن میرن پی کارشون و مشکلات بقیه اصلا براشون اهمیتی نداره ! هرچند قابل درکه .

                            بریم سراق اشکالات و اصلاحات :
                            اول اینکه وقتی میخواین کالیبره بکنید : فقط 2 نقطه رو باید در نظر بگیرین . بالا سمت راست + پایین سمت چپ . بعدش دیگه برداره ! ریاضی راهنماییه ! 2 نقطه ی اول و آخر رو دارین . تفاضلشون میشه تعداد حداکثر درجه بندیتون ( که کلا خطا داره ) . حالا باید این عددهای تفاضل بدست اومده رو مندرج کنید . یعنی تصمیم بگیرید " یک جدل روی صفحه رسم کنید . چندتا مربع دارین داخلش ؟ یعنی چند در چند هستش ؟ " هرچی تعداد طول*عرض بیشتر بشه خطا بیشتر میشه ( بهتره بگم سختتر میشه باهش کار کرد ) . مثلا برای شروع حداکثر 4*4 در نظر بگیرین . حالا اون عددهای X و Y که از تفاضل بدست آووردین رو تقسیم بر تعداد مربع های طول و عرض بکنین ( جدا جدا ) . حالا چی شد ؟ شما X MAX و Y MAX و X MIN و Y MIN رو دارین ( رجیستر بزنین با همین نام ها راحتترین !) . حالا در ابتدا همیشه هر مختصاتی رو میخونین باید منهای X MIN بکنین و Y .... . حالا مختصات از صفر تا MAX هر 2 تا رو دارین . بعدش برای کالیبره اولیه بهتره از نوک یه چیزی شبیه به مداد ( ولی باید کلفتتر باشه و انگشت خیلی بد و سخت جواب درست میده ) 2 تا نقطه رو لمس کنید .بعدش باید عددهای X Y MAX MIN رو نگاه کنید . اگه کمتر از 18 برای طول و 10 برای عرض بود ، بدرد نمیخوره و باید دوباره کالیبره رو بگیرین . در ضمن نباید جوابتون منفی باشه ! باور کنین اینقدر پیش میاد !... بعدش روی خود تاچ اون مربع ها رو رسم کنید . مثلا 4*4 . حالا در آخر هر مربع رو لمس کنید ( با انگشت هم مشکلی نداره ) . یادتون باشه عددهای هر خانه رو یادداشت کنید . در ضمن همیشه در یک خط افقی باید مقادیر X ثابت باشه و Y تغییر میکنه . در مورد عمودی در هر سری خانه X باید تغییر بکنه و Y باید ثابت باشه . در ضمن فراموش کردم بگم باید وقتی XMAX - XMIN میکنید ، باید تقسیم بر عدد تعداد خانه های X ها بکنید ( مثلا 4) . بعد از اینکه کالیبره کردین دیگه هیچ مشکلی در زمینه ی خطا نخواهید داشت . یادتون باشه بهتره فقط یکبار کلا کالیبره بکنید و تمام عددها رو یادداشت کنید و بعد کالیبره رو از برنامه حذف کنید و فقط عددهای بدست اومده رو به صورت ثابت تو برنامه بگذارید . کالیبره به هم نخواهد خورد مگه LCD صدمه ببینه ! در ضمن سمپل ADC رو هم نمیخواد اونقدر در نظر بگیرین ! 40 تا سمپل کافیه . اگه قبل از هرکاری و کالیبره و ... یک محافظ تاچ ( از این کلفتا ، اگه خودش نداره روش بذارین خیلی دقتتون بهتر میشه ! معمولا ندارن . اما اگه تاچ گوشی با مارک بخرین مثلا سامسونگ ، روش داره که آرم هم روش زده مثلا سیاهه ) . موفق و شاد باشید .
                            1- متشکر از توضیحات بسیار کاملتون
                            2- من هنوز کالیبره توسط کاربر رو تو برنامه ام نذاشتم ولی بعدا به عنوان منوی تنظیمات برای دستگاهم حتما میذارم و اون موقع ایشالله مزاحتمون میشم . البته نمی دونم اصلا همچین چیزی نیاز هست یا نه چون الان که داره عالی کار می کنه ( فیلمش رو هم گذاشتم ) و فکر می کنم تا وقتی که از همین مارک تاچ برای باقی دستگاه ها دارم استفاده می کنم ، همیجور سالم بمونه . درسته ؟
                            3- من بخاطر اون مشکلی که تو پست های قبلی داده بودم ( مرتبط شدن X,Y با هم ) مجبورم از سوئیچ آنالوگ استفاده کنم البته توضیحات microc رو هم برای تاچ اسکرین دیدم انگار اونا هم یه همچین کاری کرده بودند ، فکر می کنم کلا مشکل مالتی پلکس کردن کانال های ADC تو pic باشه . حالا می خواستم بدونم شما چجوری تاچ رو می خونید ؟ یعنی سخت افزارتون ساده و فقط با 4 تا سیم و دو تا مقاومت پول پ/داون هست ؟ یا اینکه شما هم مثل من از سخت افزار پیچیده تری استفاده کردید؟
                            دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

                            دیدگاه


                              #15
                              پاسخ : مشکل با تاچ (touch) و adc

                              با سلام خدمت دوست عزیز .
                              اول اینکه همونطور که قبلا گفتم ، من فقط از 2 عدد مقاومت پولپ استفاده کردم و دیگر هیچ ! بازم خیر مشکل از مالتی پلکس های pic نیست ! و خلاصه اصلا و ابدا مشکل از قطعات و سخت افزارها و کامپایلرها نیست !
                              اگه دقت کرده باشین من گفته بودم مشکل از کجاست . مشکل از تنبلی ماهاست !!! منم 10 روز هی زور میزدم با استفاده از برنامه های آماده و یا توضیحات دیگران و یا از لایبراری ها استفاده کنم . به این دقت نکردم که اول باید ببینم با چی چی دارم کار میکنم و اینکه باید برنامه رو درک بکنم ! 2 تا 3 روز کلا طول کشید که یک برنامه ی کامل و مرجع توسط خودم بنوسم و کار بکنه بدون مشکل ! اول از همه باید بدونید که اون تاچ ، 100 تا یا هزارتا نقطه نداره ! جلوی نور مستقیم بگیرید نقاط اتصالش رو میبینید ( خیلی ریزن مثل نوک سوزن خورده تو صفحه !) . بشماریدشون . حداکثر تعداد نقطه ها همونقدر هستش . اگه چندبار دیگه مطلبم رو بخونید ، بهتر متوجه میشید . بازم سوالی بود در خدمتتون هستم .
                              موفق و شاد باشید .
                              if all men are the same
                              then
                              why do women take so long to choose one ?

                              دیدگاه

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