Arduino leonardo serial port sorunu! [ÇÖZÜLDÜ]

Öncelikle merhaba arkadaşlar, Arduino yeni kullanmaya başladım ve başlangıç olarak leonardo aldım.Yanlız 3 saattir kafayı yediğim bir konu var ve çözemedim. ! void setup(){ Serial.begin(9600); while(!Serial); } int i; int kare; void loop(){ for(i=1;i<11;i++){ kare=pow(i,2); Serial.print(i); Serial.print(“.sayinin karesi”); Serial.println(kare); } while(1); } yazınca hata olmuyor,arduinoya atıyor fakat serial monitor’de hiç birşey göstermiyor. while(1); olmadan yazınca sonsuz döngüye giriyor ve serial monitorde yazdırmak istediğim komutlar durmadan yazılıyor. Benim istediğim bu komutları durdurmak fakat başaramadım.Yardımlarınız için şimdiden teşekkürler.

while(1); } komutunu kaldırdığın zaman işlemin void loop() içinde olduğu için devamlı baştan başlar devam eder. while(1); komutu kendi içine döngü yapar loop() rutinin ilerlemesini durdurur. kod doğru görünüyor başka bir problem var belkide, kodun arduinoya attığından eminmisin. yada for dongüsünü setup içine yaz diyecemde problem çözülmüş olmuyor sadece ertelemiş oluyoruz

valla herşeyi denedim diyebilirim. arduinoya attığıma eminim çünkü while(1)sız çalıştırdığım zaman çalışıyor,while 'ı yazınca yinekod gidiyor hata vermiyor ama serial monitorde hiçbirşey gözükmüyor tertemiz bir sayfa bildiğin. internetten bakayım dedim uğraştım 1-2 saat yok yabancı sitelerde böyle bir sorun ama leonardonun serial iletişiminde unodan farklı birşeyler varmış.

Leonardo ile UNO nun seri iletişimi farklı.UNO da kod çalışıyor. Kodda bir hata yok fakat birde şu şekilde deneyebilirmisin? Serial yerine Serial1 yaz.

Onu da denemiştim önceden bu sefer hiç çalışmadı.Benim forumlardan okuduğum kadarıyla; serial usb için, serial1 tx/rx için.

Çözümü açıklıyorum belki başka arkadaşların başına gelebilir,benim gibi kafayı yemesinler :smiley: Programı başlattığımızda iletişime geçildikten sonra haliyle döngüler çalışmaya başlıyor.Tabi bu süreler (hele üstteki program için) bizim farkedemeyeceğimiz saniyeler.Ben programı çalıştırınca serial motinor’u açana kadar iş işten geçmiş oluyor yani while(1) döngüsüne giriyor ve ben beyaz ekranı görüyorum. Eğer programı böyle yaparsak; void loop(){ delay(3000); for(i=1;i<11;i++){
kare=pow(i,2); yani gecikme eklersek ben 3 sn içinde monitore erişebildiğimden karşıma döngü geliyor ve while(1) ile kesiliyor.Sonrasında monitoru açıp kaparsam sadece while(1) olacağından yine beyaz ekran almış oluyorum.Boşuna suçu leonardoya kitledim yine :smiley: kolay gelsin arkadaşlar :slight_smile:

Merhabalar, Ben de Arduino Leonardo ile çalışmaya başladım. Maalesef serial monitorü kullanmak için denemelerim sonuçsuz kaldı. Ayrıca arduinonun kendi sitesinde şöyle bir paragraf var. Unlike the Arduino Uno, the Leonardo and Micro won’t restart your sketch when you open a serial port on the computer. That means you won’t see serial data that’s already been sent to the computer by the board, including, for example, most data sent in the setup() function. This change means that if you’re using any Serial print(), println() or write() statments in your setup, they won’t show up when you open the serial monitor. To work around this, you can check to see if the serial port is open after calling Serial.begin() like so: Serial.begin(9600); // while the serial stream is not open, do nothing: while (!Serial) ; Türkçesi: Arduino Uno nun aksine leonardo ve Micro nun seri port açıldığında sketchi resetlemez. bu da demektir ki boarddan bilgisayara gönderilenseri datayı göremeyeceksiniz.örneğin setup fonksiyonundaki gibi eğer serial print(),println() ve write() gibi fonksiyonları setup içinde kullanıyorsanız, serial monitörü açtığınızda gözükmeyecektir. Buna geçici bir çözüm bulmak için Serial.begin() fonksiyonundan sonra while(!serial); komutu ile seri portun açık olup olmadığını kontrol edebilirsiniz diyor.. Ben aşağıdaki kodu çalıştıramadım.Yorumlarınızı bekliyorum. void setup() { Serial.begin(9600); while (! Serial); } void loop() { Serial.println(“Deneme”); delay(1000); }

Sorun çözüldü deniyor ama maalesef hala cevap yazan yok…:frowning:

delay(3000); kısmını deyebildin mi? yukarıda bu probleme böyle bir çözüm getirilmiş, ardından while (! Serial); kısmını test edersin.

Merhaba arkadaşlar, Bende yeni arduino micro aldım fakat aynı serial sorununu yaşıyorum, bir süredir uğraşıyorum ve çözemedim. Bilgisayardan arduino’ya veri gönderdiğimde gidiyor ona göre işlem yapabiliyor, fakat arduino’dan bilgisayara veri gelmiyor. Bu konuda çalışmış bu olayı çözmüş bir arkadaş varsa lütfen açıklaya bilir mi ? Şöyle basit bir program yazdım denemek için, led yanıp sönüyor fakat serial monitörden bir şey gözükmüyor ? int ledPin=4; void setup() { pinMode(ledPin, OUTPUT); delay(1000); Serial.begin(9600); while(!Serial.available()) Serial.println(“Hello?”); } void loop() { while(!Serial.available()); // Wait till something’s pressed char inKey = Serial.read(); if (inKey == ‘a’){ digitalWrite(ledPin, HIGH); Serial.write(“veri alindi..”);} else digitalWrite(ledPin, LOW); }