Агуулгын хүснэгт:

DS18B20 -ийн серийн дугаарыг Arduino ашиглан аваарай: 5 алхам
DS18B20 -ийн серийн дугаарыг Arduino ашиглан аваарай: 5 алхам

Видео: DS18B20 -ийн серийн дугаарыг Arduino ашиглан аваарай: 5 алхам

Видео: DS18B20 -ийн серийн дугаарыг Arduino ашиглан аваарай: 5 алхам
Видео: Control robot using Arduino serial communication(Serial ашиглан Arduino удирдах) 2024, Арваннэгдүгээр
Anonim
DS18B20 -ийн серийн дугаарыг Arduino ашиглан аваарай
DS18B20 -ийн серийн дугаарыг Arduino ашиглан аваарай

Энэ бол DS18B20 1 утастай температур мэдрэгчийн бие даасан серийн дугаарыг хэрхэн яаж авах талаархи хурдан гарын авлага юм.

Энэ нь олон мэдрэгч шаардлагатай төслүүдэд тохиромжтой.

Танд хэрэгтэй зүйлс:

  • Arduino 5v (UNO, Mega, Pro Mini гэх мэт) - Arduino UNO R3 - AliExpress - eBay
  • Температур мэдрэгч DS18B20 - AliExpress - eBay
  • 4.7k - 1/4w эсэргүүцэл THT - AliExpress - eBay
  • Breadboard - AliExpress - eBay
  • Холбогч утас - Эрэгтэй эр - AliExpress - eBay
  • Arduino IDE суулгасан компьютер

Алхам 1: Шаардлагатай номын санг Arduino IDE дээр нэмнэ үү

Шаардлагатай номын санг Arduino IDE дээр нэмнэ үү
Шаардлагатай номын санг Arduino IDE дээр нэмнэ үү
  1. Arduino IDE -ийг нээнэ үү (би 1.8.1 ашиглаж байна)
  2. "Ноорог" -> "Номын санг оруулах" -> "Номын санг удирдах …" дээр дарна уу.
  3. Хайлтын мөрийг сонгоод "dallas" гэж бичнэ үү.
  4. "DallasTemperature" дээр дараад "Install" дээр дарна уу.

Эсвэл та номын санг эндээс татаж авах боломжтой:

Энэхүү номын санд OnWire номын сан багтсан болно.

Алхам 2: DS18B20 утсыг холбоно уу

DS18B20 утсыг холбоно уу
DS18B20 утсыг холбоно уу
DS18B20 утсыг холбоно уу
DS18B20 утсыг холбоно уу

Талхны тавцан ашиглан Arduino -аас +5V, GND, Digital Pin 2 (Pin 2 -ийг аль хэдийн зураг дээр харуулсан болно) ашиглан эрэгтэй -эрэгтэй талхтай холбогчийг ашиглана.

DS18B20 -ийг талхны самбар дээрх 3х терминал туузтай зэрэгцээ холбоно.

  • Pin 1 (GND) -> GND (Ground 0V)
  • Pin 2 (DATA) -> Дижитал зүү 2
  • Зүү 3 (Vdd) -> +5V

Энгийн эрчим хүчний горимын хувьд +5V -аас 4.7K эсэргүүцэл үзүүлэгчийг талбар дээрх Digital Pin 2 утас руу холбоно уу.

Дараах линк нь DS18B20 1 утастай температур мэдрэгчийн хувьд маш сайн эх сурвалж юм.

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

Алхам 3: "Ганцхан" жишээ эскизийг ачаална уу

Жишээ эскизийг ачаална уу
Жишээ эскизийг ачаална уу
Жишээ эскизийг ачаална уу
Жишээ эскизийг ачаална уу

Утсаа залгасны дараа та Dallas Temperature "Single" SketchOpen Arduino IDE -ийг ачаалахад бэлэн байна (би 1.8.1 ашиглаж байна) "Файл" -> "Жишээ" -> "Далласын температур" -> "Ганц бие" -ийг дарна уу. саатал (5000); 103 -р мөрөнд серийн дугаарыг хуулж өгөх хугацаа өгвөл зохих самбарын хэлбэрээ сонгоно уу "Хэрэгсэл" -> "Самбар" Тохирох портоо сонгоно уу "Хэрэгслүүд" -> "Порт" Одоо "Байршуулах" ноорог "Ноорог" -> "Байршуулах" "Хэрэгслүүд" -> "Цуваа монитор" дээр дарж, дамжуулах хурд нь минийхтэй тохирч байгаа эсэхийг шалгаарай 9600 Хэрэв та ноорог зураагүй бол самбар, порт, USB драйвер гэх мэтийг шалгаарай.

Алхам 4: Серийн дугаарыг хуулна уу

Серийн дугаарыг хуулна уу
Серийн дугаарыг хуулна уу
Серийн дугаарыг хуулна уу
Серийн дугаарыг хуулна уу

"Цуваа монитор" -оос та 4 -р мөрийг "Төхөөрөмж 0 хаяг: xxxxxxxxxxxxxxxx" гэж харах болно.

Энэ бол DS18B20 -ийн серийн дугаар юм

Хэрэв "0000000000000000" бол таны DS18B20 -г уншихад асуудал гардаг.

Үүнийг хулганаараа тодруулаад гар дээрх CTRL+C товчлуурыг дараад Notepad дээр байрлуулна уу

Миний бусад төслүүдийн хувьд миний код эдгээр тоонуудын массивыг ашигладаг. Би HEX мөрийг дараах формат руу дахин форматлав.

DeviceAddress tempSensorSerial [9] = {

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

Алхам 5: Дууссан

Дууссан
Дууссан

Одоо та кодондоо DS18B20 1 утастай температур мэдрэгч тус бүрийг тодорхойлж, дараах функцийг ашиглаж болно.

float getTemperature (байт j) {

sensors.requestTemperaturesByAddress (tempSensorSerial [j]);

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

буцах температурC;

}

Зөвлөмж болгож буй: