Soru & Cevap

ARDUİNO

01.05.2019 - 08:56

Merhaba;

Çok uğraşmama rağmen bir türlü yapamıyorum.İki sensöre ait kodları birleştirmem gerekiyor;

1-)

int calistir = 8;

 

void setup() {

  pinMode(calistir, OUTPUT);

 }

 

void loop() {

  int sensor = analogRead(A0);

  if (sensor > 50) {

    digitalWrite(calistir, HIGH);

  } else {

    digitalWrite(calistir, LOW);

  }

}

 

2-)

// röle ve lm35 in pinleri belirlendi

int role1=7;      

int lm35=A0;

int role2=6;

 

void setup() {

 

  Serial.begin(9600);    //seri haberleşme başlatıldı

  analogReference(INTERNAL);    //arduino 1,1V referansa ayarlandı

  pinMode(role1,OUTPUT);       //röle çıkış olarak tanımlandı

  pinMode(role2,OUTPUT);       //röle çıkış olarak tanımlandı

}

 

void loop() {

  int okunanDeger = analogRead(A1);          //analog deger okundu ve okunanDeger değişkenine atandı

  float derece = okunanDeger / 9.31;         //derece hesaplandı

  Serial.println(derece);                    //derece ekrana yazdırıldı

  delay(1000);

 

  if(derece >120)

    digitalWrite(role1,HIGH);                 //röleye güç verildi

    else

    digitalWrite(role1,LOW);                  //röle kapatıldı

  if(derece <120)

    digitalWrite(role2,HIGH);                //röleye güç verildi

    else

    digitalWrite(role2,LOW);                //röle kapatıldı

}

Yardımcı olursanız çok sevinirim.

18 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-87289-1569234090.png
yakupgovler
28.09.2019 - 11:22


// röle ve lm35 in pinleri belirlendi

int role1=7;      

int lm35=A0;

int role2=6;

int calistir = 8; 

void setup() {

 

  Serial.begin(9600);    //seri haberleşme başlatıldı

  analogReference(INTERNAL);    //arduino 1,1V referansa ayarlandı

  pinMode(role1,OUTPUT);       //röle çıkış olarak tanımlandı

  pinMode(role2,OUTPUT);       //röle çıkış olarak tanımlandı

  pinMode(calistir, OUTPUT);
}

 

void loop() {

  int sensor = analogRead(A0);

  if (sensor > 50) {

    digitalWrite(calistir, HIGH);

  } else {

    digitalWrite(calistir, LOW);

  }

  int okunanDeger = analogRead(A1);          //analog deger okundu ve okunanDeger değişkenine atandı

  float derece = okunanDeger / 9.31;         //derece hesaplandı

  Serial.println(derece);                    //derece ekrana yazdırıldı

  delay(1000);

 

  if(derece >120)

    digitalWrite(role1,HIGH);                 //röleye güç verildi

    else

    digitalWrite(role1,LOW);                  //röle kapatıldı

  if(derece <120)

    digitalWrite(role2,HIGH);                //röleye güç verildi

    else

    digitalWrite(role2,LOW);                //röle kapatıldı

}

Kodlarınızı bu şekilde birleştirebilirsiniz. calistir değişkeni yerine role3 yapabilsiniz.

Profile picture for user tunaftlmk
tunaftlmk
22.09.2019 - 03:19

Merhaba iyi günler kodunuzdaki lopp() döngüsündeki kodları aynı yere kopyalayınız ve setup() içindekileride aynı şekilde yaparsınız kodunuzda sıkıntı gözükmüyor.Sadece ifadeleri biraz da düzenli kullanırsanız aklınız karışmaz ve daha net anlaşılır.

picture-158072-1530701953.jpg
TGUNEYSU
01.05.2019 - 10:27

Mrb.

Neden Analog referansı değiştiriyorsunuz? LM35 5V la çalışır ve temp = ((5.0 * analogRead(TemperaturePin)) / 1024) * 100.0 formülü ile size C olarak ısıyı verir.

"int lm35=A0;" satırı ile ısı sensörü A0 pinine atamışsınız, fakat "int okunanDeger = analogRead(A1); " ile başka bir pin okuyorsunuz !!!

Gerisi için SETUP() içine bütün setup kodarını ve LOOP() içine de bütün loop kodları birleştiriseniz başka yapacak bir şey yok.

Tabi ki eğer size göre özel bir ilişki ile çalışmalarını istiyorsanız, o zaman daha detaylı anlatmanız gerekir.

İyi çalışmalar.

 

bugraozkan1993
03.05.2019 - 11:17
Işte sicaklik sensoru ölçüm yapip bir sınır değerine göre fanları yada ısıtıcı çalıştıracak nem sensörü de aynı anda toprak nemini ölçüp sınır değeri altında kalırsa sulama başlatacak ve iki sensorde surekli olcum halinde olucak