Arduino LM35 Sıcaklık Sensörü Ölçüm Hatası

Kodla Büyü

pointer

Aktif Üye
Mesajlar
171
merhaba arkadaşlar,

arduino ile sıcaklık ölçmek istiyorum bunun için devremi tinkercad üzerinde kurdum ve çalıştırdım sorunsuz bir şekilde çalıştı. daha sonra kodları arduino içerisine aktarınca şöyle bir sorunla karşılaşıyorum.

öncelikle ölçtüğü değer sürekli değişiyor yani ekranda 12.8 Derece, 20.7 Derece 35.3 Derece gibi sürekli değerler değişiyor yakın bile değiller birbirlerine.

ikinci olarak tinkercad üzerinde kullandığım formül ile sorunsuz çalışırken aynı formülü arduinoya aktarınca derece -(eksi) olarak gösteriyor tabi yine sürekli değişerek.

kullandığım kodlar: Bu kod ile dereceyi -(eksi) gösteriyor

#include<LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
float sicaklik_degeri;
int LM35 = A0;
void setup(){
lcd.begin(16, 2);
pinMode(LM35,INPUT);
lcd.print("Sicaklik:");
}
void loop(){
sicaklik_degeri = (analogRead(LM35))*0.004882814;
sicaklik_degeri = (sicaklik_degeri - 0.5) * 100.0;
lcd.setCursor(0,1);
lcd.print(sicaklik_degeri);
lcd.print(" C");
delay(1000);
}


Aşağıdaki kodda ise -(eksi) gösterme sorunu halloluyor ama sürekli değişmesi devam ediyor

#include<LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
float sicaklik, gerilim;
int LM35 = A0;
void setup(){
lcd.begin(16, 2);
pinMode(LM35,INPUT);
lcd.print("Sicaklik:");
}
void loop(){

gerilim=analogRead(LM35);
gerilim=(gerilim/1023)*5000;
sicaklik=gerilim/10.0;

lcd.setCursor(0,1);
lcd.print(sicaklik);
lcd.print(" C");
delay(1000);
}
 
Aşağıdaki kod ile seri monitor çıktısına bakabilir miyiz?

-----------------------
int gelenDeger;
int gelenVoltaj;
float sicaklik;

void setup() {
pinMode(A1, INPUT);
Serial.begin(9600);
}

void loop() {
gelenDeger = analogRead(A1); //0-1023 arası değer gelecek
gelenVoltaj = (gelenDeger/1023.0)*5*1000; //V->mV
sicaklik = gelenVoltaj/10.0; // 10mV->1 derece

Serial.print(gelenDeger);
Serial.print("-");
Serial.print(gelenVoltaj);
Serial.print("-");
Serial.println(sicaklik);

delay(750);
}
 
Geri
Üst