Funderingar kring tempgivare till PIC.
Funderingar kring tempgivare till PIC.
Skissar på ett temperaturreglerande system för en vattentank. NOgrannhet på givaren behöver inte vara speciellt hög kan diffa på hela grader.
Det rör sig om temperaturer från 15 till 50 grader i reglerat område.
Men undrar vad som är brukligt vid val av givare.
Har tittat på termoelement med tillhörade krets för ispunktsjustering, resistiva givare i form av metall och halvledarmaterial. Läst om linjärisering och förstärkning.
Men funderar på strunta i linjärisering och låta PICen sköta det. Välja en t.ex en NTC och bara spänningsdela? Är det dumt? Onödigt att lägga in en vektor, linjärinterpolera och utifrån inläst AD-omvadling? Blir några rader mindre kod med en linjär givare.
Som sagt, vad är brukligt?
Det rör sig om temperaturer från 15 till 50 grader i reglerat område.
Men undrar vad som är brukligt vid val av givare.
Har tittat på termoelement med tillhörade krets för ispunktsjustering, resistiva givare i form av metall och halvledarmaterial. Läst om linjärisering och förstärkning.
Men funderar på strunta i linjärisering och låta PICen sköta det. Välja en t.ex en NTC och bara spänningsdela? Är det dumt? Onödigt att lägga in en vektor, linjärinterpolera och utifrån inläst AD-omvadling? Blir några rader mindre kod med en linjär givare.
Som sagt, vad är brukligt?
Re: Funderingar kring tempgivare till PIC.
Jag röstar för dallas 18b20.
+inga kringkomponenter behövs normalt sett
+noggrann utan kalibrering
+bara en pinne på picen behövs även om du vill mäta med flera givare
-någon krona dyrare
-kan vara lite meck att få till mjukvaran om man är nybörjare
+inga kringkomponenter behövs normalt sett
+noggrann utan kalibrering
+bara en pinne på picen behövs även om du vill mäta med flera givare
-någon krona dyrare
-kan vara lite meck att få till mjukvaran om man är nybörjare
Re: Funderingar kring tempgivare till PIC.
Jag föreslår detsamma och tycker inte alls att de är dyra. Finns att få för kring 30:- här i Sverige. Programvaran är inga problem alls, det är jättelätt tycker jag i varje fall. Mycket stökigare med det andra som nämnts.
När Du väljer pinne på PIC, välj en med TTL-kompatibla ingångsnivåer (inte ST) så blir marginalerna för strökapacitanser vid överföringen betydligt större.
När Du väljer pinne på PIC, välj en med TTL-kompatibla ingångsnivåer (inte ST) så blir marginalerna för strökapacitanser vid överföringen betydligt större.
Re: Funderingar kring tempgivare till PIC.
Du kanske skall kika på MCP9701-E.
Knappt dyrare än NTC (4.50:- på XTUNE) men linjära och kan kopplas rakt på AD om jag fattat rätt.
Har ett gäng själv men inte hunnit utvärdera.
18b20 är givetvis ett bra val det med.
Däremot så tycker jag du skall hålla dig borta från NTC och uppslagstabeller.
När man kodar skiten undrar man hur man tänkte egentligen. Spara någon 10'a för att fippla och slösa tid.
Knappt dyrare än NTC (4.50:- på XTUNE) men linjära och kan kopplas rakt på AD om jag fattat rätt.
Har ett gäng själv men inte hunnit utvärdera.
18b20 är givetvis ett bra val det med.
Däremot så tycker jag du skall hålla dig borta från NTC och uppslagstabeller.
När man kodar skiten undrar man hur man tänkte egentligen. Spara någon 10'a för att fippla och slösa tid.
Re: Funderingar kring tempgivare till PIC.
Ser ingen som helst fördel utöver att spara en tia eller så på att välja en analog givare. Den är inte kalibrerad och kräver liksom andra analoga givare åtgärder mot brus och störningar för att fungera ute i verkligheten. 18B20 går också att få till bättre priser om de köps utomlands, men med frakt och risken för att tullen momsar paketet så är där inte mycket att hämta.
Re: Funderingar kring tempgivare till PIC.
Har använt SMT160 (pulsbredd) givare från Smartec med denna fixedpoint snurra:
Den loopar 63830 gånger och räknar antalet höga, drar sedan bort 20425 och delar med 3. Man får då temperaturen med två decimaler.
/Arne
Kod: Markera allt
unsigned int temperature (void)
{
unsigned int onecount;
unsigned int totalcount;
#asm
bcf 3,5
clrf ?a_temperature
clrf ?a_temperature+1
movlw 0x56
movwf ?a_temperature+2
movlw 0xf9
movwf ?a_temperature+3
s1 nop
nop
s2 btfss porta,2
goto c1
incfsz ?a_temperature,f
goto c2
incf ?a_temperature+1,f
goto c3
c1 nop
nop
c2 nop
nop
c3 decfsz ?a_temperature+2,f
goto s1
decfsz ?a_temperature+3,f
goto s2
#endasm
return ((onecount - 20425) / 3);
}
/Arne
Senast redigerad av void 2 november 2010, 22:44:00, redigerad totalt 1 gång.
Re: Funderingar kring tempgivare till PIC.
Som sagt jag har inga egna erfarenheter av den ännu.
Inlägget var mer av "kanske värt att kolla på" karraktär.
Databladet säger:
Det kanske var otydligt men XTUNE är ju Svenskt (en kollega här på forumet) http://www.xtune.se
Inlägget var mer av "kanske värt att kolla på" karraktär.
Databladet säger:
Kod: Markera allt
Unlike resistive sensors (such as thermistors), the
Linear Active Thermistor IC does not require an
additional signal-conditioning circuit. Therefore, the
biasing circuit development overhead for thermistor
solutions can be avoided by implementing this low-cost
device. The voltage output pin (VOUT) can be directly
connected to the ADC input of a microcontroller.
Re: Funderingar kring tempgivare till PIC.
Analogt i all ära men för att det ska bli i närheten av användbart måste VDD till processorn vara stabil och "kalibrerat", den används ju som referens av AD-omvandlaren.
Därför är DS18S20 eller DS18B20 det självklara valet.
Därför är DS18S20 eller DS18B20 det självklara valet.
Senast redigerad av Icecap 3 november 2010, 13:42:17, redigerad totalt 1 gång.
Re: Funderingar kring tempgivare till PIC.
Varför 18S20 och inte 18B20? Är den förstnämnda noggrannare på något sätt? Annars är ju 18B mycket enklare att läsa av som ger delar av grader direkt i 16-delar utan specialtrix.
Glöm för all del SMT160 och eländet med att mäta pulskvot, den sensorn är en förhistorisk relik. Slukar fruktansvärda CPU-resurser till ingening. Där är inte alls två decimalers noggranhet, fast insignifikanta siffror är ju populärt i många sammanhang. Det ser ju så bra ut. Linjäriteten är .2 grader och noggranheten .7. Sämre noggrannhet än DS18?20 som dessutom har fördelen att värdet direktavläses och att mättiden är tillgänglig för CPU att göra något nyttigt.
Glöm för all del SMT160 och eländet med att mäta pulskvot, den sensorn är en förhistorisk relik. Slukar fruktansvärda CPU-resurser till ingening. Där är inte alls två decimalers noggranhet, fast insignifikanta siffror är ju populärt i många sammanhang. Det ser ju så bra ut. Linjäriteten är .2 grader och noggranheten .7. Sämre noggrannhet än DS18?20 som dessutom har fördelen att värdet direktavläses och att mättiden är tillgänglig för CPU att göra något nyttigt.
-
- Inlägg: 8092
- Blev medlem: 18 januari 2009, 00:48:24
- Ort: Alvesta, Småland
Re: Funderingar kring tempgivare till PIC.
18B20 röstar jag på också alla gånger. Man kan hitta dem på ebay och dylikt för en tia ibland. Om man nu är snål och inte vill gynna våra svenska säljare.
Re: Funderingar kring tempgivare till PIC.
Man ska komma ihåg att temperatur är svår att mäta faktisk! Inte själva grejen med sensor eller så men att mäta den temperatur som är den rätta.
Lufttemperaturen i ena ändan av mitt vardagsrum är inte den samma som i den andra ändan osv. det besvärliga är alltså att få sensorn temperatur till att motsvara den temperatur man vill mäta.
Och vilken DS18x20 man använder är ganska likgiltigt, att uppge temperatur med högre upplösning än 0,5°C är ren önsketänkning och kräver kalibrering och även 0,5°C i upplösning är ganska teoretisk.
Lufttemperaturen i ena ändan av mitt vardagsrum är inte den samma som i den andra ändan osv. det besvärliga är alltså att få sensorn temperatur till att motsvara den temperatur man vill mäta.
Och vilken DS18x20 man använder är ganska likgiltigt, att uppge temperatur med högre upplösning än 0,5°C är ren önsketänkning och kräver kalibrering och även 0,5°C i upplösning är ganska teoretisk.