Talaan ng mga Nilalaman:

DIY Temperatura Sensor Gamit ang Isang Diode: 3 Hakbang
DIY Temperatura Sensor Gamit ang Isang Diode: 3 Hakbang

Video: DIY Temperatura Sensor Gamit ang Isang Diode: 3 Hakbang

Video: DIY Temperatura Sensor Gamit ang Isang Diode: 3 Hakbang
Video: How to Make a Temperature Sensor Circuit Using a Diode #1n4007 #bc547 #temperaturesensor #circuit 2024, Hulyo
Anonim
DIY Temperatura Sensor Gamit ang Isang Diode
DIY Temperatura Sensor Gamit ang Isang Diode
DIY Temperatura Sensor Gamit ang Isang Diode
DIY Temperatura Sensor Gamit ang Isang Diode

Kaya't tulad ng isa sa mga katotohanan tungkol sa PN-junction ay ang kanilang pasulong na pagbagsak ng boltahe ay nagbabago ayon sa pagdaan ng kasalukuyang at sa temperatura ng junction din, gagamitin namin ito upang makagawa ng isang simpleng murang sensor ng temperatura.

Ang setup na ito ay karaniwang ginagamit sa maraming mga Integrated Circuits upang masukat ang panloob na temperatura at maraming mga sensor ng temperatura bilang sikat na LM35 na batay sa pag-aari na ito.

Lamang ang pasulong na pagbagsak ng boltahe ng isang diode (na kung saan ay isang solong PN-junction) ay nagbabago habang ang halaga ng kasalukuyang dumadaan sa ito ay nagbabago, gayundin habang binabago ng temperatura ng diode ang pagbagsak ng boltahe ay magbabago (Habang tumataas ang temperatura, pasulong bumababa ang drop ng isang halaga ng (1.0 milliVolts hanggang 2.0 milliVolts para sa mga silikon diode at 2.5 milliVolts para sa mga germanium diode).

Kaya sa pamamagitan ng pagpasa ng isang pare-pareho na kasalukuyang sa pamamagitan ng diode ang pasulong na pagbagsak ng boltahe ay dapat lamang mag-iba ayon sa temperatura ng diode. Kailangan lang namin ngayon upang masukat ang pasulong na boltahe ng diode, maglapat ng ilang simpleng mga equation at voilà narito ang iyong sensor ng temperatura !!!

Mga gamit

1 - 1n4007 diode # 12 - 1 Kohm resistor # 13 - Arduino board

Hakbang 1: Diagram ng Circuit

Diagram ng Circuit
Diagram ng Circuit

Tulad ng nakikita mo sa eskematiko napaka-simple. sa pamamagitan ng pagkonekta sa diode sa serye na may kasalukuyang pumipigil sa risistor at isang matatag na mapagkukunan ng boltahe maaari kaming makakuha ng isang pare-pareho na kasalukuyang mapagkukunan, kaya't ang sinusukat na boltahe sa kabuuan ng diode ay mag-iiba lamang dahil sa pagbabago ng temperatura. Siguraduhin na ang halaga ng risistor ay hindi masyadong mababa na ang kasalukuyang kasalukuyang dumadaan sa diode at gumawa ng isang kapansin-pansing pag-init sa sarili sa diode, hindi rin isang napakataas na risistor kaya't ang kasalukuyang pagdaan ay hindi sapat upang mapanatili ang isang linear na ugnayan sa pagitan ng pasulong na boltahe at ng temperatura.

isang 1 kilo Ohm risistor na may isang supply ng 5V ay dapat magresulta sa isang kasalukuyang 4 milliAmpere diode na kung saan ay isang sapat na halaga para sa hangaring ito. Ako (diode) = VCC / (Rseries + Rdiode)

Hakbang 2: Pag-coding

Kailangan nating tandaan na may ilang mga halaga upang mag-tweak sa code upang makuha ang mas mahusay na mga resulta tulad ng:

1 - VCC_Voltage: tulad ng halaga ng analogRead () ay nakasalalay sa VCC ng ATmega chip pagkatapos ay kailangan nating idagdag ito sa equation pagkatapos sukatin ito sa arduino board.

2 - V_OLD_0_C: ang pasulong na pagbagsak ng boltahe ng ginamit na diode sa kasalukuyang 4 mA at temperatura ng 0 Celsius

3 - Temperatura_Coefficient: ang temperatura gradient ng iyong diode (mas mahusay na makakuha mula sa datasheet) o maaari mong sukatin ito gamit ang equation na ito: Vnew - Vold = K (Tnew - Told)

kung saan:

Vnew = bagong sinusukat na boltahe ng drop pagkatapos ng pag-init ng diode

Vold = sinusukat drop boltahe sa ilang temperatura ng kuwarto

Tnew = ang temperatura kung saan pinainit ang diode

Sinabi = ang dating temperatura ng silid na sinukat ni Vold

K = Temperature_Coefficient (isang negatibong halaga na nag-iiba sa pagitan ng -1.0 hanggang -2.5 milliVolts) Sa wakas maaari mo na ngayong i-upload ang code at makuha ang iyong mga resulta sa temperatura.

#define Sens_Pin A0 // PA0 para sa STM32F103C8 board

doble V_OLD_0_C = 690.0; // 690 mV Forward voltage sa 0 Celsius sa 4 mA kasalukuyang pagsubok

doble V_NEW = 0; // Bagong boltahe sa unahan sa temperatura ng kuwarto sa 4 mA pagsubok kasalukuyang dobleng Temperatura = 0.0; // Room kinakalkula temperatura dobleng Temperatura_Coefficient = -1.6; //-1.6 mV pagbabago bawat degree Celsius (-2.5 para sa germanium diode), mas mahusay na makakuha mula sa diode datasheet na dobleng VCC_Voltage = 5010.0; // Boltahe na naroroon sa 5V rail ng arduino sa milliVolts (kinakailangan para sa mas mahusay na kawastuhan) (3300.0 para sa stm32)

walang bisa ang pag-setup () {

// ilagay ang iyong code sa pag-setup dito, upang tumakbo nang isang beses: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }

void loop () {

// ilagay ang iyong pangunahing code dito, upang tumakbo nang paulit-ulit: V_NEW = analogRead (Sens_Pin) * VCC_Voltage / 1024.0; // hatiin ng 4.0 kung gumagamit ka ng 12 bit na ADC Temperature = (((V_NEW - V_OLD_0_C) / Temperature_Coefficient);

Serial.print ("Temp =");

Serial.print (Temperatura); Serial.println ("C");

pagkaantala (500);

}

Hakbang 3: Pagkuha ng Mas Mahusay na Mga Halaga

Pagkuha ng Mas Mahusay na Mga Halaga
Pagkuha ng Mas Mahusay na Mga Halaga
Pagkuha ng Mas Mahusay na Mga Halaga
Pagkuha ng Mas Mahusay na Mga Halaga

Sa palagay ko ipinapayong magkaroon ng isang pinagkakatiwalaang aparato sa pagsukat ng temperatura sa tabi mo kapag ginagawa ang proyektong ito.

maaari mong makita na mayroong isang kapansin-pansin na error sa mga pagbabasa na maaaring makakuha ng 3 o 4 na degree Celsius kaya saan nagmula ang error na ito?

1 - maaaring kailanganin mong i-tweak ang mga variable na nabanggit sa nakaraang hakbang

2 - ang resolusyon ng ADC ng arduino ay mas mababa kaysa sa kailangan namin upang makita ang maliit na pagkakaiba ng boltahe

3 - ang boltahe na sanggunian ng arduino (5V) ay masyadong mataas para sa maliit na boltahe na ito sa buong diode

Kaya't kung gagamitin mo ang setup na ito bilang isang sensor ng temperatura, dapat mong magkaroon ng kamalayan na kahit na ito ay mura at madaling gamiting, ito ay hindi tumpak ngunit maaari kang magbigay sa iyo ng isang napakahusay na ideya tungkol sa temperatura ng iyong system alinman sa isang PCB o naka-mount sa pagpapatakbo ng motor atbp…

Ang itinuturo na ito ay sinadya upang magamit ang hindi bababa sa dami ng mga sangkap na posible. Ngunit kung nais mong makuha ang pinaka tumpak na mga resulta mula sa ideyang ito maaari kang gumawa ng ilang mga pagbabago:

1 - magdagdag ng ilang mga amplification at pag-filter ng mga yugto gamit ang mga op-amp tulad ng sa link2 na ito - gumamit ng isang mas mababang panloob na analog na sanggunian ng sanggunian bilang mga board ng STM32F103C8 na may boltahe ng sangguniang analog na 3.3 Volts (tingnan ang punto 4) 3 - gamitin ang panloob na 1.1 V analog na sanggunian sa arduino ngunit magkaroon ng kamalayan na hindi ka makakonekta ng higit sa 1.1 Volt sa alinman sa mga arduino analog pin.

maaari mong idagdag ang linyang ito sa pag-andar ng pag-setup:

sanggunian ng analog (INTERNAL);

4 - Gumamit ng isang microcontroller na may mas mataas na resolusyon ng ADC bilang STM32F103C8 na mayroong 12 bit na resolusyon ng ADC Kaya sa madaling sabi, ang pag-set up na batay sa arduino na ito ay maaaring magbigay ng isang magandang pangkalahatang ideya tungkol sa temperatura ng iyong system ngunit hindi masyadong tumpak na mga resulta (humigit-kumulang na 4.88 mV / Pagbasa)

ang pag-set up ng STM32F103C8 ay magbibigay sa iyo ng isang tumpak na resulta dahil mayroon itong mas mataas na 12-bit ADC at isang mas mababang 3.3V na halaga ng sangguniang analog (humigit-kumulang na 0.8 mV / Pagbasa)

Well, yun lang !!: D

Inirerekumendang: