Агуулгын хүснэгт:

Нэг диод ашиглан DIY температур мэдрэгч: 3 алхам
Нэг диод ашиглан DIY температур мэдрэгч: 3 алхам

Видео: Нэг диод ашиглан DIY температур мэдрэгч: 3 алхам

Видео: Нэг диод ашиглан DIY температур мэдрэгч: 3 алхам
Видео: 5 УДИВИТЕЛЬНЫХ ЖИЗНЕННЫХ ХАКОВ # 2 2024, Долдугаар сарын
Anonim
Нэг диод ашиглан DIY температур мэдрэгч
Нэг диод ашиглан DIY температур мэдрэгч
Нэг диод ашиглан DIY температур мэдрэгч
Нэг диод ашиглан DIY температур мэдрэгч

PN-уулзваруудын талаархи баримтуудын нэг нь тэдний урвуу хүчдэлийн уналт нь өнгөрөх гүйдэл болон уулзварын температураас хамаарч өөрчлөгддөг тул бид үүнийг ашиглан хямд хямд температур мэдрэгч хийх болно.

Энэхүү тохиргоог олон дотоод хэлхээнд ашигладаг бөгөөд энэ температурт суурилсан алдартай LM35 хэмжигч болох дотоод температур, олон температур мэдрэгчийг хэмжихэд ашигладаг.

Зүгээр л диодын урвуу хүчдэлийн уналт (энэ нь нэг PN-уулзвар юм) дамжин өнгөрөх гүйдлийн хэмжээ өөрчлөгдөхөд диодын температур өөрчлөгдөхөд хүчдэлийн уналт өөрчлөгдөх болно (Температур нэмэгдэх тусам урагш бууралт нь (цахиур диодын хувьд 1.0 миллиВольтоос 2.0 миллиВольт хүртэл, германий диодын хувьд 2.5 миллиВольт) -аар буурдаг.

Тиймээс диодоор тогтмол гүйдэл дамжуулснаар диодын температураас хамаарч урвуу хүчдэлийн уналт нь зөвхөн өөр байх ёстой. Диодын урагшлах хүчдэлийг хэмжих, энгийн тэгшитгэлийг ашиглах, энд таны температур мэдрэгчийг voilà болгох шаардлагатай байна.

Хангамж

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 = диодыг халаасны дараа шинээр хэмжсэн уналтын хүчдэл

Vold = өрөөний температурт унасан хүчдэлийг хэмждэг

Tnew = диодыг халаасан температур

Told = Волдын хэмжсэн хуучин өрөөний температур

K = Temperature_Coefficient (сөрөг утга -1.0 -2.5 миллиВольтын хооронд хэлбэлздэг) Эцэст нь та кодыг байршуулж, температурынхаа үр дүнг авах боломжтой.

STM32F103C8 хавтангийн хувьд Sens_Pin A0 // PA0 -г тодорхойлох

давхар V_OLD_0_C = 690.0; // 690 мВ Туршилтын 4 мА гүйдлийн 0 Цельсийн урагш хүчдэл

давхар V_NEW = 0; // Тасалгааны температурт 4 мА туршилтын гүйдлийн шинэ урагш хүчдэл Давхар Температур = 0.0; // Өрөөний тооцоолсон температур хоёр дахин Temperature_Coefficient = -1.6; Цельсийн градус тутамд //-1.6 мВ-ийн өөрчлөлт (германий диодын хувьд -2.5), давхар диодын мэдээллийн хуудаснаас авах нь илүү дээр юм VCC_Voltage = 5010.0; // Arduino -ийн 5V төмөр замд хүчдэлийг миллиВольтоор (илүү нарийвчлалтай болгохын тулд шаардлагатай) (stm32 -ийн хувьд 3300.0)

хүчингүй тохиргоо () {

// нэг удаа ажиллуулахын тулд тохиргооны кодоо энд оруулна уу: pinMode (Sens_Pin, INPUT); Цуваа эхлэх (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 - энэ линк дээрх шиг op -amps ашиглан зарим өсгөлт ба шүүлтүүрийн үе шатыг нэмнэ үү 2 - 3.3 вольтын аналог лавлах хүчдэл бүхий STM32F103C8 хавтангийн хувьд бага дотоод аналог лавлах хянагч ашиглана уу (4 -р зүйлийг үзнэ үү) 3 - дотоод 1.1 V аналог лавлагааг ашиглана уу. arduino гэхдээ та 1.1 вольтоос илүү ямар ч arduino аналог тээглүүрт холбогдож чадахгүй гэдгийг анхаарна уу.

Та тохиргооны функцэд энэ мөрийг нэмж болно:

аналог лавлагаа (ДОТООД);

4 - ADC -ийн өндөр нарийвчлалтай STM32F103C8 шиг 12 битийн ADC нарийвчлалтай микроконтроллер ашиглана уу. Товчхондоо, arduino дээр суурилсан энэхүү тохиргоо нь таны системийн температурын талаар маш сайн тойм өгөх боломжтой боловч үнэн зөв үр дүнг өгдөггүй (ойролцоогоор 4.88 мВ/Унших)

STM32F103C8 тохиргоо нь өндөр нарийвчлалтай 12 битийн ADC ба бага 3.3V аналог лавлах утгатай (ойролцоогоор 0.8 мВ/Унших) тул танд маш нарийвчлалтай үр дүнг өгөх болно.

За ингээд боллоо !!: D

Зөвлөмж болгож буй: