سلام کسی تا به حال تونسته با یک میکرو 2 عدد DS18B20 را راه اندازی کنه و هرکدام را به یک پین جدا وصل کنه یعنی برای هر سنسور یه 1wire تعریف کرده باشه؟
اطلاعیه
Collapse
No announcement yet.
راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین
Collapse
X
-
پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین
تا جایی که علم نداشته من میگه
میشه ۲۵۰ سنسور رو با پروتکل 1wire راه اندازی(config شما) کرد
میتونید به لینک زیر مراجعه کنید
https://www.google.com/webhp?sourcei...#q=1wire+atmel
از دو چیز بسیار زیاد یاد گرفتم (1) نمونه مدارهای موجود در سایت های خارجی (2) مهندسی معکوس بردهای غیر ایرانی. به نقل از آقای مرتضی امانی
--------------------------------------------------------
تمام دنیا ما را تحریم کرده اند؛ حداقل خودمان همدیگر را تحریم نکنیم. به نقل از pencil
--------------------------------------------------------
اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است. mehran901
دیدگاه
-
پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین
آقا ؛miladheydari72؛
پیغام بهت ارسال نمیشه میگه صندوق پستی شما پر هستاز دو چیز بسیار زیاد یاد گرفتم (1) نمونه مدارهای موجود در سایت های خارجی (2) مهندسی معکوس بردهای غیر ایرانی. به نقل از آقای مرتضی امانی
--------------------------------------------------------
تمام دنیا ما را تحریم کرده اند؛ حداقل خودمان همدیگر را تحریم نکنیم. به نقل از pencil
--------------------------------------------------------
اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است. mehran901
دیدگاه
-
پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین
[code=qbasic]Sub Temp1
Local X As Integer , Byte0 As Byte , Byte1 As Byte
Config 1wire = Portc.7
1wreset
If Err = 1 Then
Waitms 60
T1 = 0
Temp(1) = 201
Else
1wwrite &HCC
1wwrite &H44
Waitms 50
1wreset
1wwrite &HCC
1wwrite &HBE
Byte0 = 1wread()
Byte1 = 1wread()
X = Makeint(byte0 , Byte1)
T1 = X / 16
Temp(1) = T1
Temp_res(1) = T1
If T1 < 0 Then
Temp(1) = Not Temp(1)
End If
End If
End Sub
'------------------------------------------------------
Sub Temp2
Local X As Integer , Byte0 As Byte , Byte1 As Byte
Config 1wire = Portc.6
1wreset
If Err = 1 Then
Waitms 60
T2 = 0
Temp(2) = 202
Else
1wwrite &HCC
1wwrite &H44
Waitms 50
1wreset
1wwrite &HCC
1wwrite &HBE
Byte0 = 1wread()
Byte1 = 1wread()
X = Makeint(byte0 , Byte1)
T2 = X / 16
Temp(2) = T2
Temp_res(2) = T2
If T2 < 0 Then
Temp(2) = Not Temp(2)
End If
End If
End Sub
'-----------------------------------------------------
Sub Temp3
Local Byte0 As Byte , Byte1 As Byte , X As Integer
Config 1wire = Portc.5
1wreset
If Err = 1 Then
Waitms 60
T3 = 0
Temp(3) = 203
Else
1wwrite &HCC
1wwrite &H44
Waitms 50
1wreset
1wwrite &HCC
1wwrite &HBE
Byte0 = 1wread()
Byte1 = 1wread()
X = Makeint(byte0 , Byte1)
T3 = X / 16
Temp(3) = T3
Temp_res(3) = T3
If T3 < 0 Then
Temp(3) = Not Temp(3)
End If
End If
End Sub[/code]محک
دیدگاه
-
پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین
نوشته اصلی توسط مهدی کارگر[code=qbasic]Sub Temp1
Local X As Integer , Byte0 As Byte , Byte1 As Byte
Config 1wire = Portc.7
1wreset
If Err = 1 Then
Waitms 60
T1 = 0
Temp(1) = 201
Else
1wwrite &HCC
1wwrite &H44
Waitms 50
1wreset
1wwrite &HCC
1wwrite &HBE
Byte0 = 1wread()
Byte1 = 1wread()
X = Makeint(byte0 , Byte1)
T1 = X / 16
Temp(1) = T1
Temp_res(1) = T1
If T1 < 0 Then
Temp(1) = Not Temp(1)
End If
End If
End Sub
'------------------------------------------------------
Sub Temp2
Local X As Integer , Byte0 As Byte , Byte1 As Byte
Config 1wire = Portc.6
1wreset
If Err = 1 Then
Waitms 60
T2 = 0
Temp(2) = 202
Else
1wwrite &HCC
1wwrite &H44
Waitms 50
1wreset
1wwrite &HCC
1wwrite &HBE
Byte0 = 1wread()
Byte1 = 1wread()
X = Makeint(byte0 , Byte1)
T2 = X / 16
Temp(2) = T2
Temp_res(2) = T2
If T2 < 0 Then
Temp(2) = Not Temp(2)
End If
End If
End Sub
'-----------------------------------------------------
Sub Temp3
Local Byte0 As Byte , Byte1 As Byte , X As Integer
Config 1wire = Portc.5
1wreset
If Err = 1 Then
Waitms 60
T3 = 0
Temp(3) = 203
Else
1wwrite &HCC
1wwrite &H44
Waitms 50
1wreset
1wwrite &HCC
1wwrite &HBE
Byte0 = 1wread()
Byte1 = 1wread()
X = Makeint(byte0 , Byte1)
T3 = X / 16
Temp(3) = T3
Temp_res(3) = T3
If T3 < 0 Then
Temp(3) = Not Temp(3)
End If
End If
End Sub[/code]
شما از این برنامه در عمل جواب گرفتید؟
یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی
دیدگاه
-
پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین
سلام.
در مورد این میشه توضیح بدین؟!
من میخوام دما رو بگیرم و روی سون سگمنت نشون بدم. کد های سون سگمنت و... رو نشوتم ولی گیرم توی گرفتن دما هست. کد زیر رو دیدم که به صورت رشته خروجی میده، حالا من به عدد نیاز دارم با یک رقم اعشار که کد هام کار بکنه
کد:1wreset 1wwrite &HCC 1wwrite &H44 Waitms 100 1wreset 1wwrite &HCC 1wwrite &HBE Miangen = 1wread(2) Miangen = Miangen * 10 : Miangen = Miangen \ 16 Dama = Str(miangen) : Dama = Format(dama , "0.0")
کد:t= temp *10 if t=0 then s1=0 s2=0 s3=0 dot=1 minest=0 else if t>0 then s=t/100 if s>=0 And s<=9 then s3=t mod 10 s=t/10 s2=s mod 10 s=s/10 s1=s mod 10 dot=1 minest=0 end if if s>9 then t=t/10 s3=t mod 10 s=t/10 s2=s mod 10 s=s/10 s1=s mod 10 dot=0 minest=0 end if end if if t<0 then t=t*-1 s=t/100 if s=0 then s3=t mod 10 s=t/10 s2=s mod 10 dot=1 minest=1 end if if s>0 then s=t/10 s3=s mod 10 s=s/10 s2=s mod 10 dot=0 minest=1 end if end if end if
دیدگاه
دیدگاه