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:
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;
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;
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.
ö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.
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.
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);
}
}
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.