پاسخ : مشکل با سنسور 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 کار کردین؟
میدونین چطور باید امتحانش کنم؟
بازم از لطفت تشکر میکنم
دیدگاه