امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 2
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در برنامه نویسی اندازه گیر ظرفیت خازن
نویسنده پیام
cortex-m3 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 93
موضوع‌ها: 40
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 11
( 24 تشکر در 13 ارسال )
ارسال: #1
مشکل در برنامه نویسی اندازه گیر ظرفیت خازن
با سلام دوستان
امروز میخواستم یک دستگاه درست کنم که وقتی خازن با ظرفیت مجهول رو توی مدار بزاریم ظرفیتشو نشون بده.
تو این پروژه از این قانون که (R*C=ثابت زمانی و اینکه ولتاژ خازن در این زمان، 0.632 برابر ولتاژ ورودی است)استفاده کنم.
بنابراین مدارش رو توی PROTEUS شبیه سازی کردم.اینم لینک مدار با فایل PROTEUS و کد اون با زبان CODEVISION:
Capacitance Meter
روش کار برنامه ای که نوشتم اینجوریه که یک کلید برای ورودیش گذاشتم (PINB.0) تا با زدن این کلید مدار کارشو شروع کنه(که این کار رو خط اول برنامه انجام میدهwhile(PINB.0==0)) همچنین برای اینکه تا زمانیکه کلیدی رو نزدیم روی LCD خالی نباشه یک تابع نوشتم که روی LCD مینویسه"PUSH <START>".پس تا زمانیکه کلید زده نشه روی LCD، PUSH <START>”"نوشته میشه و وقتی کلید زده بشه برنامه شروع میشه:اول LCD رو پاک میکنه(خط دوم برنامه)بعدشم مقدار ولتاژ خازن رو از طریق ADC میخونه و توی یه متغییر ذخیره میکنه و خط بعدش هم این عدد رو به ولتاژ متناظرش تبدیل میکنه(خط 3 و4).همچنین در ادامه رله رو توسط (PORTD.0) فعال میکنه تا مدار اصلی (که همون مدار RC هست)شروع به کار کنه همچنین تایمر را راه اندازی میکنه(توسط دستور TCCR0=0x05; )که تایمر با فرکانس 7.813 کیلوهرتز شروع به کار میکنه.وسپس منتظر میمونه تا ولتاژ خازن(که از طریق ADC در حال خوندن هست) به 0.632برابر ولتاژ ورودی مدار RC (5 ولت) برسه(5*0.632=3.16) و وقتی به این ولتاژ رسید تایمر رو متوقف میکنه (TCCR0=0x00) و مقدار موجود در تایمر رو در متغییر t ذخیره میکنه و تایمر رو برای استفاده ی بعدی ، صفرش میکنه(TCNT0=0x00) و بعدش این مقدار t رو به رشته تبدیل میکنه تا توسط LCD قابل خواندن باشه(sprintf(str_t,"C=%f nf",t)) و بعدشم روی LCD نمایش داده میشه.
این روش کار برنامه من بود.در ضمن من زیاد با TIMER و LCDکار نکردم پس احتمالا توی برنامه نویسی اشتباه کردم .همچنین به نوع متغییر هام هم شک دارم(منظورم float,charهست).یا مثلا درسته که توی برنامه توسط ریجستر TCCR0 تایمر را متوقف و راه اندازی کنم؟
با تشکر
۳۰-بهمن-۱۳۹۲, ۱۳:۱۳:۱۹
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل در پاک کردن برنامه میکرو Salam7 1 398 ۲۹-بهمن-۱۴۰۰, ۲۲:۵۰:۴۴
آخرین ارسال: 1نفر
  مشکل برنامه تایمر با بیسکام soy1345 7 2,026 ۲۲-فروردین-۱۳۹۸, ۲۰:۴۸:۰۶
آخرین ارسال: 1نفر
Question [سوال] کمک در برنامه نویسی دور موتور خودرو HPower 6 2,592 ۲۵-آبان-۱۳۹۷, ۲۲:۰۳:۵۷
آخرین ارسال: alimogmov
  2 در یک (خازن و سلف سنج) دقیق LC Meter با ATMega8 alimogmov 2 6,813 ۲۰-آبان-۱۳۹۷, ۰۳:۱۶:۵۰
آخرین ارسال: DJ-Sichan
  اندازه گیر سلف و خازن با میکروکنترلر AVR baharbahari 33 27,119 ۱۴-دى-۱۳۹۶, ۰۰:۴۳:۵۹
آخرین ارسال: 1نفر
  راهنمایی برای حل مشکل برنامه در بسکام fedagh 2 3,420 ۱۲-دى-۱۳۹۵, ۱۸:۳۰:۵۹
آخرین ارسال: fedagh
  برنامه نویسی AVR به روش فلوچارتی با نرم افزار FLOWCODE AVR V3 koorosh.k 8 12,641 ۲۴-آذر-۱۳۹۵, ۲۲:۴۶:۰۸
آخرین ارسال: 1نفر
  مشکل در برنامه code vision 3.12 ali74342 10 7,232 ۲۲-مرداد-۱۳۹۵, ۰۰:۱۶:۰۷
آخرین ارسال: shima.rrr
  سوالهای برنامه نویسی با کامپایلر BASCOM EBKA 242 157,509 ۱۸-خرداد-۱۳۹۵, ۲۰:۱۸:۲۴
آخرین ارسال: hassan721
Exclamation [فوری] مشکل نوشتن برنامه AVR با تایمر مد مقایسه dr.mohammad 7 4,184 ۲۹-دى-۱۳۹۴, ۱۳:۲۸:۴۹
آخرین ارسال: sharin

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS