Мазмұны:
- 1 -қадам: құрылғыны дайындаңыз
- 2 -қадам: екі нүктелі калибрлеу
- 3 -қадам: Сіз алатын құндылықтарды дұрыс қолданыңыз
Бейне: DS18B20 датчигін Arduino UNO көмегімен калибрлеу: 3 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
ЕСКЕРТУ:
Сіз суреттерде көріп отырған құрылғы басқа жобада пленка жасау процесіне арналған термостат ретінде қолданылады. Сіз бұл жобаны осы жерден таба аласыз. Сенсорды калибрлеу үшін немесе бірнешеуінен басқа, сізге бұл жобадан қажет нәрсе қажет, бұдан басқа ештеңе жоқ, және бұл өте қарапайым! Барайық!
1 -қадам: құрылғыны дайындаңыз
Міне сізге қажет нәрселердің тізімі:
- Arduino UNO (немесе MEGA)
- DS18B20 сенсорлары
- 4kOhm - 5kOhm кедергісі (мен 5k1Ohm қолдандым)
- Мәндерді оқуға арналған СКД экраны (ноутбукті де қолдануға болады және оларды сериялық монитордан оқуға болады)
- Сенсорды қолданатын және қандай да бір мәндерді көрсететін эскиз
Алдымен модульдер мен сенсорды контроллерге қосу керек. Мен ЖК -нің күрделі бөлігін интернеттен іздеу үшін қалдырамын, мен сенсорды қалай қосу керектігін айтамын.
Әдетте бұл сенсорлар үш түсті сыммен келеді: қара, қызыл, сары. Алғашқы екеуі энергияға, үшіншісі деректерге арналған. Қараны 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 сенсорын немесе сіз қолданатын басқа сенсорды калибрлеуді білесіз! Масайрау!
Ұсынылған:
Топырақ ылғалдылығы датчигін калибрлеу: 5 қадам
Топырақтың ылғалдылық датчигін калибрлеу: Нарықта бағбанға өсімдіктерді қашан суару керектігін шешуге көмектесетін топырақ ылғалдылығын өлшейтін көптеген құралдар бар. Өкінішке орай, бір уыс топырақты ұстап, түсі мен текстурасын тексеру осы гаджеттер сияқты сенімді! Кейбір зондтар тіпті тіркеледі
Arduino Nano, HX-711 Load Cell және OLED 128X64 көмегімен баланың салмағын өлшейтін машинаны қалай жасауға болады -- HX-711 калибрлеу: 5 қадам
Arduino Nano, HX-711 Load Cell және OLED 128X64 көмегімен баланың салмағын өлшейтін машинаны қалай жасауға болады || HX-711 калибрлеуі: Сәлем Instructables, Бірнеше күн бұрын мен сүйкімді баланың әкесі болдым. Ауруханада жатқанда мен баланың өсуін бақылау үшін баланың салмағы өте маңызды екенін білдім. Сонымен менде идея бар ма? Нәресте салмағын өлшейтін машина жасау үшін. Нұсқаулықта мен
Оқу құралы: US-016 аналогты ультрадыбыстық қашықтық датчигін Arduino UNO көмегімен қалай қолдануға болады: 3 қадам
Оқу құралы: US-016 аналогтық ультрадыбыстық қашықтық датчигін Arduino UNO-мен қалай қолдану керек: Сипаттама: US-016 ультрадыбыстық іске қосу модулі 2 см ~ 3 м өлшеуге болмайтын мүмкіндіктерге, 5 В кернеуге, 3,8мА жұмыс токына, аналогтық шығыс кернеуін қолдайды, тұрақты және сенімді. Бұл модуль қолданбаға байланысты әр түрлі болуы мүмкін
Ылғалдылық датчигін калибрлеу: 7 қадам
Ылғалдылық датчигін калибрлеу: Менде ауаның салыстырмалы ылғалдылығын өлшейтін 3 сенсор бар: BME280, SHT21, DHT22. Олар дәлдікпен өлшеу қабілетін +/- 3% диапазонынан 20-дан 80% -ға дейін жеткізді. Алайда, 3 сенсорға бірдей жағдайда тестілеу кезінде мен 3 түрлі нәтиже алдым. Мүмкін о
Оқу құралы: Arduino UNO көмегімен ұяшықты қалай калибрлеу және интерфейс: 3 қадам
Оқу құралы: Arduino UNO көмегімен ұяшықты қалай калибрлеуге және интерфейсті жүктеуге болады: Сәлеметсіздерме балалар, біз сізге оқулықты көрсетеміз: Arduino UNO көмегімен жүктеме ұяшығын немесе HX711 теңгерім модулін калибрлеу және интерфейс. дәл A / D түрлендіргіші. Бұл чип жоғары дайындыққа арналған