امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 1
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل با ADC مگا 8
نویسنده پیام
mostafa_naderi غایب
كاربر دو ستاره
**

ارسال‌ها: 145
موضوع‌ها: 14
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 474
( 320 تشکر در 119 ارسال )
ارسال: #1
مشکل با ADC مگا 8
سلام یکی از دوستام یه برنامه به من داده که خطایابی کنم
برنامه ولتاژ و دما رو lcd نشون می ده
محدوده ولتاژ 0 تا 50 که با استفاده از تقسیم مقاومتی 1/10 ولتاژ خروجی اندازه گیری میشه و در نهایت X*10 که میشه ولتاژ اصلیمون میشه
حالا اشکال چیه !!
با مگا32 پرش زیادی داریم تو اندازه گیری دما

اما وقتی از مگا 8 استفاده می کنیم اگه یکی از ورودی های ADC صفرباشه مدار درست کار می کنه اما اگه ولتاژ مثلا بشه 15 ولت دما هم 23 دما شروع می کنه به نوسان گاهی هم با کم زیاد کردن ولتاژ دما هم شروع می کنه به تغییر

یه مورد دیگه هم که هست کارکتری که واسه علامت درجه ساخته شده رو مگا 32 درست نشون می ده اما رو مگاه 8 چینی می نویسه !!!!
تکنیک های نویز گیری ADC انجام دادم فرقی نکرد
این برنامه منتظر راهنماییم!!
کد php:
$regfile "m8def.dat"
$crystal 1000000
Config Lcdpin 
Pin Db7 Pinb.2 Db6 Pinb.3 Db5 Pinb.4 Db4 Pinb.5 Pinb.1 Rs Pinb.0
Config Lcd 
16 Cursor Off Cls
Config Portd 
Output
Config Adc 
Single Prescaler Auto
Start Adc
Deflcdchar 0 
28 20 28 32 7            'c
Deflcdchar 1 , 24 , 28 , 30 , 31 , 3 , 7 , 15 , 31          ' 
fan left
Deflcdchar 2 
31 30 28 24 31 15 3          ' fan right
Dim A As Word , C As Word
Dim B As Single , D As Single
Dim V As String * 10 , T As String * 10
Do
If Pinc.5 = 1 Then : Goto Over
Else
Gosub VLOt
Gosub Temp
Gosub Fan
Gosub Sw
End If
Loop




Vlot:
Locate 1 , 1 : Lcd V ; " V  "
A = Getadc(2)
B = A * 4.91
B = B / 1024
V = Fusing(b , "#.##")

Return

Over:
Cls
Locate 1 , 1 : Lcd "!!OVER  CURNET!!"
Set Portd.0
Waitms 200
Reset Portd.0
Waitms 200
Return

Temp:
Locate 1 , 12 : Lcd T : Lcd Chr(0) ; " "
C = Getadc(0)
D = C * 491
D = D / 1024
T = Fusing(d , "#.#")
Return

Sw:
If A > 700 Then : Set Portd.1 : End If
If A < 650 Then : Reset Portd.1 : End If
Return

Fan:
If C > 750 Then : Set Portd.2 : Locate 2 , 15 : Lcd ; Chr(1) ; Chr(2) : End If
If C < 650 Then : Reset Portd.2 : Locate 2 , 15 : Lcd "  " : End If
Return 

(آخرین ویرایش در این ارسال: ۲۳-بهمن-۱۳۸۸, ۱۲:۱۶:۵۴، توسط mostafa_naderi.)
۲۳-بهمن-۱۳۸۸, ۱۲:۱۴:۵۶
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #2
RE: مشکل با ADC مگا 8
مهندس نقشه رو هم بذار !

الان Pinc.5 به چی وصل شده !

منظورت از پرش چیه ؟؟؟
۲۳-بهمن-۱۳۸۸, ۱۲:۳۷:۰۸
ارسال‌ها
پاسخ
تشکر شده توسط : mostafa_naderi
mostafa_naderi غایب
كاربر دو ستاره
**

ارسال‌ها: 145
موضوع‌ها: 14
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 474
( 320 تشکر در 119 ارسال )
ارسال: #3
RE: مشکل با ADC مگا 8
(۲۳-بهمن-۱۳۸۸, ۱۲:۳۷:۰۸)t3r!p3000 نوشته است: مهندس نقشه رو هم بذار !

الان Pinc.5 به چی وصل شده !

منظورت از پرش چیه ؟؟؟

به یه اپتو کوپلر وصل شده که در حالت عادی پول دن شده هر وقت که خروجی اتصال کوتاه بشه این پین یک میشه الان زمین شده
متاسفانه پروتوئس مشکل داره باید ورژن جدید بگیرم
اگه خیلی نیازه با پینت بکشم

منظور از پرش یعنی بین مثلا 27 28 29 درجه هی بالا پاین میشه اعداد بزرگ و نمیشه اغماض کرد البته این وقتی اتفاق می افته که ورودی ولتاژ تغییر کنه اگه صفر باشه مشکلی نیست
الان وقتی ولتاژ رو 0 دما دقیق و درست 22.5 نشون می ده حالا وقتی پایه مربوط به ADC ولتاژ وصل می کنم به VCC دما میشه 31.2

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

(آخرین ویرایش در این ارسال: ۲۳-بهمن-۱۳۸۸, ۱۳:۳۱:۲۱، توسط mostafa_naderi.)
۲۳-بهمن-۱۳۸۸, ۱۳:۲۰:۴۱
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #4
RE: مشکل با ADC مگا 8
مهندس من از برنامت چیز زیادی سر در نیاوردم ولی اینو امتحان کن :

کد php:
$regfile "m8def.dat" $crystal 1000000

Config Lcdpin 
Pin Db7 Pinb.2 Db6 Pinb.3 Db5 Pinb.4 Db4 Pinb.5 Pinb.1 Rs Pinb.0
Config Lcd 
16 Cursor Off Cls

Ddrd 
255
Config Adc 
Single Prescaler Auto Start Adc

Config Timer1 
Timer Prescale 1024
On Timer1 Ant 
Enable Interrupts Enable Timer1

Deflcdchar 0 
28 20 28 32 7            'c
Deflcdchar 1 , 24 , 28 , 30 , 31 , 3 , 7 , 15 , 31          ' 
fan left
Deflcdchar 2 
31 30 28 24 31 15 3          'Fan Right

Dim A As Word , C As Word , B As Single , D As Single
Dim V As String * 10 , T As String * 10 , Z As Word , W As Byte

Star:
Do
   Gosub Vlot
   For Z = 0 To 200
      Debounce Pinc.5 , 1 , Over , Gosub
      Gosub Ali
   Next
   Gosub Sw
   For Z = 0 To 200
      Debounce Pinc.5 , 1 , Over , Gosub
      Gosub Ali
   Next
   Gosub Fan
   For Z = 0 To 200
      Debounce Pinc.5 , 1 , Over , Gosub
      Gosub Ali
   Next
   Gosub Temp
   For Z = 0 To 200
      Debounce Pinc.5 , 1 , Over , Gosub
      Gosub Ali
   Next
Loop

Vlot:
   Home : Lcd V ; " V  "
   A = Getadc(2) : B = A * 4.91 : B = B / 1024 : V = Fusing(b , "#.##")
Return

Over:
   Home : Lcd "!!OVER  CURNET!!"
   Set Portd.0 : Start Timer1
Return

Temp:
   C = Getadc(0) : D = C * 491 : D = D / 1024 : T = Fusing(d , "#.#")
   Locate 1 , 12 : Lcd T : Lcd Chr(0) ; " "
Return

Sw:
   If A > 700 Then Set Portd.1
   If A < 650 Then Reset Portd.1
Return

Fan:
   If C > 750 Then : Set Portd.2 : Locate 2 , 15 : Lcd ; Chr(1) ; Chr(2) : End If
   If C < 650 Then : Reset Portd.2 : Locate 2 , 15 : Lcd "  " : End If
Return

Ali:
      If Pinc.5 = 0 Then : Stop Timer1 : Timer1 = 0 : Reset Portd.0
      End If
Return

Ant:
   If Pinc.5 = 1 Then Toggle Portd.0
Return 
۲۳-بهمن-۱۳۸۸, ۱۵:۱۱:۴۷
ارسال‌ها
پاسخ
تشکر شده توسط : mostafa_naderi
mostafa_naderi غایب
كاربر دو ستاره
**

ارسال‌ها: 145
موضوع‌ها: 14
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 474
( 320 تشکر در 119 ارسال )
ارسال: #5
RE: مشکل با ADC مگا 8
تشکر همشهری اما کما کان 2 adc تابع هم تغییر می کنند نمی دونم چشه شاید از مگا 8
درست شد !!! با یه مقاومت 1 کیلو پایه خروجی lm35 زمین کردم درست شد نمی دونم چرا اینجوری شده بود

حالا واسه مشکل دوم راه حلی ندارید؟

رو ال سی دی اوون کارکتر مورد نظر نشون نمی ده
مشکل دوم هم حل شد

(آخرین ویرایش در این ارسال: ۲۳-بهمن-۱۳۸۸, ۱۶:۵۵:۱۸، توسط mostafa_naderi.)
۲۳-بهمن-۱۳۸۸, ۱۶:۰۳:۴۲
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #6
RE: مشکل با ADC مگا 8
ما که آخرش نفهمیدم مشکل چی بود و چجوری درست شد !!!

دوباره کارکتر رو تعریف کن و اگه منظورت کارکتر Fan Right هستش فقط خود تعریفش رو بنویش و انتهای خط رو پاک کن !!

نقل قول: Deflcdchar 2 , 31 , 30 , 28 , 24 , 31 , 15 , 7 , 3
۲۳-بهمن-۱۳۸۸, ۱۷:۵۳:۲۶
ارسال‌ها
پاسخ
تشکر شده توسط : mostafa_naderi
mostafa_naderi غایب
كاربر دو ستاره
**

ارسال‌ها: 145
موضوع‌ها: 14
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 474
( 320 تشکر در 119 ارسال )
ارسال: #7
RE: مشکل با ADC مگا 8
نه از این نبود
نمی دونم چرا مگا 8 با ال سی دی مشکل داشت و فقط کارکتر 1 تا 7 می تونه نمایش بده الان شماره کارکتر از 0 گزاشتم 3 درست شد

۲۳-بهمن-۱۳۸۸, ۱۹:۳۳:۰۲
ارسال‌ها
پاسخ


پرش به انجمن:


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

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