Բովանդակություն:

Ստացեք DS18B20- ի սերիական համարը Arduino- ով. 5 քայլ
Ստացեք DS18B20- ի սերիական համարը Arduino- ով. 5 քայլ

Video: Ստացեք DS18B20- ի սերիական համարը Arduino- ով. 5 քայլ

Video: Ստացեք DS18B20- ի սերիական համարը Arduino- ով. 5 քայլ
Video: FLProg10: DS18B20 ջերմաստիճանի ցուցիչ | ESP32 NodeMCU | Arduino Visual Embedded Programming 2024, Նոյեմբեր
Anonim
Ստացեք DS18B20- ի սերիական համարը Arduino- ով
Ստացեք DS18B20- ի սերիական համարը Arduino- ով

Սա արագ ուղեցույց է, թե ինչպես ստանալ ձեր DS18B20 1-լարային ջերմաստիճանի տվիչների առանձին սերիական համարները:

Սա հարմար է այն նախագծերի համար, որոնք պահանջում են բազմաթիվ սենսորներ:

Ձեզ անհրաժեշտ բաներ.

  • Arduino 5v (UNO, Mega, Pro Mini և այլն) - Arduino UNO R3 - AliExpress - eBay
  • Temp ցուցիչ DS18B20 - AliExpress - eBay
  • 4.7k - 1/4w դիմադրություն THT - AliExpress - eBay
  • Breadboard - AliExpress - eBay
  • Jumper Wires - Male to Male - 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- ը

Օգտագործելով հացի տախտակ միացրեք +5V, GND և Digital Pin 2 (Pin 2 -ն արդեն տեղադրված է օրինակ էսքիզի մեջ) Arduino- ից ՝ օգտագործելով արականից արական տախտակի թռիչքներ:

Միացրեք DS18B20- ը զուգահեռ հացաթղթի վրա տեղադրված 3x տերմինալային շերտերին:

  • Պին 1 (GND) -> GND (Ground 0V)
  • Պին 2 (ՏՎՅԱԼՆԵՐ) -> Թվային Պին 2
  • Պին 3 (Vdd) -> +5V

Նորմալ էներգիայի ռեժիմի համար միացրեք 4.7K Resistor +5V- ից դեպի Digital Pin 2 մետաղալար ՝ հացաթղթին:

Հետևյալ հղումը մեծ ռեսուրս է DS18B20 1-լարային ջերմաստիճանի տվիչի համար:

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

Քայլ 3: Տեղադրեք «Մեկ» էսքիզների օրինակ

Բեռնել օրինակ էսքիզը
Բեռնել օրինակ էսքիզը
Բեռնել օրինակ էսքիզը
Բեռնել օրինակ էսքիզը

Լարվելուց հետո դուք պատրաստ եք բեռնել Dallas Temperature "Single" SketchOpen Arduino IDE (ես օգտագործում եմ 1.8.1) Սեղմեք "Ֆայլ" -> "Օրինակներ" -> "Dallas Temperature" -> "Single", որը ես ավելացրել եմ: ուշացումով (5000); 103 տողում ՝ ինձ ժամանակ տալ սերիական համարը պատճենելու համար Ընտրեք ձեր համապատասխան տախտակի ձևը «Գործիքներ» -> «Տախտակ» Ընտրեք ձեր համապատասխան նավահանգիստը «Գործիքներ» -> «Նավահանգիստ» Այժմ «Վերբեռնեք» էսքիզը «Էսքիզ» -> «Վերբեռնում» Կտտացրեք «Գործիքներ» -> «Սերիական մոնիտոր», համոզվեք, որ բաուդ դրույքաչափերը համապատասխանում են իմին 9600 -ին: Եթե էսքիզները չեք վերբեռնել, ստուգեք ձեր տախտակը, նավահանգիստը, USB վարորդները և այլն:

Քայլ 4: Պատճենեք սերիական համարը

Պատճենեք սերիայի համարը
Պատճենեք սերիայի համարը
Պատճենեք սերիայի համարը
Պատճենեք սերիայի համարը

«Սերիական մոնիտոր» -ից կտեսնեք 4 -րդ տողը ՝ «Սարքի 0 հասցե ՝ xxxxxxxxxxxxxxx»

Սա DS18B20- ի սերիական համարն է

Եթե դա «000000000000000000» է, ապա ձեր 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, 0x70, 0x17, 0x04, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xFF, 0xF6, 0xFF, 0xFF, 0xF6, 0xF6, 0xF6, 0xFF, 0xFF, 0xFF, 0x76, 0xFF, 0x76, 0xFF, 0xF6, 0xFF, 0x76, 0xFF, 0x76, 0xFF, 0xFF, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED, 0xED}, {0xED,, 0x42, 0x71, 0x17, 0x04, 0x4C}};

Քայլ 5: Ավարտված

Ավարտվեց
Ավարտվեց

Այժմ կարող եք ձեր կոդի մեջ որոշել յուրաքանչյուր առանձին DS18B20 1-լարային ջերմաստիճանի տվիչ և օգտագործել այսպիսի գործառույթ.

float getTemperature (բայթ j) {

sensors.requestTemperaturesByAddress (tempSensorSerial [j]);

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

վերադարձի ջերմաստիճանը;

}

Խորհուրդ ենք տալիս: