NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3739 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 14 از 14

موضوع: مشکل عجیب در adc میکروکنترلر atmega8

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2013
    نوشته ها
    98
    تشکر
    76
    تشکر شده 16 بار در 14 پست

    پیش فرض مشکل عجیب در adc میکروکنترلر atmega8

    سلام دوستان
    من دارم یه مدار می بندم که توی اون از adc atmega8 استفاده میکنم ولی نمیدونم چرا مقدار Adc که میده بین 100 تا 1023 هست و از 0 تا 1023 نمیده...
    چیکار باید بکنم؟
    این از atmega میتونه باشه یا تنظیمات خاصی میخاد....

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    همکار M3R آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    مسعود
    نوشته ها
    710
    تشکر
    426
    تشکر شده 649 بار در 304 پست

    پیش فرض

    سلام
    شما پایه ورودی adc رو به زمین متصل کنید ببینید باز هم عدد 100 نمایش میده؟

  4. تشکرها از این نوشته :


  5. #3
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2013
    نوشته ها
    98
    تشکر
    76
    تشکر شده 16 بار در 14 پست

    پیش فرض

    سلام آره صفر نشون میده...
    یه برنامه نوشتم که فقط مقدار adcرو روی lcd نشون بده واینجوری نشون میده
    کمتر از 100 رو دوباره برمیگرده روی 1023

  6. #4
    همکار M3R آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    مسعود
    نوشته ها
    710
    تشکر
    426
    تشکر شده 649 بار در 304 پست

    پیش فرض

    من متوجه منظورتون نشدم!
    اگه موقعی که adc رو وصل کردید به زمین 0 نشون میده که دیگه تقریبا مشکل سخت افزاری ندارید!
    اگر برنامه ای که تست میکنید رو قرار بدید بهتر میشه شما رو راهنمایی کرد

  7. تشکرها از این نوشته :


  8. #5
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2013
    نوشته ها
    98
    تشکر
    76
    تشکر شده 16 بار در 14 پست

    پیش فرض

    $regfile = "m8def.dat"
    $crystal = 4000000
    '-------------------------------------------------------------------------------
    Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , _
    Db7 = Portd.5
    Config Lcd = 16 * 2
    Cursor Off
    Config Portc = Input

    Config Adc = Single , Prescaler = Auto , Reference = Off
    '-------------------------------------------------------------------------------
    Start Adc
    Dim X As Word , Y As Word
    X = 0
    Cls
    Waitms 50
    Do
    X = Getadc(3)
    Y = Getadc(0)
    Locate 1 , 1
    Lcd Y
    Locate 2 , 1
    Lcd X
    Waitms 20
    Loop
    End
    هرچی فاصلم از یه جسم بیشتر میشه مقدار کمتری رو نشون میده(دارم با سنسورir کار میکنم)
    ولی وقتی مقدار adcبه 100 میرسه دوباره برمیگرده از حداکثر رو نشون میده
    به Adc(0) زمین رو وصل کردم
    ویرایش توسط azadmard : 31-01-2014 در ساعت 13:20

  9. #6
    همکار M3R آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    مسعود
    نوشته ها
    710
    تشکر
    426
    تشکر شده 649 بار در 304 پست

    پیش فرض

    بهتره که رفرنس رو به جای off یه چیز دیگه بزارید (تو help بسکام چیزی از مگا 8 و رفرنس off ننوشته واسه بقیه میکرو ها هست ولی اسمی از مگا 8 برده نشده!!)مثلا بزارید avcc
    و دوم اینکه خط:
    [PHP]LCD Y[/PHP]
    رو به خط زیر تغییر بدید:
    [PHP]LCD Y;" "[/PHP]
    و سوم اینکه نتیجه رو بگید

  10. تشکرها از این نوشته :


  11. #7
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2013
    نوشته ها
    98
    تشکر
    76
    تشکر شده 16 بار در 14 پست

    پیش فرض

    دوباره همون اوضاع برقرار بود و زیر 100 رو دوباره برمیگرده بالا
    internul هم گذاشتم که اصلا میکرو کار نکرد

  12. #8
    همکار M3R آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    مسعود
    نوشته ها
    710
    تشکر
    426
    تشکر شده 649 بار در 304 پست

    پیش فرض

    با avcc هم تست کنید!
    پایه های تغذیه adc رو وصل کردید؟
    یه خازن 104 هم بین vcc و gnd قرار بدید

  13. #9
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2013
    نوشته ها
    98
    تشکر
    76
    تشکر شده 16 بار در 14 پست

    پیش فرض

    بازم همون اوضاع....
    تنظیم فیوزبیتی چیزی نمیخواد؟

  14. #10
    همکار M3R آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    مسعود
    نوشته ها
    710
    تشکر
    426
    تشکر شده 649 بار در 304 پست

    پیش فرض

    شما یه کاری کن:
    سر وسط یه پتانسیومتر (مقدارش مهم نیست) به پایه 3 adc و یه سر دیگه به vcc و سر دیگه به gnd!
    بعد با تغییر پتانسیومتر ببین مقدار نمایش داده شده روی lcd بازم مشکل داره؟

  15. #11
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2013
    نوشته ها
    98
    تشکر
    76
    تشکر شده 16 بار در 14 پست

    پیش فرض

    کاملا درسته
    میدونی کجای کار ایراد داشت؟
    مقدار Adc بین 0 تا 1023 بود ولی موقع نمایش وقتی کمتر از 100 میشد و دورقمی میشد،رقم سوم ثابت باقی میموند و من فکر میکردم که برگشته به 900 نگو رقم آخر ثابت بود و فهمیدم نباید نمایش ثابت بدم و باید قبل از هربار نمایش روی lcd ، cls بکنم تا اگه وارد دورقمی شد،رقم سوم رو پاک بکنه...این راه دیگه ای نداره؟
    ممنون از کمکهاتون...

  16. #12
    ناظم سایت KHM آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    1,047
    تشکر
    2,895
    تشکر شده 2,131 بار در 905 پست

    پیش فرض

    نقل قول نوشته اصلی توسط azadmard نمایش پست ها
    کاملا درسته
    میدونی کجای کار ایراد داشت؟
    مقدار Adc بین 0 تا 1023 بود ولی موقع نمایش وقتی کمتر از 100 میشد و دورقمی میشد،رقم سوم ثابت باقی میموند و من فکر میکردم که برگشته به 900 نگو رقم آخر ثابت بود و فهمیدم نباید نمایش ثابت بدم و باید قبل از هربار نمایش روی lcd ، cls بکنم تا اگه وارد دورقمی شد،رقم سوم رو پاک بکنه...این راه دیگه ای نداره؟
    ممنون از کمکهاتون...
    چرا داره..راهش اینه که 2تا فاصله بذاری بعد عددت...ولی هر از گاهی lcd رو پاک کنی خوب میشه..نمیذاره هنگ کنه...

  17. تشکرها از این نوشته :


  18. #13
    همکار M3R آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    مسعود
    نوشته ها
    710
    تشکر
    426
    تشکر شده 649 بار در 304 پست

    پیش فرض

    نقل قول نوشته اصلی توسط azadmard نمایش پست ها
    کاملا درسته
    میدونی کجای کار ایراد داشت؟
    مقدار Adc بین 0 تا 1023 بود ولی موقع نمایش وقتی کمتر از 100 میشد و دورقمی میشد،رقم سوم ثابت باقی میموند و من فکر میکردم که برگشته به 900 نگو رقم آخر ثابت بود و فهمیدم نباید نمایش ثابت بدم و باید قبل از هربار نمایش روی lcd ، cls بکنم تا اگه وارد دورقمی شد،رقم سوم رو پاک بکنه...این راه دیگه ای نداره؟
    ممنون از کمکهاتون...
    من که تو پست شماره 6 بهتون گفتم مگه شما اون تغییر رو ندادید تو برنامتون

  19. تشکرها از این نوشته :


  20. #14
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2013
    نوشته ها
    98
    تشکر
    76
    تشکر شده 16 بار در 14 پست

    پیش فرض

    من که تو پست شماره 6 بهتون گفتم مگه شما اون تغییر رو ندادید تو برنامتون
    چرا انجام دادم ولی نه جلوی این adc جلوی اون پایه که زمین کرده بودم گذاشتم...
    مرسی از کمکهاتون

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

  1. پاسخ: 3
    آخرين نوشته: 05-07-2013, 15:14
  2. مشخصات میکرو atmega8
    توسط kendab در انجمن AVR
    پاسخ: 2
    آخرين نوشته: 13-02-2013, 19:30
  3. atmega8 pin
    توسط mehrdad22 در انجمن ATXMEGA
    پاسخ: 4
    آخرين نوشته: 09-11-2011, 19:56
  4. مشکل با تایمرها در atmega8
    توسط morteza_rk در انجمن AVR
    پاسخ: 16
    آخرين نوشته: 07-03-2010, 14:10

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

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