İçindekiler:

Arduino ile DS18B20'nin Seri Numarasını Alın: 5 Adım
Arduino ile DS18B20'nin Seri Numarasını Alın: 5 Adım

Video: Arduino ile DS18B20'nin Seri Numarasını Alın: 5 Adım

Video: Arduino ile DS18B20'nin Seri Numarasını Alın: 5 Adım
Video: Arduino Nedir? Nasıl Kurulur ve Neler Yapılabilir? #1 2024, Kasım
Anonim
Arduino ile DS18B20'nin Seri Numarasını Alın
Arduino ile DS18B20'nin Seri Numarasını Alın

Bu, DS18B20 1 kablolu sıcaklık sensörlerinizin bireysel seri numaralarını nasıl alacağınıza ilişkin hızlı bir kılavuzdur.

Bu, birden fazla sensör gerektiren projeler için kullanışlıdır.

İhtiyacın olan şeyler:

  • Arduino 5v (UNO, Mega, Pro Mini vb) - Arduino UNO R3 - AliExpress
  • Sıcaklık Sensörü DS18B20 - AliExpress
  • 4.7k - 1/4w Direnç THT - AliExpress
  • Breadboard - AliExpress - eBay
  • Jumper Telleri - Erkekten erkeğe - AliExpress - eBay
  • Arduino IDE'nin kurulu olduğu bir bilgisayar

Adım 1: Gerekli Kütüphaneyi Arduino IDE'ye Ekleyin

Gerekli Kütüphaneyi Arduino IDE'ye Ekleyin
Gerekli Kütüphaneyi Arduino IDE'ye Ekleyin
  1. Arduino IDE'yi açın (1.8.1 kullanıyorum)
  2. "Çizim" -> "Kitaplığı Dahil Et" -> "Kütüphaneleri Yönet…" seçeneğini tıklayın.
  3. Arama çubuğunu seçin ve "dallas" yazın
  4. "DallasSıcaklık" ı tıklayın ve "Yükle" yi tıklayın

Alternatif olarak Kütüphaneyi buradan indirebilirsiniz:

Bu Kitaplık OnWire Kitaplığını içerir.

Adım 2: DS18B20'yi Kablolayın

DS18B20'yi bağlayın
DS18B20'yi bağlayın
DS18B20'yi bağlayın
DS18B20'yi bağlayın

Bir breadboard kullanarak +5V, GND ve Digital Pin 2'yi (Pin 2 örnek çizimde zaten ayarlanmıştır) Arduino'dan Male to Male breadboard jumper'larını kullanarak bağlayın.

DS18B20'yi devre tahtasındaki 3x terminal şeritlerine paralel olarak bağlayın.

  • Pin 1 (GND) -> GND (Toprak 0V)
  • Pin 2 (DATA) -> Dijital Pin 2
  • Pin 3 (Vdd) -> +5V

Normal Güç Modu için +5V'den 4.7K'lık bir Direnci breadboard üzerindeki Dijital Pin 2 kablosuna bağlayın.

Aşağıdaki bağlantı, DS18B20 1 kablolu sıcaklık sensörü için harika bir kaynaktır.

www.tweaking4all.com/hardware/arduino/ardu…

Adım 3: Örnek Çizimi "Tek" yükleyin

Örnek Çizimi Yükle
Örnek Çizimi Yükle
Örnek Çizimi Yükle
Örnek Çizimi Yükle

Kabloyu bağladıktan sonra Dallas Sıcaklığını yüklemeye hazırsınız "Tek" SketchOpen Arduino IDE (1.8.1 kullanıyorum) "Dosya" -> "Örnekler" -> "Dallas Sıcaklığı" -> "Tek" ekledim gecikmede(5000); bana seri numarasını kopyalamam için zaman vermek için 103. satırda Uygun pano formunu seçin "Araçlar" -> "Pano" Uygun bağlantı noktanızı seçin "Araçlar" -> "Bağlantı Noktası" Şimdi Çizimi "Yükle" "Çizim" -> "Yükle" "Araçlar" -> "Seri Monitör"e tıklayın, baud hızlarının benimkiyle eşleştiğinden emin olun 9600 Eğer çizim yapmadıysanız Anakartınızı, Bağlantı Noktanızı, USB sürücülerinizi vb. kontrol edin.

4. Adım: Seri Numarasını Kopyalayın

Seri Numarasını Kopyalayın
Seri Numarasını Kopyalayın
Seri Numarasını Kopyalayın
Seri Numarasını Kopyalayın

"Seri Monitör"den 4. satırın "Aygıt 0 Adresi: xxxxxxxxxxxxxxxx" olduğunu göreceksiniz.

Bu, DS18B20'nin Seri Numarasıdır

"0000000000000000" ise, DS18B20'nizi okurken bir sorun var demektir.

Farenizle vurgulayın ve klavyenizde CTRL+C tuşlarına basın ve ardından Not Defteri'ne geçin

Diğer projelerim için kodum bu sayıların bir dizisini kullanıyor. HEX dizesini aşağıdaki biçimde yeniden biçimlendirdim.

DeviceAddress tempSensorSerial[9]= {

{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x70, 0x17,, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xFF, 0x66, 0x62,, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED99}, {0x28, 0xFF,, 0x42, 0x71, 0x17, 0x04, 0x4C} };

Adım 5: Tamamlandı

bitmiş
bitmiş

Artık kodunuzdaki her bir DS18B20 1 kablolu sıcaklık sensörünü tanımlayabilir ve aşağıdaki gibi bir işlev kullanabilirsiniz:

float getTemperature(byte j){

sensor.requestTemperaturesByAddress(tempSensorSerial[j]);

float tempC = sensor.getTempC(tempSensorSerial[j]);

dönüş sıcaklığıC;

}

Önerilen: