Arduino uno ESP8266 UART Sorunu

Başlatan serter, 23 Haziran 2018, 13:29:06

serter

İyi Günler arkadaşlar. ESP8266 ile arduino unoyu UART üzerinden haberleştirmek istiyorum. Küçük bir yazılım yazdım. ESP8266 ya serialden basla komutu geldiğinde 2 saniyede bir integer tipinde değişken arttıracak ve bunu arduinoya gönderecek arduino da myserial üzerinden geleni serial'e yazacak.
Sorunum şu: Serialde yazdırdığım değerler çok sağlıklı görünmüyor. Ara sıra farklı değerler gözüküyor. Bu durum neden kaynaklanıyor olabilir? Ve nasıl çözebilirim?
Devrenin bağlantısı
ESP8266 modül şeklinde
arduino Uno modül şeklinde
ESP8266 RX  -> arduino p11
ESP8266 TX  -> arduino p10
ESP8266 GND -> arduino GND
        Serial çıktısı
ESP-> Arduino  arduino serial çıktısı
    1              1
    2              2
    3              3
    4              4
    5              5

    6              5
    7              7
    8              8
    9              9

    10            9
    11            11
    12            12
    13            13

    14            41
    15            15
    16            16

    17            17
    18            81
    19            91
    20            20

// ESP8266 üzerindeki kod
#include <ESP8266WiFi.h>
int a;
String s;
int b;
void setup() {
  Serial.begin(115200);

}

void loop() {
  if(Serial.available()){
    s=Serial.readStringUntil('\r');
  }
  if(s=="basla"){
    a++;
    Serial.print(a);
    delay(2000);
  }  
}

// Arduino Uno üzerindeki kod
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX on Arduino
int a=0;
void setup() {
  Serial.begin(115200);
  mySerial.begin(115200);

}

void loop() {
  if(a==0){
    mySerial.print("basla");
    a=1;
  }
  if(mySerial.available()){
    Serial.println(mySerial.readStringUntil('\r'));
  }

}

serter

Baud hızını 57600'e Düşürdüm sorun çözüldü arkadaşlar. Hız arttıkça Uart'ın verimi de düşüyor modüller her ne kadar desteklesede.

94onur94

Byte olarak okuyup, stringe yüklemen daha stabil olur. readStringUntil komutunda benzer hatalar ile karşılaşmıştım.

serter

57600 hızında sıkıntısız 2.5 saat çalıştı sonra kapattım. Ama dediğini 115200 baud hızında denerim.

Kabil ATICI

Yazılımsal Serial port yerine donanımsal Serial port kullanın.

Kullandığınız illede  UNO olması gerekmiyorsa , Mega kullanın. 4 tane seri port var...
ambar7