DS18b20 ja avr

Olen tällainen hieman vanhentunut harrastelija, ja “löysin” tuon otsikossa mainitsemani Dallasin lämpötila-anturin. Ihan kiva laite, ja sain jopa sillä tulostettua atmelin168:n välityksellä lämpötilan LCD:lle, nyt sitten nälkä kasvoi syödessä. Eli miten saisin esim. vaikkapa ledin syttymään kun lämpötila ylittää tietyn arvon, tai sitten alittaa. Olen googlaillut aiheesta, ja repinyt harvenevia hiuksiani, koska tuo englannin taitoni lie hieman umpiruosteessa, ja toisaalta nekin esimerkit joita olen löytänyt kertovat “hieman” taitojeni ylittävistä kytkennöistä.

Jos joku viitsisi vääntää kohtalaisen vahvasta rautalangasta miten tuo ongelma ratkaistaan, tai heittäisi linkin jollekin sivustolle millä neuvotaan miten tuo tehdään, niin olisin erittäin kiitollinen.

Tuohon ongelmaasi auttaisi varmastikkin kirja Micro-ohjaimen ohjelmointi C-kielellä. Jokunen aika sitten löytyi ilmaiseksi tekijän sivuilta. Tuossa kirjassa käydään perusteet erittäin selkeästi läpi. :slight_smile:

Kiitoksia, niinhän se taitaa olla, että mitään ei saa ns. ilmaiseksi. Joten mennään vanhoilla päivillä takaisin “koulun” penkille.

Tuo ongelma on sen verran yksinkertainen että suosittelen kyllä lämpimästi opettelemaan perusteet. :slight_smile: Luin rivien välistä että nuo mitä olet tehnyt on menty pitkälti copy/paste menetelmällä. En tiedä pitääkö paikkaansa mutta koodin ymmärtämisestä kaikki lähtee. Kun pääset alkuun niin neuvoja kyllä tulee lisää…

Kopioimallahan sitä “ohjelmoitiin”… tähän saakka. Nyt lähti sitten se DS18b20 ja ledi löytämään toisensa, eli yksi tavoite saavutettu. Seuraava olisikin sitten pistää niitä antureita enemmän kuin yksi sen kontrollerin porttiin, niin ja tulostamaan ne lämmöt LCD:lle, siinä se meneekin sitten loppuvuosi.

ps. On se vaan prun tarkka se anturi, tein sillä jo “ikiliikkujan”, eli ledin vastus (300 ohmia) lämmittää sitä ja kun lämpö nousee niin ledi sammuu, nyt sitten lämpö laskee ja ledi syttyy, ja sitten lämpö nousee…

Tuollaista kutsutaan näissä salapiireissä oskillaattoriksi :wink:

Ja kyllä, DS18B20:n resoluutio oli muistaakseni 0,0625 astetta. Itselläni pellettipolttimen ohjaus logittaa lämpötiloja ja piirtelee niistä käppyröitä (nähtävissä täällä). Tällä hetkellä siinä on kiinni DS18S20 anturit, joiden extrarekistereistä on laskettu lämpötila 0,0625 asteen resoluutiolla, eli käytännössä samalla kuin tuo DS18B20 antaa oletuksena, eli 12-bittisenä.