ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 3 123 آخرین
نمایش نتایج: از 1 به 10 از 24
  1. #1
    2011/01/29
    تهران
    484
    16

    مشکل با تاچ (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. #2
    2011/01/29
    تهران
    484
    16

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

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

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

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

    کتابخانه

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

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

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

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

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

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

    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.
  7. #7
    2011/01/29
    تهران
    484
    16

    پاسخ : مشکل با تاچ (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. #8
    2008/10/29
    2,098
    219

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

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

    موفق باشین
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.
  9. #9
    2011/01/29
    تهران
    484
    16

    پاسخ : مشکل با تاچ (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. #10
    2011/01/29
    تهران
    484
    16

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

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

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

موضوعات مشابه

  1. مشکل touch و ADC
    توسط Mahmood543 در انجمن پروسسورهای ARM
    پاسخ: 1
    آخرين نوشته: 2015/11/17, 01:41
  2. مشکل در touch screen
    توسط javad_faz در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2015/11/13, 07:56
  3. مشکل در touch screen
    توسط javad_faz در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2015/07/29, 10:53
  4. مشکل در touch screen
    توسط javad_faz در انجمن میکروکنترلرهای AVR
    پاسخ: 0
    آخرين نوشته: 2015/07/28, 08:35
  5. مشکل با adc و touch screen
    توسط hmz1 در انجمن میکروکنترلرهای AVR
    پاسخ: 8
    آخرين نوشته: 2010/11/19, 11:50

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •