Yra labai daug mikroschemų kurios valdomos per 2 laidų arba I2C grandinę (bussą). I2C tai Philips kūdikis, bet jis naudojamas ir daugybės kitų gamintojų. Pavyzdžiui prie I2C magistralės pajungti beveik visi televizoriaus mazgai. Daugybė navarotnų muzikinių centrų, kompiuterinių kolonėlių taip pat valdomi per I2C (ar panašų) interfeisą. Prie I2C galima jungti nuo paprasčiausio mygtuko ar DTMF imtuvo iki TV tiunerio ar Dolby Digital audio procesoriaus. Pats ATMEL’IS savo ATMEGA procesoriuose turi paruoštas galimybes naudoti I2C interfeisą. Tai taip vadinamas TWI. Mano PCB plokštėje šio protokolo kontaktai stovi prie keturių šviesos diodų, su ~10K pull-up rezistoriais.
Prie šios vietos mes jungsime I2C temperatūros sensorių. Panaudosim patį populiariausią LM75 arba jo analogą ar kloną. Aš panaudojau mažą PCB plokštelę iš seno plazminio teliko. Ten ji matavo matricos temperatūrą. Ant plokštelės prilituotas FM75 čipukas, keli rezistoriai ir kondikai. FM75 tai Fairchaild gamybos LM75 klonas su išplėstu temperatūros matavimo tikslumu. Originalus LM75 rodos naudoja tik 8 bitus, o štai FM75 turi ir netik pilnai suderinamą su LM75 režimą bet ir du išplėstus režimus. Mano programulka perprogramuoją čipuką į 12 bitų rezoliuciją. Pačioje programoje temperatūros konvertavimas perskaičiuojamas netiksliai- nenorėjau (ir nemokėjau) komplikuoti programos su tikslia matematika. Todėl skaičiukai nėra tikslūs. Rekomenduoju perskaityti LM75 ir FM75 datasheetus. Ir pagalvoti kaip skaičiuoti 1/16 laipsnio ir kai parodyti šias reikšmes dešimtainėje sistemoje. Gal dar pasiskaityti kiek AD7416 mikroschemos aprašymą. Šias mikroschemas kažkada siuntinėjo Analog Devices kaip pavyzdžius.
Programoje panaudotas modulis i2c.c iš interneto. Čia pasinaudojau USB Tenki projektu. Ten buvo labai paprasta ištraukti visas I2C procedūras į nepriklausomą programą. Iš ten pat paimti ir lm75.c failiukai. LCD modulio paprogramės panaudotos iš ankstesnio posto. Jungiant savo LM75 mikroschemą prie I2C protokolo nereikia užmiršti pasitikrinti įrenginio adresą. Programos tekstuose aš pažymėjau “pasitikrinti” adreso vietas. Adresas susideda iš dviejų skaičių- bazinio adreso kurį nustatė gamintojas ir kelių bitų, kuriuos gali pakeisti vartotojas paprasčiausiai atitinkamai pajungdamas mikroschemos kojytes. Taip galima pajungti kelias vienodas mikroschemas ant to pačio laido ir matuoti temperatūrą keliose vietose.
Programa: 20070919.zip.
Su šiais geležėliais jau galima konstruoti kokį termostatą. Tik nepulkite programuoti ATMEGA termostato darbui, nes LM75/FM75 mikroschemos jau turi savyje sukonstruotą termostatą. Užtenka teisingai užprogramuoti mikroschemą ir jos išėjimo kojytė gali valdyti šildytuvą ar šaldytuvą. Lai ATMEGA atlieka tik kontrolės ir indikacijos veiksmus.
Vlio Levai, matau greitai judat į priekį. Aš Atmegom naudoju CodeVisionAVR C kompiliatorių, jis toks labiau user-frendly. Prie jo is karto yra tokios bibliotekos kaip I2C ir LM75.