Turinys:
Video: „Pasidaryk pats“temperatūros jutiklis naudojant vieną diodą: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Taigi, kaip vienas iš faktų apie PN jungtis yra tai, kad jų priekinės įtampos kritimas kinta priklausomai nuo praeinančios srovės ir sankryžos temperatūros, tai panaudosime paprastam pigiam temperatūros jutikliui sukurti.
Ši sąranka dažniausiai naudojama daugelyje integruotų grandinių, kad būtų galima išmatuoti jos vidinę temperatūrą ir daugelį temperatūros jutiklių, kaip žinomą LM35, pagrįstą šia savybe.
Tiesiog diodo (kuris yra viena PN jungtis) priekinės įtampos kritimas keičiasi keičiantis per jį einančios srovės kiekiui, taip pat kintant diodo temperatūrai, kinta ir įtampos kritimas (didėjant temperatūrai, sumažėjimas sumažėja reikšme (1,0 milivolto iki 2,0 milivolto silicio diodams ir 2,5 milivolto germanio diodams).
Taigi, praleidžiant pastovią srovę per diodą, priekinės įtampos kritimas dabar turėtų skirtis tik atsižvelgiant į diodo temperatūrą. Mums tiesiog reikia dabar išmatuoti diodo priekinę įtampą, taikyti keletą paprastų lygčių ir voilà čia yra jūsų temperatūros jutiklis !!!
Prekės
1 - 1n4007 diodas #12 - 1 Kohm rezistorius #13 - „Arduino“plokštė
1 žingsnis: grandinės schema
Kaip matote schemoje, tai labai paprasta. nuosekliai jungdami diodą su srovės ribojimo rezistoriumi ir stabiliu įtampos šaltiniu, galime gauti neapdorotą pastovios srovės šaltinį, todėl išmatuota įtampa per diodą skirsis tik dėl temperatūros pokyčių. Įsitikinkite, kad rezistoriaus vertė nėra per maža tiek srovės praeina per diodą ir pastebimai savaime įkaista diodas, taip pat nėra labai didelis rezistorius, todėl praeinančios srovės nepakanka, kad būtų išlaikytas tiesinis ryšys tarp priekinės įtampos ir temperatūros.
1 kg omo rezistorius su 5 V maitinimo šaltiniu turėtų sukelti 4 miliamperų diodo srovę, kuri yra pakankama šiam tikslui. I (diodas) = VCC / (Rseries + Rdiode)
2 žingsnis: kodavimas
Turime nepamiršti, kad norint gauti geresnių rezultatų, reikia keisti kai kurias kodo vertes, pvz.:
1 - VCC_Voltage: kadangi analogRead () reikšmė priklauso nuo ATmega mikroschemos VCC, turime ją pridėti prie lygties, išmatavę arduino plokštėje.
2 - V_OLD_0_C: naudojamo diodo priekinės įtampos kritimas esant 4 mA srovei ir 0 Celsijaus temperatūrai
3 - Temperatūros koeficientas: jūsų diodo temperatūros gradientas (geriau gauti iš duomenų lapo) arba galite jį išmatuoti naudodami šią lygtį: Vnew - Vold = K (Tnew - Told)
kur:
Vnew = naujai išmatuota kritimo įtampa įkaitinus diodą
Vold = išmatuota kritimo įtampa tam tikroje kambario temperatūroje
Tnew = temperatūra, iki kurios buvo įkaitintas diodas
Pasakyta = sena kambario temperatūra, pagal kurią buvo matuojamas Voldas
K = Temperatūros koeficientas (neigiama reikšmė svyruoja nuo -1,0 iki -2,5 milivoltų) Galiausiai dabar galite įkelti kodą ir gauti savo temperatūros rezultatus.
#define Sens_Pin A0 // PA0, skirtas STM32F103C8 plokštei
dvigubas V_OLD_0_C = 690,0; // 690 mV Į priekinę įtampą esant 0 Celsijaus esant 4 mA bandymo srovei
dvigubas V_NEW = 0; // Nauja priekinė įtampa kambario temperatūroje esant 4 mA bandymo srovei dviguba Temperatūra = 0,0; // Kambario apskaičiuota temperatūra dviguba Temperature_Coefficient = -1,6; //-1,6 mV pokytis Celsijaus laipsnyje (-2,5 germanio diodams), geriau gauti iš diodo duomenų lapo dvigubo VCC_Voltage = 5010,0; // Įtampa, esanti arduino 5 V bėgyje, milivoltais (reikalinga geresniam tikslumui) (3300,0 stm32)
void setup () {
// įdėkite čia savo sąrankos kodą, kad paleistumėte vieną kartą: pinMode (Sens_Pin, INPUT); Serial.begin (9600); }
void loop () {
// įdėkite čia savo pagrindinį kodą, kad jis būtų paleistas pakartotinai: V_NEW = analogRead (Sens_Pin)*VCC_Voltage/1024,0; // padalinkite iš 4,0, jei naudojate 12 bitų ADC temperatūrą = (((V_NEW - V_OLD_0_C)/Temperature_Coefficient);
Serial.print ("Temp =");
Serijinis atspaudas (temperatūra); Serial.println ("C");
vėlavimas (500);
}
3 žingsnis: gerinkite vertybes
Manau, kad atliekant šį projektą patartina šalia turėti patikimą temperatūros matavimo prietaisą.
matote, kad rodmenyse yra pastebima klaida, kuri gali pakilti iki 3 ar 4 laipsnių Celsijaus, taigi iš kur ši klaida?
1 - gali tekti koreguoti ankstesniame žingsnyje minėtus kintamuosius
2 - arduino ADC skiriamoji geba yra mažesnė, nei mums reikia mažam įtampos skirtumui aptikti
3 - arduino įtampos atskaitos taškas (5 V) yra per didelis šiam mažam įtampos kitimui per diodą
Taigi, jei ketinate naudoti šią sąranką kaip temperatūros jutiklį, turėtumėte žinoti, kad nors ji yra pigi ir patogi, ji nėra tiksli, tačiau ji gali suteikti jums labai gerą supratimą apie jūsų sistemos temperatūrą. PCB arba pritvirtintas prie veikiančio variklio ir tt …
Ši instrukcija skirta naudoti mažiausią įmanomą komponentų kiekį. Bet jei norite gauti kuo tikslesnius šios idėjos rezultatus, galite atlikti keletą pakeitimų:
1 - pridėkite kai kuriuos stiprinimus ir filtravimo etapus, naudodami op -amp, kaip šioje nuorodoje2 - naudokite žemesnį vidinį analoginį kontrolinį valdiklį kaip STM32F103C8 plokštes su 3,3 voltų analogine etalonine įtampa (žr. 4 punktą) 3 - naudokite vidinę 1,1 V analoginę nuorodą arduino, tačiau atminkite, kad prie bet kurio arduino analoginio kaiščio negalite prijungti daugiau kaip 1,1 volto.
sąrankos funkcijoje galite pridėti šią eilutę:
analogReference (INTERNAL);
4 - Naudokite mikrovaldiklį, turintį didesnę skiriamąją gebą ADC kaip STM32F103C8, kuris turi 12 bitų ADC skiriamąją gebą. Taigi, trumpai tariant, ši „arduino“sąranka gali suteikti puikią jūsų sistemos temperatūros apžvalgą, bet ne tokius tikslius rezultatus (maždaug 4,88 mV/nuskaitymas)
STM32F103C8 sąranka duos jums gana tikslų rezultatą, nes ji turi didesnį 12 bitų ADC ir mažesnę 3,3 V analoginę atskaitos vertę (maždaug 0,8 mV/nuskaitymas)
Na, tiek to !!: D
Rekomenduojamas:
„Pasidaryk pats“kvėpavimo jutiklis su „Arduino“(laidus megztas tempimo jutiklis): 7 žingsniai (su nuotraukomis)
„Pasidaryk pats“kvėpavimo jutiklis su „Arduino“(laidus megztas tempimo jutiklis): šis „pasidaryk pats“jutiklis bus laidus megztas tempimo jutiklis. Jis apsisuks jūsų krūtinę/skrandį, o kai krūtinė/skrandis išsiplės ir susitrauks, taip pat padidės jutiklis, taigi ir įvesties duomenys, kurie bus tiekiami „Arduino“. Taigi
„Pasidaryk pats“durų jutiklis saugumui naudojant ESP8266: 3 žingsniai
„Pasidaryk pats“durų jutiklis saugumui naudojant ESP8266: Apsaugokite savo namus naudodami išmanųjį durų jutiklį, visiškai suprojektuotą naudodami atvirojo kodo technologijas. Šiame vaizdo įraše mes pagaminsime įrenginį, kuris nustatys, ar durys yra atidarytos ar uždarytos, ir atpažins informaciją į jūsų išmanųjį telefoną naudodami BLYNK serveris
„Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis - „Arduino PS2“žaidimų valdiklis - Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino“žaidimų pultą: 7 žingsniai
„Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis | „Arduino PS2“žaidimų valdiklis | Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino Gamepad“: Sveiki, vaikinai, žaisti žaidimus visada smagu, tačiau žaisti su savo „pasidaryk pats“žaidimo valdikliu yra smagiau. Taigi, mes padarysime žaidimų valdiklį naudodami „arduino pro micro“šioje instrukcijoje
Kaip pasidaryti pasirinktinį „pasidaryk pats“temperatūros matuoklį naudojant juostinę diagramą ir „Atmega328p“: 3 žingsniai (su nuotraukomis)
Kaip pasidaryti pasirinktinį „pasidaryk pats“temperatūros matuoklį naudojant juostinę diagramą ir „Atmega328p“: šiame įraše parodysiu, kaip pasidaryti temperatūros matuoklį naudojant juostinę diagramą & Atmega328p. Įraše bus visa informacija, pvz., Grandinės schema, PCB gamyba, kodavimas, surinkimas & Testavimas. Aš taip pat įtraukiau vaizdo įrašą, kuriame yra visa
„Pasidaryk pats“temperatūros jutiklis naudojant „Arduino“ir „LM 35“Paprasta: 5 žingsniai
„Pasidaryk pats“temperatūros jutiklis naudojant „Arduino“ir „LM 35“Paprasta: Sveiki, draugai, šiandien mes sukursime temperatūros matavimo jutiklio grandinę aplink „Arduino UNO“mikrovaldiklį, naudodami jutiklį LM35. Taigi negaišdami laiko pradėkime