Мазмуну:
- 1 -кадам: Түзмөгүңүздү даярдаңыз
- 2 -кадам: Эки чекиттүү калибрлөө
- 3 -кадам: Сиз алган баалуулуктарды туура жолдо колдонуңуз
Video: DS18B20 сенсорун Arduino UNO менен калибрлөө: 3 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
ЖООПКЕРЧИЛИК:
Сиз сүрөттөрдө көргөн түзмөк башка долбоордо фильмди иштеп чыгуу процесси үчүн термостат катары колдонулат. Сиз бул долбоорду бул жерден таба аласыз. Сенсорду же бир нечесин калибрлөө үчүн, сизге бул долбоордо таба турган нерсеңиз керек, башка эч нерсе жок, жана бул абдан жөнөкөй! Кеттик!
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 (); sensor1.begin (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); RawValue float = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Сезим. 1"); lcd.print (RawValue, 1); }
Көрүнүп тургандай, биз Даллас Температура китепканасын жана i2c туташуусу бар ЖК экранды колдонобуз.
Орнотууда биз ЖКны жана сенсорду иштетебиз жана циклде биз жөн гана температураны сурайбыз жана баалуулукту RawValue ичинде ЖКда көрсөтүү үчүн сактайбыз.
Эгер сиз аны жөнөкөй кылгыңыз келсе, жөн гана төмөнкү эскиз менен сериялык мониторду колдонуңуз
#кошуу "Wire.h" #кошуу "OneWire.h" #include "DallasTemperature.h" #аныктоо ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& ourWire1);
float RawValue = 0;
жараксыз орнотуу () {
кечигүү (1000); Serial.begin (9600); sensor1.begin (); sensor1.setResolution (11);
}
void loop () {sensor1.requestTemperatures (); RawValue float = sensor1.getTempCByIndex (0); Serial.print ("Сезим. 1"); Serial.println (RawValue, 1); }
Эми сенсорду калибрлөө үчүн долбоордун өзөгүндө мени ээрчиңиз.
2 -кадам: Эки чекиттүү калибрлөө
Бир нерсени биринчи билиш керек
Термо-сенсорду калибрлөө үчүн, температураны билген нерсени өлчөө керек. Үй шартында муну жасоонун жөнөкөй жолу-бул "үч чекиттүү" ванна деп аталган кайнак сууну жана ээрүүчү муздун ваннасын колдонуу. Мындай учурларда биз билебиз, суу деңиз деңгээлинде 100 ° Сде кайнайт. Так өлчөө үчүн бийиктигиңизди билишиңиз керек жана ошол жердеги кайноо температурасын эсептеп алышыңыз керек экенин унутпаңыз.
Бул жерден текшере аласыз!
Чынын айтсам, бийиктикти эмес, атмосфералык басымды текшериш керек. Бирок бул жол жетишерлик так.
Үч чекиттүү ванна же муз ваннасы-бул катуу, суюк жана газ абалында суунун бар болгон температурасы, бул температура 0, 01 ° С. Биз жөнөкөйлөтүү үчүн 0 ° C колдонобуз.
Сенсор окуган маанини жана болушу керек болгон нерсени билип, DS18B20 чийки баасын туура нерсеге өзгөртө алабыз.
ЭСКЕРТҮҮ: сенсорду жөн эле эфир (35 ° C), пентан (36, 1 ° C), ацетон (56 ° C) сыяктуу кайнап турган чекитине коюп, калибрлөө үчүн дагы температураны колдонсоңуз болот. Этанол (78, 37 ° C), бирок ошол кайнак заттар күйүүчү газдарды чыгарат! Андыктан кылба!
Кайнак суу:
Казанга бир аз суу салып, кайнаганга чейин ысытыңыз (газдын көбүгү пайда болуп, суу өзү козголуп жатат). Сенсорду суудан башка эч нерсеге тийбеген жерге батырыңыз. Бир нече мүнөт күтө туруңуз жана LCD же сериялык мониторду окуңуз
Температура жок дегенде бир мүнөт бою ошол бойдон калышы керек. Андай болсо, ошол бааны жазыңыз. Бул сиздин: RawHigh баасы.
Үч чекиттүү ванна:
Эми чоң стаканды алыңыз (сизге чоң нерсенин да, казандын да кереги жок) жана чек арага чейин муз текчелери менен толтуруңуз. Кичинекей өлчөмдөгү муз кубиктерин колдонууга аракет кылыңыз. Эми айнектин 80% ын муздак суу менен толтуруңуз. Эгерде рычаг ылдый түшүүгө аракет кылса, аны муз менен толтуруңуз.
Эми сенсорду суу/муздун ичине салып, бир жарым мүнөт күтө туруңуз. Жок дегенде 30 секунд бою ошол бойдон калышы керек болгон температураны окуңуз. Андай болсо, аны RawLow баалуулугуңузга жазыңыз.
3 -кадам: Сиз алган баалуулуктарды туура жолдо колдонуңуз
Ошентип, азыр сиз кээ бир маанилүү баалуулуктарга ээ болдуңуз:
- RawHigh
- 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 сенсорун же сиз колдоно турган башка сенсорду кантип калибрлөөнү билесиз! Көңүл ачуу!
Сунушталууда:
Топурактын нымдуулук сенсорун калибрлөө: 5 кадам
Топурактын нымдуулугу сенсорун калибрлөө: Багбанга өсүмдүктөрүн качан сугаруу керектигин чечүүгө жардам берүү үчүн рынокто нымдуулукту эсептегичтер көп. Тилекке каршы, бир ууч топуракты кармап, түсүн жана текстурасын текшерүү бул гаджеттердин көбү сыяктуу ишенимдүү! Кээ бир иликтөөлөр дагы каттайт
Нымдуулук сенсорун калибрлөө: 7 кадам
Нымдуулук сенсорун калибрлөө: Менде абанын салыштырмалуу нымдуулугун өлчөй турган 3 сенсор бар: BME280, SHT21, DHT22. Алар тактык менен өлчөө жөндөмдүүлүгүн билдиришти +/- 3% диапазонунда 20дан 80% га чейин Бирок, 3 сенсорго бирдей абалда тестирлөөдө мен 3 башка жыйынтыкты алдым. Балким о
Үйрөткүч: Arduino UNO менен клетканы кантип калибрлөө жана интерфейске салуу: 3 кадам
Үйрөткүч: Arduino UNO менен кантип клетканы калибрлөө жана интерфейске салуу: Салам балдар, биз сизге үйрөткүчтү көрсөтөбүз: Arduino UNO менен жүктөө клеткасын же HX711 тең салмактуулук модулун кантип калибрлеп, интерфейске салуу керек. тактык / конвертер. Бул чип жогорку деңгээлге чейин иштелип чыккан
Үйрөткүч: DS18B20 жана Arduino UNO колдонуу менен жөнөкөй температура сенсорун кантип жасоо керек: 3 кадам
Үйрөткүч: DS18B20 жана Arduino UNOнун жардамы менен жөнөкөй температура сенсорун кантип жасоо керек: Сүрөттөмө: Бул окуу куралы температура сенсорун кантип иштөө боюнча бир нече жөнөкөй кадамдарды көрсөтөт. Долбооруңузду ишке ашыруу үчүн бир нече мүнөт талап кылынат. Жакшы ийгилик ! DS18B20 санарип термометри 9 биттиктен 12 битке чейинки температураны камсыздайт
Оңой Hard жана Soft Темир Магнитометр Калибрлөө: 6 кадам (Сүрөттөр менен)
Оңой Катуу жана Жумшак Темир Магнитометр Калибрлөө: Эгерде сиздин хоббиңиз RC, дрондор, робототехника, электроника, реалдуулукту жогорулатуу же окшош болсо, анда эртеби -кечпи сиз магнитометрди калибрлөө тапшырмасына туш болосуз. Магнитометрдин каалаган модулун калибрлөө керек, анткени магнит талаасынын өлчөөсү