اول از مدیران معذرت میخوام به پیشنهاد یکی از اعضا این تاپیک رو زدم چون دوستان جاهای دیگه جواب ندادن و دیدم خعلی یا یه همچین مشکلی دارن لطفا حذف نکنید کل اینترنت رو گشتم مشکلم حل نشد چند تا برنامه مختلف نوشتم همه به نوعی مشکل دارن
دوستان من با کمک برنامه جوجه کشی داخل سایت با همین سنسور یه برنامه برداشتم که فقط دما و روطوبت رو رو ال سی دی نشون بده
سنسورم sht10 هست ا حدوت 60 سانتی متر سیم توی سایت نوین کیت زده بود که اگر روی سنسور مثبت و منفی رو با یه خازن 100 نانو بهم وصل کنی میتونی تا یه متر اضافه کنی سیمو
من این کار رو کردم . البته بعدا اون سیم رو هم حذف کردم و مستقیم با یه سیم 5 سانتی متری بمیکرو وصل کردم طبق مدار جوجه کشی که سنسور رو با یه مگا 8 خونده و بعد به صورت سریال فرستاده به میکرو من هم برای کلاک و هم دیتای سنسور مقاومت 10 کیلو پول اپ زدم البته من سریال نمیفرستم فقط مقاومت ها رو عین اون مدار وصل کردم من فقط میخوام رو ال سی دی نشون بدم حالا مشکلی که دارم تو یهوای اتاق که حدود 20 درجه است دما رو 68 و رطوبت رو 121 درصد نشون میده اینم بگم که با خازن و بدون خازنم تست کردم مقاومت پول اپ کلاک هم برداشتم بازم همین شد چندا برنامه دیگه هم از اینترنت و سایت بسکام و همین سایت خودمون گرفتم ولی بار نتونستم جواب بگیرم همین برنامه ی اقای جودی رو هم تست کردم نتونستم جواب بگیرم من به جای مگا 8 که دما رو میخونه و به صورت سریال به مگا32 میفرسته فقط از یه مگا 32 استفاده کردم به پورت c0 , C1 ,توی مگا 32 وصل کردم یعنی SCL وSDA ولی بقیه با پین های دیگه برنامه نوشتن البته من تو برنامه همه رو تعقیر دادم یعنی میشه مشکل از اون باشه
اینم برنامه من میشه کمکم کنید اشکالم کجاست در ضمن من طبق گفته دوستمون فیوز بیت جیتگ رو هم غیر فعال کردم ولی باز در همون حدوده . از استاتید تقاضا دارم برنامه منو برسی کنند و راهنمایم کنن
سنسورم sht10 هست ا حدوت 60 سانتی متر سیم توی سایت نوین کیت زده بود که اگر روی سنسور مثبت و منفی رو با یه خازن 100 نانو بهم وصل کنی میتونی تا یه متر اضافه کنی سیمو
من این کار رو کردم . البته بعدا اون سیم رو هم حذف کردم و مستقیم با یه سیم 5 سانتی متری بمیکرو وصل کردم طبق مدار جوجه کشی که سنسور رو با یه مگا 8 خونده و بعد به صورت سریال فرستاده به میکرو من هم برای کلاک و هم دیتای سنسور مقاومت 10 کیلو پول اپ زدم البته من سریال نمیفرستم فقط مقاومت ها رو عین اون مدار وصل کردم من فقط میخوام رو ال سی دی نشون بدم حالا مشکلی که دارم تو یهوای اتاق که حدود 20 درجه است دما رو 68 و رطوبت رو 121 درصد نشون میده اینم بگم که با خازن و بدون خازنم تست کردم مقاومت پول اپ کلاک هم برداشتم بازم همین شد چندا برنامه دیگه هم از اینترنت و سایت بسکام و همین سایت خودمون گرفتم ولی بار نتونستم جواب بگیرم همین برنامه ی اقای جودی رو هم تست کردم نتونستم جواب بگیرم من به جای مگا 8 که دما رو میخونه و به صورت سریال به مگا32 میفرسته فقط از یه مگا 32 استفاده کردم به پورت c0 , C1 ,توی مگا 32 وصل کردم یعنی SCL وSDA ولی بقیه با پین های دیگه برنامه نوشتن البته من تو برنامه همه رو تعقیر دادم یعنی میشه مشکل از اون باشه
اینم برنامه من میشه کمکم کنید اشکالم کجاست در ضمن من طبق گفته دوستمون فیوز بیت جیتگ رو هم غیر فعال کردم ولی باز در همون حدوده . از استاتید تقاضا دارم برنامه منو برسی کنند و راهنمایم کنن
$regfile = "m32def.dat"
$crystal = 8000000
Config Lcdpin = Pin , Rs = Pina.0 , E = Pina.1 , Db4 = Pina.2 , Db5 = Pina.3 , Db6 = Pina.4 , Db7 = Pina.5
Config Lcd = 16 * 2
Cursor Off
Cls
Sck Alias Portc.0
Dataout Alias Portc.1
Datain Alias Pinc.1
Config Portc.0 = Output
Config Portc.1 = Output
Cls
Gosub Signal_reset : Waitms 10
Do
Command = &B00000101 : Gosub Get_sht10
Gosub Calcula_rh_liner_12bit
Command = &B00000011 : Gosub Get_sht10
Gosub Calcula_temp_14bit
Waitms 100
Locate 1 , 1 : Lcd "T=" ; Temp
Locate 2 , 1 : Lcd "h=" ; Humidity
Waitms 100
'**********************************************
Status_register_write:
Gosub Signal_start
Command = &B00000110 : Shiftout Dataout , Sck , Command , 1
Gosub Signal_ack
Command = &B00000000 : Shiftout Dataout , Sck , Command , 1
Gosub Signal_ack
Return
'*******************************************
Status_register_read:
Gosub Signal_start
Command = &B00000111
Shiftout Dataout , Sck , Command , 1
Gosub Signal_ack
Gosub Read_byte : Data_msb = Data_byte
Gosub Signal_ack
Gosub Read_byte : Crc = Data_byte
Return
'*******************************************
Setting_default:
Gosub Signal_start
Command = &B00011110 : Shiftout Dataout , Sck , Command , 1
Gosub Signal_ack
Waitms 100
Return
'*******************************************
Get_sht10:
Gosub Signal_start
Gosub Send_command
Gosub Signal_ack
Gosub Wait_for_data_ready
Gosub Read_byte : Data_msb = Data_byte
Gosub Signal_ack
Gosub Read_byte : Data_lsb = Data_byte
Gosub Signal_ack
Gosub Read_byte : Crc = Data_byte
Gosub Signal_end
Data_msb = Data_msb And &B00111111
Data_word = Makeint(data_lsb , Data_msb)
Return
'*******************************************
Signal_reset:
Config Portc.0 = Output
Config Portc.1 = Output
Reset Sck : Set Dataout : Waitus 1
For I = 1 To 9
Set Sck : : Waitus 1 :
Reset Dataout : Waitus 1
Next I
Return
'*******************************************
Signal_start:
Config Portc.0 = Output
Config Portc.1 = Output
Reset Sck : Set Dataout : Waitus 1
Set Sck : : Waitus 1 :
Reset Dataout : Waitus 1
Reset Sck : Waitus 1
Set Sck : Waitus 1
Set Dataout : : Waitus 1
Reset Sck : Waitus 1
Crc = 0
Return
'*******************************************
Send_command:
Config Portc.0 = Output : Portc.0 = 0
Config Portc.1 = Output : Portc.1 = 0
Shiftout Dataout , Sck , Command , 1
Return
'*******************************************
Wait_for_data_ready:
Config Portc.0 = Output
Config Portc.1 = Input
Set Dataout
For I = 1 To 255
If Dataout = 0 Then Exit For
Waitms 1
Next
Return
'*******************************************
Read_byte:
Config Portc.0 = Output : Portc.0 = 0
Config Portc.1 = Input : Portc.1 = 1
Shiftin Datain , Sck , Data_byte , 1
Return
'*******************************************
Signal_ack:
Config Portc.0 = Output
Config Portc.1 = Output
Reset Dataout : Reset Sck
Set Sck : Waitus 1
Reset Sck
Return
'*******************************************
Signal_end:
Config Portc.0 = Output
Config Portc.1 = Output
Set Dataout : Waitus 1
Set Sck : Waitus 1
Reset Sck : Waitus 1
Return
'*******************************************
Calcula_rh_liner_12bit:
Rh_liner = Data_word * Data_word
Rh_liner = Rh_liner * -0.0000015955
Z = 0.0367 * Data_word
Rh_liner = Rh_liner + Z
Rh_liner = Rh_liner - 2.0468
Humidity = ""
Humidity = Fusing(rh_liner , "#.#")
Return
'*******************************************
Calcula_temp_14bit:
Temp_single = 0.01 * Data_word
Temp_single = Temp_single - 40.1
Temp = ""
Temp = Fusing(temp_single , "#.#")
Return
'/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*
End
'/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*
$crystal = 8000000
Config Lcdpin = Pin , Rs = Pina.0 , E = Pina.1 , Db4 = Pina.2 , Db5 = Pina.3 , Db6 = Pina.4 , Db7 = Pina.5
Config Lcd = 16 * 2
Cursor Off
Cls
Sck Alias Portc.0
Dataout Alias Portc.1
Datain Alias Pinc.1
Config Portc.0 = Output
Config Portc.1 = Output
Cls
Gosub Signal_reset : Waitms 10
Do
Command = &B00000101 : Gosub Get_sht10
Gosub Calcula_rh_liner_12bit
Command = &B00000011 : Gosub Get_sht10
Gosub Calcula_temp_14bit
Waitms 100
Locate 1 , 1 : Lcd "T=" ; Temp
Locate 2 , 1 : Lcd "h=" ; Humidity
Waitms 100
'**********************************************
Status_register_write:
Gosub Signal_start
Command = &B00000110 : Shiftout Dataout , Sck , Command , 1
Gosub Signal_ack
Command = &B00000000 : Shiftout Dataout , Sck , Command , 1
Gosub Signal_ack
Return
'*******************************************
Status_register_read:
Gosub Signal_start
Command = &B00000111
Shiftout Dataout , Sck , Command , 1
Gosub Signal_ack
Gosub Read_byte : Data_msb = Data_byte
Gosub Signal_ack
Gosub Read_byte : Crc = Data_byte
Return
'*******************************************
Setting_default:
Gosub Signal_start
Command = &B00011110 : Shiftout Dataout , Sck , Command , 1
Gosub Signal_ack
Waitms 100
Return
'*******************************************
Get_sht10:
Gosub Signal_start
Gosub Send_command
Gosub Signal_ack
Gosub Wait_for_data_ready
Gosub Read_byte : Data_msb = Data_byte
Gosub Signal_ack
Gosub Read_byte : Data_lsb = Data_byte
Gosub Signal_ack
Gosub Read_byte : Crc = Data_byte
Gosub Signal_end
Data_msb = Data_msb And &B00111111
Data_word = Makeint(data_lsb , Data_msb)
Return
'*******************************************
Signal_reset:
Config Portc.0 = Output
Config Portc.1 = Output
Reset Sck : Set Dataout : Waitus 1
For I = 1 To 9
Set Sck : : Waitus 1 :
Reset Dataout : Waitus 1
Next I
Return
'*******************************************
Signal_start:
Config Portc.0 = Output
Config Portc.1 = Output
Reset Sck : Set Dataout : Waitus 1
Set Sck : : Waitus 1 :
Reset Dataout : Waitus 1
Reset Sck : Waitus 1
Set Sck : Waitus 1
Set Dataout : : Waitus 1
Reset Sck : Waitus 1
Crc = 0
Return
'*******************************************
Send_command:
Config Portc.0 = Output : Portc.0 = 0
Config Portc.1 = Output : Portc.1 = 0
Shiftout Dataout , Sck , Command , 1
Return
'*******************************************
Wait_for_data_ready:
Config Portc.0 = Output
Config Portc.1 = Input
Set Dataout
For I = 1 To 255
If Dataout = 0 Then Exit For
Waitms 1
Next
Return
'*******************************************
Read_byte:
Config Portc.0 = Output : Portc.0 = 0
Config Portc.1 = Input : Portc.1 = 1
Shiftin Datain , Sck , Data_byte , 1
Return
'*******************************************
Signal_ack:
Config Portc.0 = Output
Config Portc.1 = Output
Reset Dataout : Reset Sck
Set Sck : Waitus 1
Reset Sck
Return
'*******************************************
Signal_end:
Config Portc.0 = Output
Config Portc.1 = Output
Set Dataout : Waitus 1
Set Sck : Waitus 1
Reset Sck : Waitus 1
Return
'*******************************************
Calcula_rh_liner_12bit:
Rh_liner = Data_word * Data_word
Rh_liner = Rh_liner * -0.0000015955
Z = 0.0367 * Data_word
Rh_liner = Rh_liner + Z
Rh_liner = Rh_liner - 2.0468
Humidity = ""
Humidity = Fusing(rh_liner , "#.#")
Return
'*******************************************
Calcula_temp_14bit:
Temp_single = 0.01 * Data_word
Temp_single = Temp_single - 40.1
Temp = ""
Temp = Fusing(temp_single , "#.#")
Return
'/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*
End
'/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*