temperature sensor LM35cz

löysin laatikosta otsikon mukainen lm35 lämpötila sensori.
vasen jalka=vss keski vout, oikea gnd.
ongelmana, koodi toimii lukee ja näyttää voltit ja lämpötilan pinnistä A0

mutta,miksi -merkki edessä ja kun lämpö nousee lukema laskee eli normi huonelämpö +22 celsius astetta,näyttöön tulee -22kun lämmittää lukema tippuu esm -11 celsius astetta,ja miinus merkki edessä ? miten invertoida lukema ja ulos oikea tieto ? mietin laskukaavaa muttei oikein toimi jokin */+-juttu kun toimii väärinpäin.

alla koodi,missä virhe ? muutoin toimii kyllä lukee ja näyttää serial monitorissa asteet.
saisi vain näyttää +merkin ja lukema toisinpäin eli lämpö nousee lukemakin nousee.

ei ole vielä LCD näyttöä mutta näkyykö samalla koodilla lukema näytössä kuin tuossa serial monitorissakin ?
jos ,tai olen hankkimassa 12c näyttöä serial LCD. robomaalta. Robomaa
alkuun vain tuo kirjoittaa libraries liguidcrystal12c.h ??? ja pin init. ???

koodi

void setup()
{
Serial.begin(9600); //Start the serial connection with the computer
//to view the result open the serial monitor
}

void loop() // run over and over again
{
//getting the voltage reading from the temperature sensor
int reading = analogRead(0);

// converting that reading to voltage, for 3.3v arduino use 3.3
float voltage = reading * 5.0;
voltage /= 1024.0;

// print out the voltage
Serial.print(voltage); Serial.println(" volts");

// now print out the temperature
float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset
//to degrees ((volatge - 500mV) times 100)
Serial.print(temperatureC); Serial.println(" degrees C");

delay(1000); //waiting a second
}

löysin yhden linkin missä voi olla jotain ohjetta tuohon mutta sakemannia ei ymmärrä kyllä sit sanaakaan :frowning:

http://www.freeduino.de/node/2160
goolettelin vissin 5tuntia mut mitään järkevää neuvoa ei löydy miksi tuo heittää negatiivista ulostiloa ja väärnipäin reagoi.

joko selvis?

se toimii PTC vastuksen tavoin eli vastus on nouseva lämpöä vasten jolloin jännite laskee kun lämpötila nousee..
laita miinusmerkki 5.0 eteen niin se invertoi luonnollisesti sen kertoimen.. :slight_smile:

matikan tunnilla hereillä? :wink:

float voltage = reading * -5.0;

hmm,kiitos,pitää kokeilla :slight_smile: juu,ei ole matikan tunnit enää muistissa,tullut mieleenkään tuollainen hehe,on meinaan kouluajoista jo aikaa about,30V,eilen lähti tilaukseen robomaalta,koekytkentä levyä ja näyttöä motor shieldiä sun muuta osaa pääsee taas jatkamaan kokeilua :slight_smile: partcolta tilasin pari kpl lämpö ja hall anturireita digitaalisia että silleen,kiitti,hyvä kun on joku joka neuvoo vähän,kun meilläpäin ei ole ketään kenenkanssa jutella näistä :slight_smile:

hmm,kokeilin ,muutin tuota float voltage = reading * -5.0;
voltage /= 1024.0;
miinus eteen,ei toimi,lämpötila ,anturin lämmetessä muuttuu näytössä kylmemmäksi edelleen,eli
kun lämpötila huoneessa +22 näyttää -22C ja lämmitän käsissä anturia,näyttöön tulee alempi lukema edelleen volts 0,24 ja -26,07 degree C

-19,-18,-12 etc.

hmm,ei hajua nyt tästä ?????
hmm,miinus meni kai väärin kun nyt näyttää - 0,24 volt ja -73,93 degree ????? nyt kyllä meni jo yli hilseen miksi 73 astetta lämmin yhtäkkiä samalla asetuksella ???

Saisikohan sen niin jos laitat vielä ton
float temperatureC = (voltage - 0.5) * 100 ;
lisäksi tuommoisen
float temperaturereal = temperatureC * 3 ;

Sitten ei toimi kyllä miinus lämpötilat ja joutuu nuo float:it laittamaan heti loopin alle muotoon : float temperatureC, Temperaturereal;
Nuo kai pystyisi yhdistämään yhdeksikin, mutta itselläni arduino ollut vasta pari viikkoa. Itselläni tällainen "sääasema" projekti siinä käytän Dallasin digitaalista DS18S20 lämpöanturia toimii oikein hyvin, eikä todellakaan ole oikosulkuherkkä kytkin itse vahingossa väärinpäin... Käry nousi, mutta kun käänsin oikein päin hyvin toimi taas javascript:void(0);

kiitti,kokeillaan,itelläkin ollut vain vähän aika tää uno malli,heheh uunolle uno. :slight_smile:
josko näistä taas saisi jotain tolkkua :slight_smile:

Vastaampas vielä uudestaan eipäs toimikkaan tuolla kertoimella tulee vain enemmän miinusta mutta jos laittaisikin esim näin:
float temperaturereal = temperatureC - temperatureC - temperatureC ;
Unohdin tuossa edellisessä kuinka lasketaan.. esim. -22 * 3 = -66 mutta tuolla miinustamalla sillä pitäisi kaiketi saada oikea tulos?