Şimdi Ara

LM35 Kafasına Göre Sıcaklık Verme Sorunu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
1.889
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arduino R3 üstünde gayet basit bir devre kurdum, 5V, GND ve Analog In kısmına 3 bacağı doğru şekilde yerleştirdim daha sonra Serial modulü ile basit bir sıcaklık okuması yapmaya çalışıyorum ancak çok kararsız değerler veriyor. Basit bir çıktı koyuyorum:


    20:29:31.986 -> 18.57

    20:29:32.189 -> 18.57

    20:29:32.393 -> 19.06

    20:29:32.599 -> 19.06

    20:29:32.804 -> 19.55

    20:29:33.011 -> 20.04

    20:29:33.181 -> 21.02

    20:29:33.386 -> 21.51

    20:29:33.592 -> 22.48

    20:29:33.799 -> 22.97

    20:29:33.999 -> 23.95

    20:29:34.201 -> 24.93

    20:29:34.402 -> 24.93


    Acaba direnç eklemem gereken bir yer mi var, sensör açıklama kısmında belirtmemiş ancak olabilir belki.

    Şu Kod kısmı:

    #define lm35pin A0

    #define m_led 8

    #define r_led 7

    #define buzzer 3


    int time= 100;

    int val = 0;

    float temp_volt = 0.0;

    float temp = 0;


    void setup() { 

       

       pinMode(m_led, OUTPUT);

       pinMode(r_led, OUTPUT);

       pinMode(buzzer, OUTPUT);

       Serial.begin(9600);

    }


    void loop() {

     val = analogRead(lm35pin);

     temp_volt = (5000.0 / 1023.0)* val;

     temp = temp_volt / 10;

     Serial.println(temp);

     delay(200);

     if(temp >= 30){

      digitalWrite(r_led, HIGH);

      digitalWrite(buzzer, HIGH);

      delay(time);

      digitalWrite(r_led, LOW);

      digitalWrite(buzzer, LOW);

      delay(time);

     }

     else{

      digitalWrite(r_led, LOW);

      digitalWrite(buzzer, LOW); 

     }


    }








  • https://maker.robotistan.com/arduino-ile-lm35-sicaklik-sensoru-kullanimi//

    bu linke bir göz atın


    Edit: sanırım sizde buraya bakarak yaptınız. Led buzzer vs olmadan bir deneyin isterseniz.

    ayırca ilk gözüme çarpan

    int time= 100;

    kısmını int zaman yada int timee olarak değiştirebilirsiniz. time yazıldığı zaman turuncuya dönüyor o yüzden.


    aşağıdaki kodu bir deneyin en azından lm35in doğru çalışıp çalışmadğını anlarsınız


    #define lm35pin A0

    int val = 0;

    float temp_volt = 0.0;

    float temp = 0;


    void setup() {

     Serial.begin(9600);

    }

    void loop() {

     val = analogRead(lm35pin);

     temp_volt = (5000.0 / 1023.0) * val;

     temp = temp_volt / 10;

     Serial.println(temp);

     delay(200);

    }




    < Bu mesaj bu kişi tarafından değiştirildi saasc -- 27 Aralık 2020; 1:54:53 >




  • 1) Lm35'e direnç ekleyemezsiniz, orda onun adc'den gerilimi ölçüyoruz ve direnç gerilimi bozar buda değerlerin daha sapıtlamasına yol açar. Bağlantıda bi sıkıntı yok.

    2) Niye diyotlarla uğraşıyorsunuz ki ? Piyasa çok ucuza bulanabilen dht11 sensörü alternatifini denemenizi öneririm.

    3) Basit çıktıda ben sorun bulamadım. Odanızın 18 derece olmadığını varsayarsak aslında burda diyotun sıcaklığı git gide normal değerine yaklaşmış. Sistemi çalıştırdıktan sonra bi 3 5 dk bekleyip tekrar sonuçları kontrol edin.

    4) Yinede kod kısmında hata olabilir mi acaba diye düşündüm.


    temp_volt = (5000.0 / 1023.0)* val;

    temp = temp_volt / 10;


    kısımını;


    temp_volt = (val/1024.0)*5000;

    temp = temp_volt/10;


    ile değiştirip bi deneyebilir misiniz.

  • ölçme başlı başına bir bilimdir. pekçok etken, ölçme sonucunu etkileyebilir. mesela bir ışık bariyeri yapmaya çalışırsın ama, ortam ışığı yüzünden, istediğin sonucu elde edemezsin. sadece bağlantıyı yapmak, sensörleri kullanmak için yeterli değildir. burada ortam sıcaklığını ölçmeye çalışıyorsan, lm35'i konumlandırdığı yerden odadak, nem oranı vesıcaklık kaynaklarına kadar bir çok parametre, sonuçları etkileyebilir. tabi odadaki sıcaklık dağılımının stabil ve homojen olmama gibi etkenleri de işe katmalısın.

  • saasc S kullanıcısına yanıt

    Tamamdır deneyip editlerim. Teşekkürler

  • dergul D kullanıcısına yanıt

    Hocam biliyorum, aslında ben doğruluğundan ziyade 1 saniye içindeki büyük değişimler için açmıştım. Teşekkür ederim ayrıca cevap için

  • oKsyqeN kullanıcısına yanıt

    1- O zamanlar baya yeniydim de biraz görerek yapıyorum şimdi anlıyorum ne demek istediğinizi, teşekkürler.

    2- DHT11'e geçtim şu an zaten

    3- Evet bunu daha sonra ben de okudum forumlarda, ilk birkaç dakikadan sonra galiba gerçek değere yaklaşıyor.

    4- Deneyip editlerim hocam. Teşekkürler cevabınız için.

  • Merhaba. Size tavsiyem ölçümleri bir for döngüsü içinde yapıp ortalama hesaplamanız. Bu şekilde dalgalanmayı bir miktar alabilirsiniz. Diğer bir yöntem ise sensörün dönüş uçlarına küçük kapasiteli paralel bir kondansatör bağlamanız. Ancak en önemli nokta tabi ki sensörün stabilitesidir.

  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.