پاسخ : مشکل با سنسور DHT11
ممنونم واقعا لطف بزرگی بهم کردی 
متاسفانه پروگرامرم خراب شد
غیر از اون هم کلا استاد پروژه رو با avr ازم قبول نکرد
گفت همون با pic بزن :cry:
راستی شما با ic درایور max 7219 کار کردین؟
میدونین چطور باید امتحانش کنم؟
بازم از لطفت تشکر میکنم
نوشته اصلی توسط mohammad...
سلام احمد جان
آقا گفتی که هیچ کدوم از برنامه ها کار نمی کنه سون سگمنتا هیچی نشون نمیدن منم رفتم یه دونه از این مالتی پلکس 4تایی کاتد خریدم خلاصه می خوام اثبات کنم که برنامه کار می کنه :mrgreen: :mrgreen: :mrgreen:
همه کدهای قبلی کار میکنند شاید شما سر راه این مالتی پلکس مقاومت می گذاشتی برا همین هیچی نشون نمیداد لازم نیست مقاومت بزاری چون جریانی که به پایه های سگمنتا می رسه خیلی کمه
این کدی که مذارم دیگه نسخه فاینال هست ولی یه مشکلی که اینجا هست اگه نگاه کنی در قسمت فانکشن یه تاخیر 20 میلی ثانیه هست که کل محاسبات رو به هم میریزه کاریش نمیشه کرد یعنی این باعث میشه زمان رفرش سگمنات بیاد پایین یعنی کند کند سگمنتا رو رفرش می کنه اما این کد تقریبا خوبه درسته یکمی پر پر زدن داره ولی قابل قبوله برای پر رنگ شدن نور سگمنتات کافیه اون waitms ها هم در برنامه اصلی و هم در قسمت فانکشن افزایش بدی و حداقلش 2 میلی ثانیه تا 10 میلی ثانیه هست البته هر چقدر وقفه ها بره بالا مسلما زمان رفرش میاد پایین که ترجیح می دم زیاد نگاه نکنی تا هپنوتیزمت نکنه مشکل عوض شدن رطوبت هم رفع کردم البته شاید دیگه پروژت رو تحویل داده باشی ولی تا اینجاش رفتیم دیدم دیگه ول کردی گفتم خودم تموم کنم شاید به درد بقیه هم بخوره
پس یادتون باشه اگه می خوان رطوبت و دما بدون مشکل نشان داده شود و باعث آزار چشمتان نشود همون سون سگمنتای معمولی با bcd رو بهتون پیشنهاد می کنم اینم خوبه ولی زیاد نباید بهش نگاه کرد که چشاتون درد نگیره
اینم از کد فاینال نسخه نهایی:
البته سخت افزار همونه

آقا گفتی که هیچ کدوم از برنامه ها کار نمی کنه سون سگمنتا هیچی نشون نمیدن منم رفتم یه دونه از این مالتی پلکس 4تایی کاتد خریدم خلاصه می خوام اثبات کنم که برنامه کار می کنه :mrgreen: :mrgreen: :mrgreen:
همه کدهای قبلی کار میکنند شاید شما سر راه این مالتی پلکس مقاومت می گذاشتی برا همین هیچی نشون نمیداد لازم نیست مقاومت بزاری چون جریانی که به پایه های سگمنتا می رسه خیلی کمه
این کدی که مذارم دیگه نسخه فاینال هست ولی یه مشکلی که اینجا هست اگه نگاه کنی در قسمت فانکشن یه تاخیر 20 میلی ثانیه هست که کل محاسبات رو به هم میریزه کاریش نمیشه کرد یعنی این باعث میشه زمان رفرش سگمنات بیاد پایین یعنی کند کند سگمنتا رو رفرش می کنه اما این کد تقریبا خوبه درسته یکمی پر پر زدن داره ولی قابل قبوله برای پر رنگ شدن نور سگمنتات کافیه اون waitms ها هم در برنامه اصلی و هم در قسمت فانکشن افزایش بدی و حداقلش 2 میلی ثانیه تا 10 میلی ثانیه هست البته هر چقدر وقفه ها بره بالا مسلما زمان رفرش میاد پایین که ترجیح می دم زیاد نگاه نکنی تا هپنوتیزمت نکنه مشکل عوض شدن رطوبت هم رفع کردم البته شاید دیگه پروژت رو تحویل داده باشی ولی تا اینجاش رفتیم دیدم دیگه ول کردی گفتم خودم تموم کنم شاید به درد بقیه هم بخوره
پس یادتون باشه اگه می خوان رطوبت و دما بدون مشکل نشان داده شود و باعث آزار چشمتان نشود همون سون سگمنتای معمولی با bcd رو بهتون پیشنهاد می کنم اینم خوبه ولی زیاد نباید بهش نگاه کرد که چشاتون درد نگیره
اینم از کد فاینال نسخه نهایی:
البته سخت افزار همونه

کد:
$regfile = "m8def.dat"
$crystal = 8000000
Declare function Get_th(t As Byte , H As Byte) as Byte
Config Single = Scientific , Digits = 1
Dht_put Alias Portc.0
Dht_get Alias Pinc.0
Dht_io_set Alias Ddrc.0
Config Portc.2 = Output
Config Portc.3 = Output
Config Portc.4 = Output
Config Portc.5 = Output
Config Portb = Output
Dim T As Byte
Dim H As Byte
Dim Crc As Byte
Dim Mybyte As Byte
Dim Sensor_data As String * 40
Dim Tmp_str8 As String * 8
Dim Count As Byte
Dim T_ As Single
Dim T_1 As Byte
Dim H_ As Single
Dim H_1 As Byte
Dim T_2 As Single
Dim T_3 As Byte
Dim H_2 As Single
Dim H_3 As Byte
Enable Interrupts
Set Dht_io_set
Set Dht_put
'*******************************************************************************
T = 25
H = 54
'*******************************************************************************
Cls
Do
'###############################################################################
H = Get_th(t , H)
'###############################################################################
T_ = T / 10
T_1 = Int(t_)
H_ = H / 10
H_1 = Int(h_)
T_2 = Frac(t_)
T_2 = T_2 * 10
T_3 = Int(t_2)
H_2 = Frac(h_)
H_2 = H_2 * 10
H_3 = Int(h_2)
Portc = &B1111011
Portb = Lookup(t_1 , Temp_humidity)
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Waitms 2
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Portc = &B11110111
Portb = Lookup(t_3 , Temp_humidity)
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Waitms 2
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Portc = &B1101111
Portb = Lookup(h_1 , Temp_humidity)
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Waitms 2
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Portc = &B1011111
Portb = Lookup(h_3 , Temp_humidity)
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Waitms 2
Portc = &B1111111
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Loop
Function Get_th(t As Byte , H As Byte)
Count = 0
Sensor_data = ""
Set Dht_io_set
Reset Dht_put
Waitms 20
Set Dht_put
Waitus 40
Reset Dht_io_set
Waitus 40
If Dht_get = 1 Then
H = 1
Exit Sub
End If
Waitus 80
If Dht_get = 0 Then
H = 2
Exit Sub
End If
While Dht_get = 1 : Wend
Do
While Dht_get = 0 : Wend
Waitus 30
If Dht_get = 1 Then
Sensor_data = Sensor_data + "1"
While Dht_get = 1 : Wend
Else
Sensor_data = Sensor_data + "0"
End If
Incr Count
Loop Until Count = 40
Set Dht_io_set
Set Dht_put
Portc = &B1111011
Portb = Lookup(t_1 , Temp_humidity)
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Waitms 2
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Portc = &B11110111
Portb = Lookup(t_3 , Temp_humidity)
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Waitms 2
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Portc = &B1101111
Portb = Lookup(h_1 , Temp_humidity)
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Waitms 2
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Portc = &B1011111
Portb = Lookup(h_3 , Temp_humidity)
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Waitms 2
Portc = &B1111111
Tmp_str8 = Left(sensor_data , 8)
H = Binval(tmp_str8)
Tmp_str8 = Mid(sensor_data , 17 , 8)
T = Binval(tmp_str8)
Tmp_str8 = Right(sensor_data , 8)
Crc = Binval(tmp_str8)
Mybyte = T + H
If Mybyte <> Crc Then
H = 3
End If
End Function
Temp_humidity:
Data &H3F , &H06 , &H5B , &H4F , &H66 , &H6D , &H7D , &H07 , &H7F , &H6F

متاسفانه پروگرامرم خراب شد
غیر از اون هم کلا استاد پروژه رو با avr ازم قبول نکرد
گفت همون با pic بزن :cry:
راستی شما با ic درایور max 7219 کار کردین؟
میدونین چطور باید امتحانش کنم؟
بازم از لطفت تشکر میکنم






دیدگاه