Мазмұны:

DS18B20 датчигін Arduino UNO көмегімен калибрлеу: 3 қадам (суреттермен)
DS18B20 датчигін Arduino UNO көмегімен калибрлеу: 3 қадам (суреттермен)

Бейне: DS18B20 датчигін Arduino UNO көмегімен калибрлеу: 3 қадам (суреттермен)

Бейне: DS18B20 датчигін Arduino UNO көмегімен калибрлеу: 3 қадам (суреттермен)
Бейне: Lesson 32: MCP9808 High Accuracy I2C Temperature | Arduino Step By Step Course 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. Мәндерді оқуға арналған СКД экраны (ноутбукті де қолдануға болады және оларды сериялық монитордан оқуға болады)
  5. Сенсорды қолданатын және қандай да бір мәндерді көрсететін эскиз

Алдымен модульдер мен сенсорды контроллерге қосу керек. Мен ЖК -нің күрделі бөлігін интернеттен іздеу үшін қалдырамын, мен сенсорды қалай қосу керектігін айтамын.

Әдетте бұл сенсорлар үш түсті сыммен келеді: қара, қызыл, сары. Алғашқы екеуі энергияға, үшіншісі деректерге арналған. Қараны GNN -ге, қызылды Vcc -ке (5V) және сарыға аналогтық кірісте қосыңыз, айталық A0.

Енді қосылуларды аяқтау үшін сары мен қызыл арасындағы қарсылықты қосыңыз.

СКД -ді де қосыңыз (мен тек 4 сымды пайдалану үшін i2c қосылымы бар қарапайым 16x2 СКД ұсынамын) және сіз сымдар мен кабельдермен аяқтадыңыз.

Енді эскиз өте қарапайым:

#«OneWire.h» қосыңыз

#«DallasTemperature.h» қосыңыз #ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1) анықтаңыз; DallasTemperature sensor1 (& ourWire1); #«LiquidCrystal_I2C.h» қосыңыз

LiquidCrystal_I2C LCD (0x27, 16, 2); float RawValue = 0;

void setup () {lcd.init (); lcd.backlight (); сенсор1.begin (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print («Sens. 1»); lcd.print (RawValue, 1); }

Көріп отырғаныңыздай, біз Даллас температурасы кітапханасын және i2c байланысы бар СКД экранын қолданамыз.

Орнату кезінде біз СКД мен сенсорды қосамыз, ал циклде біз температураны сұраймыз және оны LCD -де көрсету үшін RawValue айнымалы мәнінде сақтаймыз.

Егер сіз қарапайым болғыңыз келсе, келесі эскизбен сериялық мониторды қолданыңыз

#«Wire.h» қосу «OneWire.h» қосу «» DallasTemperature.h «қосу #ONE_WIRE_BUS_1 A0 OneWire OurWire1 (ONE_WIRE_BUS_1) анықтау; DallasTemperature sensor1 (& ourWire1);

float RawValue = 0;

жарамсыз орнату () {

кешіктіру (1000); Serial.begin (9600); сенсор1.begin (); sensor1.setResolution (11);

}

void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); Serial.print («Sens. 1»); Serial.println (RawValue, 1); }

Енді сенсорды калибрлеу үшін жобаның негізгі бөлігінде мені қадағалаңыз.

2 -қадам: екі нүктелі калибрлеу

Екі нүктелі калибрлеу
Екі нүктелі калибрлеу
Екі нүктелі калибрлеу
Екі нүктелі калибрлеу
Екі нүктелі калибрлеу
Екі нүктелі калибрлеу

Алдымен білу керек нәрсе

Термометрді калибрлеу үшін температураны білетін нәрсені өлшеу керек. Үйде мұны істеудің қарапайым әдісі-қайнаған су мен еріген мұз ваннасы, оны «үш нүктелі» ванна деп те атайды. Бұл жағдайда су теңіз деңгейінде 100 ° C температурада қайнағанын білеміз. Есіңізде болсын, дәл өлшеу үшін сіз өзіңіздің биіктігіңізді білуіңіз керек және онда қайнау температурасын есептеуіңіз керек.

Сіз оны осында тексере аласыз!

Шынымды айтсам, биіктікті емес, атмосфералық қысымды тексеру керек. Бірақ бұл әдіс жеткілікті дәл.

Үш нүктелі ванна немесе мұзды ванна-бұл судың қатты, сұйық және газ күйінде болатын температурасы, бұл температура 0, 01 ° С. Біз жеңілдету үшін 0 ° C қолданамыз.

Сенсор оқитын мән мен мүмкін болатын мәнді біле отырып, біз DS18B20 бастапқы мәнін дұрыс нәрсеге өзгерте аламыз.

ЕСКЕРТПЕ: сенсорды калибрлеу үшін сіз температураны эфир (35 ° C), пентан (36, 1 ° C), ацетон (56 ° C) немесе қайнау температурасын білетін басқа затқа салу арқылы ғана қолдана аласыз. Этанол (78, 37 ° C), бірақ бұл қайнаған заттар жанғыш газдарды шығарады! Сондықтан жасамаңыз!

Қайнаған су:

Кәстрөлге су құйып, қайнағанға дейін қыздырыңыз (газ көпіршіктері дамиды және су өздігінен қозады). Сенсорды судан басқа жерге тигізбейтін жерге батырыңыз. Бірнеше минут күтіңіз және LCD немесе сериялық мониторды оқыңыз

Температура кем дегенде бір минут бойы өзгеріссіз қалуы керек. Егер солай болса, бұл мәнді жазыңыз. Бұл сіздің: RawHigh мәні.

Үш нүктелі ванна:

Енді үлкен шыны алыңыз (сізге үлкен ештеңе де, кастрюль де қажет емес) және оны мұз текшелерімен шекараға дейін толтырыңыз. Кішкене мұз текшелерін қолдануға тырысыңыз. Енді стаканның 80% суық сумен толтырыңыз. Егер тетік төмен түсуге тырысса, мұзбен толтырыңыз.

Енді сенсорды судың/мұздың ішіне қойып, бір жарым минут күтіңіз. Кем дегенде 30 секунд бойы сол күйінде қалуы керек температураны оқыңыз. Егер солай болса, оны RawLow мәні деп жазыңыз.

3 -қадам: Сіз алатын құндылықтарды дұрыс қолданыңыз

Сонымен, сізде бірнеше маңызды құндылықтар бар:

  • RawHigh
  • RawLow
  • Сілтеме Жоғары
  • 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;

Сенсорды қолданған сайын, түзету мәнін есептеу үшін келесі формуланы қолдануға болады:

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

RawValue - бұл сенсордың оқылуы.

Міне бітті!

Енді сіз DS18B20 сенсорын немесе сіз қолданатын басқа сенсорды калибрлеуді білесіз! Масайрау!

Ұсынылған: