Çözüldü Arduino'nun serial monitördeki veriyi sonsuza kadar yazması nasıl engellenir?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Emir2507

Decapat
Katılım
25 Nisan 2020
Mesajlar
66
Merhaba. Arduino'da Serial monitöre bir veri yazdırmaya çalıştığımda veriyi sonsuza kadar yazıyor. Örneğin;

int ldrr = A3; void setup() { Serial.begin(9600); } void loop() { int ldd = analogRead(ldrr); if (ldd>250){ Serial.println("Lamba açık"); Serial.print(ldd); } else{ Serial.println("Lamba kapalı"); Serial.print(ldd); } }

Yukarıdaki kodda ldr sensörün değeri 250 den büyükse Serial ekrana " Lamba açık " yazısı yazılıyor. değer 250 den büyük olduğu sürece sürekli " Lamba açık " yazmaya devam ediyor. Bu nasıl engellenir ? Sadece bir kez yazsın ve dursun. Yani Lamba açık ise bir kez Lamba açık yazacak Lamba kapalı ise bir kez Lamba kapalı yazacak. Bu nasıl yapılabilir ?
 
Son düzenleyen: Moderatör:
Çözüm
@Emir2507 if'leri sadeleştirebilirsin. Ben anlaşılsın diye şu şekilde yaptım.
[CODE lang="cpp" title="Kod"]bool state = false;
int ldrr = A3;

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

void loop()
{
int ldd = analogRead(ldrr);

if (ldd > 250)
{
if(state == false)
{
state = true;
Serial.println("Lamba acik");
Serial.println(ldd);
}
}

else
{
if(state == true)
{
state = false;
Serial.println("Lamba kapali");
Serial.println(ldd);
}
}
delay(10);
}[/CODE]
250 olduktan sonra döngü içinden çıkmasını sağlamanız gerekiyor. Orada sonsuz döngü var.
 
Son düzenleme:
Delay koyabilirsin. Bir kez ise de bir sayaç koyup o sayacı geçince durdurabilirsin ya da "break" deneyebilirsin ama olur mu emin değilim.
 
250 olduktan sonra döngü içinden çıkmasını sağlamanız gerekiyor. Orada sonsuz döngü var.

Kod:
exit(0)
Döngü içinden çıktığında kod yukarıdan aşağı dğru çalıştığı için 250 kontrolünü tekrar yapacak ve sağladığı için tekrar yazıyı yazacak yani bir işe yaramaz. Daha farklı bir teknik gerekli
 
Void loop() içerisine yazdığın kod sonsuza kadar çalışır çünkü. Bir yerde kodu kesmen lazım.

Void setup kısmına yazılırsa bir kez çaılışır. Loop kısmında farklı bir teknik gerekli diye düşünüyorum. Bunun kesin bir çözümü vardır ama nasıl?
 
Kodu loop içerisinden çıkarıp setup içerisine atabilirsiniz.
Setup kısmında bir kez çaılışır. Bu sistem aktif olarak 14 saat çalışmalı ve her bir değişimi yazmalı. açıktan kapalıya, kapalıdan açığa geçtiği kısımları yazmalı bunların sayısı önemli loopta aynı yazı sürekli yazılıyor. Bu gereksiz verilere neden oluyor. Loop kısmında başka bir yöntem olmalı
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…