Мазмұны:

DS18B20 сериялық нөмірін Arduino көмегімен алыңыз: 5 қадам
DS18B20 сериялық нөмірін Arduino көмегімен алыңыз: 5 қадам

Бейне: DS18B20 сериялық нөмірін Arduino көмегімен алыңыз: 5 қадам

Бейне: DS18B20 сериялық нөмірін Arduino көмегімен алыңыз: 5 қадам
Бейне: 7 projects Build LED LCD Alarm Clock using DS1307 with Arduino | Lesson 105 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
  • Нан тақтасы - AliExpress - eBay
  • Өткізгіш сымдар - еркектен еркекке - AliExpress - eBay
  • Arduino IDE орнатылған компьютер

1 -қадам: Қажетті кітапхананы Arduino IDE -ге қосыңыз

Қажетті кітапхананы Arduino IDE -ге қосыңыз
Қажетті кітапхананы Arduino IDE -ге қосыңыз
  1. Arduino IDE ашыңыз (мен 1.8.1 қолданамын)
  2. «Эскиз» -> «Кітапхананы қосу» -> «Кітапханаларды басқару …» түймесін басыңыз.
  3. Іздеу жолағын таңдап, «dallas» теріңіз
  4. «DallasTemperature» және «Орнату» түймесін басыңыз.

Немесе кітапхананы мына жерден жүктеуге болады:

Бұл кітапханаға OnWire кітапханасы кіреді.

2 -қадам: DS18B20 сымын қосыңыз

DS18B20 сымын қосыңыз
DS18B20 сымын қосыңыз
DS18B20 сымын қосыңыз
DS18B20 сымын қосыңыз

Нан тақтасын қолдана отырып, Arduino -дан +5V, GND және Digital Pin 2 (Pin 2 қазірдің өзінде эскизде орнатылған) арқылы ерлер мен ерлерге арналған секіргіштерді қолданыңыз.

DS18B20 -ді нан тақтасындағы 3x терминал жолақтарына параллель жалғаңыз.

  • 1 түйреуіш (GND) -> GND (Жер 0V)
  • 2 -түйреуіш (ДЕРЕКТЕР) -> Сандық түйреуіш 2
  • 3 -түйреуіш (Vdd) -> +5V

Қалыпты қуат режимі үшін +5В -тан 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 пернелер тіркесімін басып, Блокнотқа қойыңыз

Басқа жобалар үшін менің кодым осы сандардың жиынын қолданады. Мен 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, 0xF7, 0x6, 6x2, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED 0, {0xED, 0x42, 0x71, 0x17, 0x04, 0x4C}};

5 -қадам: Аяқталды

Аяқталды
Аяқталды

Енді сіз кодтағы әрбір жеке DS18B20 температуралық сенсорды анықтай аласыз және келесі функцияны қолдана аласыз:

float getTemperature (байт j) {

sensors.requestTemperaturesByAddress (tempSensorSerial [j]);

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

қайтару температурасыC;

}

Ұсынылған: