De când am avut mai multe dintre aceste termistoare situate în jurul valorii de termometrele lor chinezești, m-am gândit imediat, de ce să nu le folosim ...
Căutările pe Internet mi-au răcit puțin ardorul, pentru că au existat o mulțime de teorii, desigur, dar a fost mult mai puțin implementat ...
O imagine a wiki-ului despre termistor și caracteristicile acestuia.
După o căutare persistentă, rezultatul a fost obținut sub forma unei surse. Am nevoie doar de o formulă pentru calcularea rezistenței unui termistor și calcularea temperaturii. Coeficienții pentru un anumit model termistor au fost, de asemenea, furnizați aici. În principiu, în sarcina mea, acești coeficienți au venit cu precizie acceptabilă.
Dacă cunoașteți modelul termistorului, atunci coeficienții ar trebui să fie înlocuiți de foaia de date sau calculați din atașament din atașament.
Un termistor este conectat în conformitate cu următoarea schemă:
Avantajul acestei scheme este acela că pentru a măsura cu acuratețe rezistența este suficient să se cunoască rezistența rezistorului, iar tensiunea de alimentare nu ar trebui să fie stabilizată.
Dezavantajul este auto-încălzirea. Dar în cazul meu acest lucru nu este critic.
Am verificat acest caz pe acest principiu: Am conectat un senzor DS18B20 și un termistor la un microcontroler și apoi le-am conectat printr-o pastă termică. Discrepanța la temperatura camerei a fost de aproximativ jumătate de grad, la 60-70 - aproximativ două grade. Dar aceasta nu este termostată, adică poate că diferența dintre incinte a crescut discrepanța.
Pentru cei care sunt deosebit de interesați, apendicele a fost adăugat la atașamentul pentru calculul coeficienților Steinhard-Hayt pentru un termistor arbitrar.
Avantajul acestei scheme este acela că pentru a măsura cu acuratețe rezistența este suficient să se cunoască rezistența rezistorului, iar tensiunea de alimentare nu ar trebui să fie stabilizată. ofertă ciudată
dacă aveți o tensiune instabilă, atunci veți fluctua la ACP, indiferent de temperatură, iar auto-încălzirea aici nu este laterală
cât de mult ați luat firmware-ul terminat cu aceste virgule și de ce a fost necesar să puneți un termistor în locul celui digital?
Cât de bun este acest colector solar?
propunere ciudată Ca referință - tensiunea de alimentare, la intrare - tensiunea generată de divizor, de exemplu, va fi una la una = 1/2 din tensiunea de alimentare. Codul este obținut cu un convertor A / D de 10 biți == 512. Va crește tensiunea, codul va crește sau scădea? divizorul este același.
câte software-uri terminate ai fost acolo DS18B20, USART și LCD HD44780. Nu-mi amintesc, dar m-am urcat în Megu16.
de ce a fost necesar să se pună un termistor în locul celui digital? Doar așa, joacă în jur
Cât de bun este acest colector solar? Nu chiar. Un rezervor de litri 50 dacă nu petreceți până seara până la aproximativ 60 de zile se încălzește într-o zi fierbinte. Cheltuim maxim 48 de grade, de obicei, în timpul zilei, aproximativ 40 de mize.
Sunt de acord că nu este necesar să se stabilizeze. Cu toate acestea, trebuie să punem cel puțin un filtru LC, deoarece timpul în care se face eșantionarea și când este efectuată digitizarea - sunt diferite și, dacă avem zgomot de înaltă frecvență pe sursa de alimentare ADC - vom obține rezultatul corespunzător
câte firmware ați terminat ați privit:
Program: 8650 octeți (52,8% Full)
(.text + .data + .bootloader)
spune că ar trebui să se apropie de structura de intrare aproximativă cu NTC - dacă nimic nu spune că nu sunt vinovat
1. Despre cablare, care este mai ușor de a aduce la terminale - un teren sau o grămadă de poli?
2. În legătură cu interferențele, de regulă pe placa de comandă, pământul este realizat cu conductori sau poligoane mai groase.
Amenințarea tuturor acestor lucruri nu contează cu adevărat în construcțiile amatori cu 1-2 intrări
Eu cred în imunitatea de zgomot și comoditatea de cablare Imunitate de zgomot? Recunosc, dar nimeni nu intervine cu termistorul la distanță conectat la puterea plus, ecranat de la aceeași putere plus. Sau există o sursă de putere proastă? Sau ce ai vrut să spui prin "blocare"?
Confortul de cablare? O întrebare prea concretă de ao discuta prin înțelegere telepatică.
Fără interferență aici în nici o direcție. Nu scrieți bretelele rezistorului. Sau, prin ea, împiedicarea nu merge? În al doilea rând: Un bun konderchik va corecta situația, deoarece temperatura este un proces lung ... puteți programa rotunjirea. De asemenea, am folosit metoda tabelară. A apărut ca un program pe masă în funcție de parametrii termistorului și rezistorului de brățară. Masa este mult mai convenabilă.
Fă ce vrei.
Foarte bine.
Nu știam înainte despre apropierea Shtaynharta - Hart, acum pot găsi coeficienții din tabelul și vice-versa, de coeficienții de a construi o masă, și de a folosi oricare dintre cele două abordări, care vor fi mai convenabil.
Coleg, pentru trimiterea la modelul Steinharda-Hite (ecuația Steinhart-Hart) cu siguranta un plus (deși mi-ar fi folosit tehnici mai puțin intensive, cum ar fi masa de liniarizare sau aproximare). Dar aici este codul pe care l-ați scos ca un exemplu - foarte "nu o fântână". Foarte foarte ... Mai sus, am vorbit deja despre construcții de acest tip
Dar aceasta este doar una dintre puținele probleme. Există o mulțime de probleme, începând cu declarația funcției: de ce dublu v10bit dacă v10bit este o valoare de 10 biți cu ADC. Și dacă aceasta este o valoare de 10 biți, atunci dacă (v10bit == 1024), etc.,
Înțeleg că ați luat drept cod de bază acest proiect sau un proiect detaliat. Dar, pe lângă o implementare foarte nereușită (pe care ați luat-o ca bază), există câteva momente dubioase (IMHO) (pe care le-am măsurat numai în implementarea dvs.).
Nu am înțeles cum ai luat formula
dar (chiar dacă funcționează) cu v10bit == 0 obținem "diviziunea cu 0". Și este ușor să obțineți, dacă firul se rupe la termistor, R1 va trage nivelul la 0.
Acest cod este aproape în întregime de pe Internet, tocmai nu am găsit link-ul imediat. Codul nu este într-adevăr optimizat, am vrut doar să obțin rapid rezultatul și l-am luat.
Singurul lucru pe care l-am schimbat este doar
Odată ceva a decis o sarcină similară (cineva în "concursul" FIDO aranjat).
Adevarul a fost ca nu a fost atat de mult o masura ca un termostat.
Tableta a fost codată într-o spălare, cu o treaptă de 5 grade (epcos dă astfel de tabele NTC-ului său).
Pentru a obține o precizie de 1 grad, am luat rezistența măsurată, a analizat pentru următorii doi termeni (care sunt, în trepte de 5 grade). Când tocmai a fost punctul, atunci ok, delta dacă nu, este determinat == (rezistenta -. Cel mai apropiat punct) și delta înmulțit cu tangenta (== delta temperatură / rezistență delta), rezultatul se adaugă la temperatura scurtă.
Având în vedere faptul că matematica attiny15 greu, a făcut truc - pentru a rezolva problema „grafic“, a luat Brezenhema algoritm și o pereche de puncte a fost în căutarea pentru cele mai potrivite dintre ele (în cazul în care Brezenhemom desena direct pe ecran, cu ajutorul adunare și scădere, atunci de ce să nu utilizați și în microcontroler?).
Pagina aici: Frica-horror-hardcore
Sursele reale sunt: zip
Mesajul algoritmului de conversie este un ecran de asamblare.
Vedeți funcția ConvertT din fișierul Thermostat2.asm în zip.
EasyEDA: Free Cloud CAD