16 Ekim 2012 Salı

Arduino + LM335 ile Sıcaklık Ölçme

Hamza Öztaş Share:
Image Hosted by ImageShack.us


//http://www.depositericrobotic.com/
//http://arduinowhathappens.blogspot.com/

int TEMP = A0;
float temperature;

void setup()
{
  Serial.begin(9600);
}
void loop()
{
  temperature=analogRead(TEMP);
  temperature=(((temperature/1023)*5000)/10)-273;
  Serial.print("Temperature =");
  Serial.println(temperature);
  delay(2000);
}

Önemli noktalar;

  • LM335 sıcaklık sensörü her 10 mV'ta 1 kelvin ölçmektedir.
  • Arduino analog pinden aldığı değerleri 10 bit'lik verilere dönüştürmektedir.

     Arkadaşlar buradaki uygulamada Arduino ile LM335 sıcaklık sensörü kullanarak sıcaklık hesabı yaparak Arduinonun serial monitör kısmında sıcaklık değerlerlerini görüntüleyeceğiz. Burada ilk olarak bilmemiz gereken LM335 sıcaklık sensörünün her 10 mV' ta 1 kelvin değer ölçmesidir. Sıcaklık değerini celcius'ta bulabilmek için ilk olarak Arduino'nun analog pininden okuduğu 10 bitlik verileri voltage değerlerine dönüştürmek sonra kelvine ve daha sonrada celcius'a çevireceğiz.

    Programın ilk başında Arduino'nun analog 0.bitine sıcaklık sensörünün signal ucunu bağlıyoruz ve yine programın ileri ki kısmında yapacağımız hesap için temperature isminde bir float tipinde değişken tanımlıyoruz. Değişkenin float olmasının sebebi birazdan arduino'dan alacağımız değerler tam integer değerler olmadığı için ileride hesaplamada problem çıkmaması açısından float olarak tanımladık. Void setup kısmından serial moniörde görüntüleyeceğimiz sıcaklık değerlerinin baund rate oranını ayarlıyoruz yani verilerin ekrana gönderilme hızı. Programın önemli yeri  void loop döngüsü içerisinde ise ilk olarak analogRead komutuyla Arduinomuzun 0.bitini okuyup temperature isimli değişkenimizin içine atıyoruz sonraki adımda ise 10 bitlik verinin sıcaklığa dönüştürülme kısmı var buradaki mantık birazdan anlayacağınız üzere çok kolaydır. Arduino sensörden alabileceği max. voltage 5V'tur yani 10 bitlik veri olarak düşünürsek 1023'tür ve öncelikle 10 bitlik veriyi voltage'a dönüştürcez.

5 V----ise-->>1023
x V--------->>Sensör değeri

yani sensör üzerindeki 
voltage =  (5*Sensör değeri)/1023  sonrada bu değeri 1000 ile çarparsak sonraki adım daha kolay olur hesabı mV üzerinden yapacağımız için.

voltage = (5000*Sensör değeri)/1023 şu anda sensörümüz tarafından okunan değeri mV olarak bulmuş olduk.Sonrada yine basit bir orantı kuracağız.

sensör her 10 mV------>>1 kelvin
                 voltage------>>kaç kelvin
buradan biraz önce mV olarak bulduğumuz voltage'ı kelvie dönüştürmüş olduk son olarak -273 yaptığımızda sıcaklık'ı celcius'a çevirmiş oluyoruz..Denklemi toparladığımızda (temperature/1023)*5000)/10)-273) bu denklemi elde ediyoruz

Image Hosted by ImageShack.us

Benzer Diğer Uygulamalar


  • LM35+LCD Shield+Arduino Sıcaklık Ölçme
  • Arduino UNO R3- TMP36 Sıcaklık Sensöru İle Sıcaklık Ölçümü





  • Tarafından Yayınlandı >> Hamza Öztaş

    Hamza Öztaş'ı google plus'ta takip etmek için Google'a tıklayın;
    Google+.

    2
    replies
    1. merhebalar bazı yerlerde 5 i 1024 e bölmüşler mesela burda(en altta) https://gelecegiyazanlar.turkcell.com.tr/konu/arduino/egitim/arduino-201/analog-sinyal-okuma normalde 5v 1023 e mi karşılık gelir hep?

      YanıtlaSil
    2. adc 10 bit olduğu için 1023 tür, 12, 16 yada daha fazla olduğunda haliyle 1023 değeri değişecektir, 5v analog okuma pinlerindeki max. voltaj değeridir. Bu vb kartlarda genellikle voltaj değeri aynıdır.

      YanıtlaSil

    Get Updates in your Email
    Complete the form below, and we'll send you our best of articles.

    İletişim

    © >> |
    TOP