ايران ويج

نسخه‌ی کامل: راه اندازی سنسور sht11
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
بن سلام خدمت دوستان عزیز

می خواستم ی پروژه با sht11 اجرا کنم ولی اطلاعات خوبی در باره اش پیدا نکردم کسی پروژه داره در بارش داره!!؟
داش دمت گرم تا حدودی متوجه شده می خواستم ببینم امکانش هست ی آلگوریتم از اجرای این پروژه برام بگذارید... آخه این برنامه ها اکثرا PIC یا 8051 من زیاد سر در نیاوردم...
تا جایی که من متوجه شدم به یه پایه باید یک دیتا مربوط به حرارت یا رطوبت بدیم و بعد منتظر دریافت دیتا بشیم ولی نمی دونم پالس کلاک ش چطور باید بدیم یا چه فرکانسی باید داشته باشه!!!
(۱۶-آبان-۱۳۹۲, ۰۰:۱۶:۵۷)blackstar368 نوشته است: [ -> ]داش دمت گرم تا حدودی متوجه شده می خواستم ببینم امکانش هست ی آلگوریتم از اجرای این پروژه برام بگذارید... آخه این برنامه ها اکثرا PIC یا 8051 من زیاد سر در نیاوردم...
تا جایی که من متوجه شدم به یه پایه باید یک دیتا مربوط به حرارت یا رطوبت بدیم و بعد منتظر دریافت دیتا بشیم ولی نمی دونم پالس کلاک ش چطور باید بدیم یا چه فرکانسی باید داشته باشه!!!

من نمیدونم شرمنده
یعنی اینجا یک نفر هم نیست کمک کنه!!!! خیلی مهمه یک نفر ی کمکی بده!!! یعنی انقدر سخته!!!؟ بابا قبلا اینجا بیشتر کمک می کردین به آدم!!!!
عزیزم اینجا باید خودت شروع کنی تا بقیه کمکت کنن

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

Config Lcdpin 
Pin Rs Pina.0 Pina.2 Db4 Pina.4 Db5 Pina.5 Db6 Pina.6 Db7 Pina.7
Config Lcd 
16 2
Cursor Off
Cls

Dim I 
As Byte
Dim Z 
As Single

Dim Data_byte 
As Byte
Dim Data_msb 
As Byte
Dim Data_lsb 
As Byte
Dim Data_word 
As Word
Dim Crc 
As Byte

Dim Temp 
As Single
Dim Rh_liner 
As Single
Dim Command 
As Byte

Sck Alias Portc.1
Dataout Alias Portc.0
Datain Alias Pinc.0

Config Portc.1 
Output
Config Portc.0 
Output

Gosub Display_lcd_start_text
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

   Gosub Display_lcd

   Wait 1
Loop

End

'**********************************************
Display_lcd_start_text:
   Cls :
   Locate 1 , 1 : Lcd "   www.RoboPardaz.com"
   Locate 2 , 1 : Lcd "AVR   PIC   8051"
   Wait 2 : Cls : Waitms 200
Return

'
*******************************************
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
   Print "Status Register=" ; Data_msb
   Print "Checksum=" ; Crc
   Print
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.1 Output                                  ': Portc.1 = 1
   Config Portc.0 = Output                                  '
Portc.0 1
   Reset Sck 
Set Dataout Waitus 1
   
For 1 To 9
      Set Sck 
: : Waitus 1 :
      
Reset Dataout Waitus 1
   Next I
Return

'*******************************************
Signal_start:
   Config Portc.1 = Output                                  '
Portc.1 1
   Config Portc.0 
Output                                  ': Portc.0 = 1
   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.1 Output Portc.1 0
   Config Portc.0 
Output Portc.0 0
   Shiftout Dataout 
Sck Command 1
Return

'*******************************************
Wait_for_data_ready:
   Config Portc.1 = Output                                  '
Portc.1 0
   Config Portc.0 
Input                                   ': Portc.0 = 0
   Set Dataout
   For I = 1 To 255
      If Dataout = 0 Then Exit For
      Waitms 1
   Next
Return

'
*******************************************
Read_byte:
   
Config Portc.1 Output Portc.1 0
   Config Portc.0 
Input Portc.0 1
   Shiftin Datain 
Sck Data_byte 1
Return

'*******************************************
Signal_ack:
   Config Portc.1 = Output                                  '
Portc.1 0
   Config Portc.0 
Output                                  ': Portc.0 = 0
   Reset Dataout : Reset Sck
   Set Sck : Waitus 1
   Reset Sck
Return

'
*******************************************
Signal_end:
   
Config Portc.1 Output                                  ': Portc.1 = 1
   Config Portc.0 = Output                                  '
Portc.0 1
   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
Return

'
*******************************************
Calcula_temp_14bit:
   
Temp 0.01 Data_word
   Temp 
Temp 40.1
Return

'*******************************************
Display_lcd:
   Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32
   Locate 1 , 1 : Lcd "RH: " ; Fusing(rh_liner , "#.#") ; "%  "
   Locate 2 , 1 : Lcd "Temp: " ; Fusing(temp , "#.#") ; Chr(0) ; "C  "
Return 

[attachment=10585]

عکس پایه ها هم برات پایین پیوست کردم
(۱۸-آبان-۱۳۹۲, ۱۶:۳۰:۰۱)kimiafars نوشته است: [ -> ]عزیزم اینجا باید خودت شروع کنی تا بقیه کمکت کنن

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

Config Lcdpin 
Pin Rs Pina.0 Pina.2 Db4 Pina.4 Db5 Pina.5 Db6 Pina.6 Db7 Pina.7
Config Lcd 
16 2
Cursor Off
Cls

Dim I 
As Byte
Dim Z 
As Single

Dim Data_byte 
As Byte
Dim Data_msb 
As Byte
Dim Data_lsb 
As Byte
Dim Data_word 
As Word
Dim Crc 
As Byte

Dim Temp 
As Single
Dim Rh_liner 
As Single
Dim Command 
As Byte

Sck Alias Portc.1
Dataout Alias Portc.0
Datain Alias Pinc.0

Config Portc.1 
Output
Config Portc.0 
Output

Gosub Display_lcd_start_text
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

   Gosub Display_lcd

   Wait 1
Loop

End

'**********************************************
Display_lcd_start_text:
   Cls :
   Locate 1 , 1 : Lcd "   www.RoboPardaz.com"
   Locate 2 , 1 : Lcd "AVR   PIC   8051"
   Wait 2 : Cls : Waitms 200
Return

'
*******************************************
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
   Print "Status Register=" ; Data_msb
   Print "Checksum=" ; Crc
   Print
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.1 Output                                  ': Portc.1 = 1
   Config Portc.0 = Output                                  '
Portc.0 1
   Reset Sck 
Set Dataout Waitus 1
   
For 1 To 9
      Set Sck 
: : Waitus 1 :
      
Reset Dataout Waitus 1
   Next I
Return

'*******************************************
Signal_start:
   Config Portc.1 = Output                                  '
Portc.1 1
   Config Portc.0 
Output                                  ': Portc.0 = 1
   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.1 Output Portc.1 0
   Config Portc.0 
Output Portc.0 0
   Shiftout Dataout 
Sck Command 1
Return

'*******************************************
Wait_for_data_ready:
   Config Portc.1 = Output                                  '
Portc.1 0
   Config Portc.0 
Input                                   ': Portc.0 = 0
   Set Dataout
   For I = 1 To 255
      If Dataout = 0 Then Exit For
      Waitms 1
   Next
Return

'
*******************************************
Read_byte:
   
Config Portc.1 Output Portc.1 0
   Config Portc.0 
Input Portc.0 1
   Shiftin Datain 
Sck Data_byte 1
Return

'*******************************************
Signal_ack:
   Config Portc.1 = Output                                  '
Portc.1 0
   Config Portc.0 
Output                                  ': Portc.0 = 0
   Reset Dataout : Reset Sck
   Set Sck : Waitus 1
   Reset Sck
Return

'
*******************************************
Signal_end:
   
Config Portc.1 Output                                  ': Portc.1 = 1
   Config Portc.0 = Output                                  '
Portc.0 1
   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
Return

'
*******************************************
Calcula_temp_14bit:
   
Temp 0.01 Data_word
   Temp 
Temp 40.1
Return

'*******************************************
Display_lcd:
   Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32
   Locate 1 , 1 : Lcd "RH: " ; Fusing(rh_liner , "#.#") ; "%  "
   Locate 2 , 1 : Lcd "Temp: " ; Fusing(temp , "#.#") ; Chr(0) ; "C  "
Return 



عکس پایه ها هم برات پایین پیوست کردم
مرسی عزیز خیلی لطف کردی! خودت این پروژه رو اجرا کردی!!! ببخشید بد حرف زدم...
من sht1101 رو کار کردم اینو نه
(۱۹-آبان-۱۳۹۲, ۲۰:۵۸:۲۶)kimiafars نوشته است: [ -> ]من sht1101 رو کار کردم اینو نه

sht1101!!!!! سنسور دما و رطوبت!؟ من بیشتر ی الگوریتم می خواستم از چگونگی دیتا دادن بهش برنامه آماده به کارم نمیاد آخه برنامه ام خیلی سنگین میشه اینجوری اگه بخوام از برنامه های آماده استفاده کنم!! این چند روز هم وقت نشد روش خیلی کار کنم آخه گرم محرم بودم. اگر بتونید یه الگوریتم بهم بدین خیلی بهم کمک کردین...
(۱۸-آبان-۱۳۹۲, ۱۰:۲۳:۲۸)blackstar368 نوشته است: [ -> ]یعنی اینجا یک نفر هم نیست کمک کنه!!!! خیلی مهمه یک نفر ی کمکی بده!!! یعنی انقدر سخته!!!؟ بابا قبلا اینجا بیشتر کمک می کردین به آدم!!!!
سلام برهمه دوستان
اینم مدار شبیه سازی شده و برنامه بسکام راه اندازی سنسور SHT1X[attachment=13869][attachment=13869][attachment=13869][attachment=13869][attachment=13869]