Ceriwis  

Go Back   Ceriwis > HOBI > Komputer & Teknologi > Programming

Programming Share, tanya jawab, saling bantu antar programmer dengan berbagai macam bahasa pemrograman.

Reply
 
Thread Tools
  #1  
Old 11th November 2011
Braincode's Avatar
Braincode Braincode is offline
Ceriwis Addicted
 
Join Date: Nov 2011
Posts: 4,638
Rep Power: 20
Braincode mempunyai hidup yang Normal
Default One wire with ds1820 via bascom avr

Thread pertama ane...hahaha



Gan, bagi yang mau mengetahui suhu dengan menggunakan mikrokontroler AVR via bascom dapat menggunakan sensor ds1820.



1-Wire adalah merek dagang terdaftar dari Dallas Semiconductor Corp (sekarang maxim) untuk perangkat bus sistem komunikasi yang dirancang oleh Dallas Semiconductor yang menyediakan kecepatan data rendah, signaling dan kuasa (power) atas satu sinyal, walaupun menggunakan dua kawat, satu untuk tanah, satu untuk daya dan data. 1-Wire mirip dalam konsep ke I � C, tetapi dengan data harga lebih rendah lagi dan jangkauan. Hal ini biasanya digunakan untuk berkomunikasi dengan murah perangkat kecil seperti digital termometer cuaca dan instrument. Sebuah jaringan dari 1-Wire perangkat master yang terkait dengan perangkat yang disebut �MicroLan�, istilah yang menjadi merek dagang oleh Dallas. (diambil dari wikipedia trus ditranslate pake google translate, tp gw edit dikit )



Dengan teknologi one-wire ini, kita bisa menghubungkan banyak sensor ke suatu mikrokontroller, karena

port yang dibutuhkan hanya sedikit, sebuah sensor suhu hanya membutuhkan 1 port.

DS18S20 memiliki spesifikasi sebagai berikut:

- Catu daya: 3,0 ~ 5,5 V.

- Antarmuka: 1-Wire�.

- Range pengukuran: �55�C sampai +125�C.

- Waktu konversi: maks. 750 ms.

- Akurasi: �0,5�C pada suhu �10�C sampai +85�C.





$regfile = �8535def.dat�

$crystal = 8000000

$baud = 19200

Config 1wire = Portb.1



Dim Rom(8) As Byte

Dim Temp As Single

Dim Tempdif As Single

Dim Id1(8) As Byte (Buat ID sensor 1, tiap sensor punya ID sendiri jadi kasih variabel buat nyimpen)

Dim Id2(8) As Byte (Buat ID sensor 2)

Dim I As Integer

Id1(1) = 1wsearchfirst() (Mencari sensor pertama)

Id2(1) = 1wsearchnext() (Cari sensor selanjutnya)

I = 1wirecount() (Hitung ada berapa sensor terhubung?!)

Print I

For I = 1 To 8

Print Hex(id1(i)); (Menampilkan kode ID sensor1)

Next

Print

For I = 1 To 8

Print Hex(id2(i)); (Menampilkan kode ID sensor2)

Next

Print



wait 1



Do

1wreset

1wwrite &HCC

1wwrite &H44

Ddrb.1 = 1

Waitms 800

Ddrb.1 = 0

1wreset

1wwrite &H55

For I = 1 To 8

1wwrite Id1(i)

Next I

1wwrite &HBE

Rom(1) = 1wread(1)

Temp = Rom(1) / 2

Print Temp;

Print ;

1wreset

1wwrite &H55

For I = 1 To 8

1wwrite Id2(i)

Next I

1wwrite &HBE (Baca data dari scratchpad)

Rom(1) = 1wread(8)

Temp = Rom(1) / 2

Tempdif = 16 � Rom(7)

Tempdif = Tempdif / 16

Tempdif = 0.25 * Tempdif

Temp = Temp + Tempdif

Print Fusing(temp , �#.##�)

Waitms 100

Loop






Tiap kita ingin melakukan sesuatu (membaca temperatur/ mengetahui kode ID) diawali dengan me-reset bus yaitu dengan perintah 1wreset setelah itu kita dapat melakukan membaca atau menulis data. Karena kita berkomunikasi dengan sebuah single IC saja, maka kita gunakan perintah SKIP ROM (CCh / &HCC).



Hal ini menyebabkan IC menganggap dirinya sebagai alamat, bisa dibilang suatu tempat cuma ditempati oleh 1 orang, jadi cuma dia doang yang ditempat itu.



Selanjutnya kita akan mengukur temperatur, dengan memberikan perintah CONVERT T (44h / &h44). Untuk itu portb.1=1 di set sebagai ouput dahulu agar DS1820 dapat mengkonversi, kemudian kita harus menunggu 750ms, untuk lebih aman disini digunakan 800ms.



Alasannya, karena 750ms hanya waktu untuk mengkonversi temperatur, untuk menulis pada EEPROM internalnya dibutuhkan waktu lagi! Klo mau aman kasih aja delay 1s.

Untuk lebih jelasnya mungkin dapat dilihat dari datasheet DS1820 disini








Spoiler for wiring ds1820:














thread ini bersumber dari http://ak67.wordpress.com/2009/07/15/one-wire/





bagi yang suka kirim bintang yeh agan-agan sekalian melon juga diterima, maklum ane nge-thread ginian karena emang dari jurusan instrument..hiihi




mimin momon, sori nih kalo ane salah kamar, maklum masih newbie...n_n



Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


 


All times are GMT +7. The time now is 06:25 PM.


no new posts