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

DS18B20 տվիչի չափաբերում Arduino UNO- ով. 3 քայլ (նկարներով)
DS18B20 տվիչի չափաբերում Arduino UNO- ով. 3 քայլ (նկարներով)

Video: DS18B20 տվիչի չափաբերում Arduino UNO- ով. 3 քայլ (նկարներով)

Video: DS18B20 տվիչի չափաբերում Arduino UNO- ով. 3 քայլ (նկարներով)
Video: Уроки Arduino. Подключение термометров DS18B20 и NTC термистора 2024, Նոյեմբեր
Anonim
DS18B20 տվիչի չափաբերում Arduino UNO- ով
DS18B20 տվիչի չափաբերում Arduino UNO- ով
DS18B20 տվիչի չափաբերում Arduino UNO- ով
DS18B20 տվիչի չափաբերում Arduino UNO- ով
DS18B20 տվիչի չափաբերում Arduino UNO- ով
DS18B20 տվիչի չափաբերում Arduino UNO- ով

ՀՐԱԱՐՈԹՅՈՆ.

Սարքը, որը տեսնում եք նկարներում, օգտագործվում է մեկ այլ նախագծում `որպես թերմոստատ` ֆիլմի մշակման համար: Այդ նախագծին կարող եք ծանոթանալ այստեղ: Սենսորը կամ մեկից ավելին ճշգրտելու համար ձեզ հարկավոր կլինի այն, ինչ կգտնեք այս նախագծում, ոչ ավելին, և դա նույնպես բավականին հիմնական է: Գնացինք!

Քայլ 1: Պատրաստեք ձեր սարքը

Պատրաստեք ձեր սարքը
Պատրաստեք ձեր սարքը

Ահա այն, ինչ ձեզ հարկավոր է.

  1. Arduino UNO (կամ MEGA)
  2. DS18B20 տվիչ (ներ)
  3. 4kOhm - 5kOhm դիմադրություն (ես օգտագործել եմ 5k1Ohm)
  4. LCD էկրան ՝ արժեքները կարդալու համար (կարող եք նաև օգտագործել նոութբուք և պարզապես կարդալ դրանք սերիական մոնիտորի վրա)
  5. Էսքիզ, որն օգտագործում է սենսորը և ինչ -որ կերպ ցույց է տալիս արժեքները

Առաջին հերթին, դուք պետք է միացնեք ձեր մոդուլները և տվիչը ձեր վերահսկիչին: Ես թողնում եմ LCD- ի բարդ հատվածը, որպեսզի դուք կարողանաք որոնել համացանցը, և ես պարզապես ձեզ կասեմ, թե ինչպես միացնել սենսորը:

Սովորաբար այդ տվիչները գալիս են երեք գունավոր լարերով ՝ Սև, Կարմիր, Դեղին: Առաջին երկուսը էներգիայի համար են, իսկ երրորդը ՝ տվյալների: Միացրեք սևը GNN- ին, կարմիրը Vcc- ին (5V) և դեղինն անալոգային մուտքի վրա, ասենք A0:

Այժմ միացրեք դեղին և կարմիր դիմադրությունը `կապերն ավարտելու համար:

Միացրեք նաև LCD- ը (ես առաջարկում եմ պարզ 16x2 LCD i2c միացումով ՝ ընդամենը 4 լար օգտագործելու համար) և ավարտված եք լարերի և մալուխների հետ:

Այժմ ուրվագիծը, որը չափազանց պարզ է.

#ներառել «OneWire.h»

#ներառել «DallasTemperature.h» - ը #սահմանել ONE_WIRE_BUS_1 A0 OneWire մերWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& ourWire1); #ներառել «LiquidCrystal_I2C.h»

LiquidCrystal_I2C LCD (0x27, 16, 2); բոց RawValue = 0;

void setup () {lcd.init (); lcd. լուսարձակը (); sensor1.begin (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print («ensգայարաններ 1»); lcd.print (RawValue, 1); }

Ինչպես տեսնում եք, մենք օգտագործում ենք Dallas Temperature գրադարանը և i2c կապով LCD էկրան:

Կարգավորման մեջ մենք ինիզիացնում ենք LCD- ն ու սենսորը, իսկ հանգույցում մենք պարզապես պահանջում ենք ջերմաստիճանը և արժեքը պահում փոփոխական RawValue- ի ներսում `այն LCD- ով ցուցադրելու համար:

Եթե ցանկանում եք ավելի պարզ պահել, պարզապես օգտագործեք սերիական մոնիտորը հետևյալ ուրվագծով

#ներառել «Wire.h» #ներառել «OneWire.h» #ներառել «DallasTemperature.h» #սահմանեք ONE_WIRE_BUS_1 A0 OneWire մերWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& ourWire1);

բոց RawValue = 0;

void setup () {

ուշացում (1000); Serial.begin (9600); sensor1.begin (); sensor1.setResolution (11);

}

void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); Serial.print («ensգայարաններ 1»); Serial.println (RawValue, 1); }

Այժմ հետևեք ինձ սենսորը չափագրելու նախագծի առանցքում:

Քայլ 2: Երկու կետի չափաբերում

Երկու կետի չափաբերում
Երկու կետի չափաբերում
Երկու կետի չափաբերում
Երկու կետի չափաբերում
Երկու կետի ճշգրտում
Երկու կետի ճշգրտում

Նախևառաջ ինչ -որ բան պետք է իմանալ

Thermերմաստիճանի տվիչը չափաբերելու համար դուք պետք է չափեք մի բան, որի ջերմաստիճանը գիտեք: Տանը դա անելու պարզ եղանակը եռացող ջրի և հալվող սառույցի բաղնիքի օգտագործումն է, որը նաև կոչվում է «եռակի կետ» բաղնիք: Այդ դեպքերում մենք գիտենք, որ ծովի մակարդակում ջուրը եռում է 100 ° C ջերմաստիճանում: Հիշեք, որ ճշգրիտ չափումներ կատարելու համար դուք պետք է իմանաք ձեր բարձրությունը և հաշվարկեք այնտեղ եռման համապատասխան ջերմաստիճանը:

Դուք կարող եք ստուգել այն այստեղ!

Իշտն ասած պետք է ստուգել մթնոլորտային ճնշումը և ոչ թե բարձրությունը: Բայց այդ ճանապարհը բավականաչափ ճշգրիտ է:

Եռակի կետի բաղնիքը կամ սառույցի բաղնիքը այն ջերմաստիճանն է, որով ջուրը գոյություն ունի երեք վիճակում `պինդ, հեղուկ և գազ, այդ ջերմաստիճանը 0, 01 ° C է: Պարզեցնելու համար մենք կօգտագործենք 0 ° C:

Իմանալով սենսորի կարդացած արժեքը և այն արժեքը, որը պետք է լինի, մենք կարող ենք փոփոխել DS18B20- ի հում արժեքը `ավելի ճիշտ բանի:

EԱՆՈԹՈ:ԹՅՈՆ. Դուք կարող եք նաև ավելի շատ ջերմաստիճան օգտագործել սենսորը չափագրելու համար `պարզապես այն դնելով մի այլ նյութի մեջ, որից գիտեք եռման կետը` Եթեր (35 ° C), Պենտան (36, 1 ° C), ացետոն (56 ° C) կամ Էթանոլ (78, 37 ° C), բայց այդ եռացող նյութերը արտադրում են բարձր դյուրավառ գազեր: Այնպես որ, մի արա դա:

Եռացող ջուր

Կաթսայի մեջ մի քիչ ջուր լցրեք և տաքացրեք մինչև այն եռա (գազի պղպջակներ են առաջանում, և ջուրն ինքն է իրարանցում): Ընկղմեք ձեր տվիչը այնտեղ, որտեղ այն ոչ մի բանի չի դիպչում, բացի ջրից: Սպասեք մի քանի րոպե և կարդացեք LCD- ը կամ սերիական մոնիտորը:

Temperatureերմաստիճանը պետք է մնա նույնը առնվազն մեկ րոպե: Եթե այո, ապա գրի՛ր այդ արժեքը: Դա ձերն է ՝ RawHigh արժեքը:

Եռակի կետով լոգանք

Այժմ վերցրեք մի մեծ բաժակ (ձեզ ոչ մի հսկայական բան պետք չէ, ոչ մի կաթսա) և լցրեք այն մինչև եզրը սառցաբեկորներով: Փորձեք օգտագործել փոքր չափի սառցաբեկորներ: Այժմ լցրեք բաժակի 80% -ը սառը ջրով: Լրացրեք սառույցը, եթե լծակը փորձում է իջնել:

Այժմ տեղադրեք ձեր տվիչը ջրի/սառույցի մեջ և սպասեք մեկուկես րոպե: Կարդացեք այն ջերմաստիճանը, որը պետք է մնա նույնը առնվազն 30 վայրկյան: Եթե այո, ապա գրեք այն, որ դա ձեր RawLow արժեքն է:

Քայլ 3: Օգտագործեք այն արժեքները, որոնք ստանում եք ճիշտ ճանապարհով:

Այսպիսով, այժմ դուք ստացել եք մի քանի կարևոր արժեքներ.

  • Հում բարձր
  • RawLow
  • ReferenceHigh
  • ReferenceLow

Հղումների արժեքն ակնհայտորեն 99.9 ° C է եռացող ջրի համար (իմ 22 մ բարձրության վրա), և 0 ° C հալվող սառցե բաղնիքի համար: Այժմ հաշվարկեք այդ արժեքների տիրույթները.

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

Այժմ դուք պատրաստ եք օգտագործել այդ սենսորը ցանկացած այլ նախագծում `համոզված լինելով, որ այն ձեզ ճիշտ չափում կտա: Ինչպե՞ս: Օգտագործելով այն արժեքը, որը դուք ստացել եք այստեղ նախագծում, որը դուք կստեղծեք այդ սենսորով:

Ձեր ապագա նախագծում դուք պետք է օգտագործեք այս մեկում կարդացած արժեքները, և ես առաջարկում եմ դա անել `օգտագործելով նույն անունները, որոնք ես օգտագործել եմ այստեղ:

Փոփոխականները հայտարարեք void setup () բաժնից առաջ հետևյալ կերպ.

float RawHigh = 99.6; float RawLow = 0.5; float ReferenceHigh = 99.9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;

Ամեն անգամ, երբ սենսորից օգտվեք, կարող եք օգտագործել հետևյալ բանաձևը ՝ CorrectedValue- ը հաշվարկելու համար.

float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;

RawValue- ն ակնհայտորեն սենսորի ընթերցումն է:

Վերջ!

Այժմ դուք գիտեք, թե ինչպես չափագրել ձեր DS18B20 սենսորը կամ ցանկացած այլ տվիչ, որը դուք կօգտագործեք: Զվարճանալ!

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