Мазмұны:

Бір диодты қолданатын DIY температура сенсоры: 3 қадам
Бір диодты қолданатын DIY температура сенсоры: 3 қадам

Бейне: Бір диодты қолданатын DIY температура сенсоры: 3 қадам

Бейне: Бір диодты қолданатын DIY температура сенсоры: 3 қадам
Бейне: ОРХИДЕИ В ПУСТОЙ ВАЗЕ - ЛАЙФХАКИ, ТОНКОСТИ И ОШИБКИ СОДЕРЖАНИЯ, ПЕРЕВОДА И ЩАДЯЩЕЙ АДАПТАЦИИ В ОС! 2024, Шілде
Anonim
Бір диодты қолданатын DIY температура сенсоры
Бір диодты қолданатын DIY температура сенсоры
Бір диодты қолданатын DIY температура сенсоры
Бір диодты қолданатын DIY температура сенсоры

PN-түйіндер туралы фактілердің бірі-олардың кернеудің ілгерілеуінің ауысу токына және қосылу температурасына байланысты өзгеруі, біз мұны қарапайым арзан сенсор жасау үшін қолданамыз.

Бұл қондырғы көптеген интегралды схемаларда оның ішкі температурасы мен көптеген температура сенсорларын өлшеуге арналған, бұл қасиетке негізделген әйгілі LM35.

Тек диодтың тура кернеуінің төмендеуі (бұл бір PN-түйін), ол арқылы өтетін ток мөлшері өзгереді, сонымен қатар диод температурасы өзгергенде кернеудің төмендеуі өзгереді (температура жоғарылаған сайын алға төмендеу мәніне төмендейді (кремний диодтары үшін 1,0 миллиВольттен 2,0 миллиВольтке дейін және германий диодтары үшін 2,5 миллиВольт).

Сондықтан диод арқылы тұрақты ток өткізу арқылы алға қарай кернеудің төмендеуі тек диодтың температурасына байланысты өзгеруі керек. Бізге қазір диодтың тура кернеуін өлшеу керек, бірнеше қарапайым теңдеулерді қолдану керек, бұл жерде сіздің температура сенсорыңыз !!!

Жабдықтар

1 - 1n4007 диод #12 - 1 Кох резисторы #13 - Arduino тақтасы

1 -қадам: схема

Схема диаграммасы
Схема диаграммасы

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

5 В кернеуі бар 1 кило Ом резисторы 4 миллиАмпер диодты токқа әкелуі керек, бұл осы мақсат үшін жеткілікті мән. I (диод) = VCC / (Rseries + Rdiode)

2 -қадам: кодтау

Жақсы нәтижеге қол жеткізу үшін кодты өзгертуге болатын кейбір мәндер бар екенін есте ұстауымыз керек:

1 - VCC_Voltage: analogRead () мәні ATmega чипінің VCC -ге тәуелді болғандықтан, оны arduino тақтасында өлшегеннен кейін оны теңдеуге қосу керек.

2 - V_OLD_0_C: 4 мА ток пен 0 Цельсий температурасында қолданылатын диодтың кернеудің тура төмендеуі

3 - Temperature_Coefficient: диодтың температуралық градиенті (деректер кестесінен алу жақсы) немесе оны мына теңдеу арқылы өлшеуге болады: Vnew - Vold = K (Tnew - Told)

мұнда:

Vnew = диодты қыздырғаннан кейін жаңадан өлшенген төмендеу кернеуі

Вольд = кейбір бөлме температурасында төмендеген кернеу

Tnew = диод қыздырылған температура

Айтылды = Волд өлшенген ескі бөлме температурасы

K = Temperature_Coefficient (теріс мән -1,0 -2,5 миллиВольт аралығында өзгереді) Соңында сіз енді кодты жүктеп, температура нәтижелерін ала аласыз.

STM32F103C8 тақтасына Sens_Pin A0 // PA0 анықтаңыз

қос V_OLD_0_C = 690.0; // 690 мВ Алдыңғы кернеу 0 Цельсийде 4 мА сынақ тогында

қос V_NEW = 0; // Бөлме температурасындағы жаңа алға кернеу 4 мА сынақ тогы қос Температура = 0,0; // Бөлмедегі есептелген температура екі есе Temperature_Coefficient = -1.6; Цельсий бойынша //-1,6 мВ өзгеруі (германий диодтары үшін -2,5), екі есе диодты мәліметтер парағынан алу жақсы VCC_Voltage = 5010.0; // Ардуиноның 5В рельсіндегі миллиВольт кернеуі (дәлірек болу үшін қажет) (stm32 үшін 3300.0)

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

// орнату кодын бір рет іске қосу үшін осында қойыңыз: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

void loop () {

// осында бірнеше рет іске қосу үшін негізгі кодты қойыңыз: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024.0; // егер сіз 12 биттік ADC температурасын қолдансаңыз, 4.0 -ге бөліңіз = ((V_NEW - V_OLD_0_C)/Temperature_Coefficient);

Serial.print («Temp =»);

Сериялық баспа (температура); Serial.println («C»);

кешіктіру (500);

}

3 -қадам: Жақсы құндылықтарды алу

Жақсы құндылықтарды алу
Жақсы құндылықтарды алу
Жақсы құндылықтарды алу
Жақсы құндылықтарды алу

Менің ойымша, бұл жобаны орындау кезінде сенімді температура өлшеу құрылғысы болуы керек.

сіз оқуда 3 немесе 4 градус Цельсийге дейін жететін елеулі қате бар екенін көре аласыз, бұл қате қайдан шыққан?

1 - сізге алдыңғы қадамда айтылған айнымалыларды өзгерту қажет болуы мүмкін

2 - arduino -ның ADC ажыратымдылығы кіші кернеу айырмашылығын анықтау үшін қажет болғаннан төмен

3 - диодтағы кернеудің шамалы өзгеруі үшін arduino (5V) кернеу сілтемесі тым жоғары

Егер сіз бұл қондырғыны температура сенсоры ретінде қолданатын болсаңыз, бұл арзан және ыңғайлы болғанымен, ол дәл емес екенін білуіңіз керек, бірақ ол сіздің жүйеңіздің температурасы туралы өте жақсы түсінік бере алады. ПХД немесе жұмыс істейтін қозғалтқышқа орнатылған және т.

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

1 - осы сілтемедегі оп -амперді қолдана отырып, кейбір күшейту мен сүзу кезеңдерін қосыңыз2 - STM32F103C8 тақтасы ретінде 3,3 вольттық аналогтық тірек кернеуі бар төменгі ішкі аналогтық контроллерді қолданыңыз (4 тармақты қараңыз) 3 - ішкі 1.1 В аналогтық сілтемені қолданыңыз arduino, бірақ arduino аналогтық түйреуіштерінің ешқайсысына 1,1 Вольттан артық қосуға болмайтынын біліңіз.

бұл жолды орнату функциясына қосуға болады:

аналогтық сілтеме (ІШКІ);

4 - ADC ажыратымдылығы STM32F103C8 сияқты жоғары ажыратымдылығы бар микроконтроллерді қолданыңыз, ол 12 биттік ADC ажыратымдылығына ие, сондықтан қысқаша айтқанда, бұл arduino негізіндегі қондырғы сіздің жүйенің температурасы туралы жақсы шолу бере алады, бірақ дәл нәтиже бермейді (шамамен 4,88 мВ/оқу)

STM32F103C8 қондырғысы сізге өте дәл нәтиже береді, себебі ол 12-биттік ADC жоғары және 3,3В аналогтық сілтеме мәнінен төмен (шамамен 0,8 мВ/оқу)

Жарайды, болды !!: D

Ұсынылған: