Çözüldü1.76K görüntülenmeLoraLoRa e22 Oled Adafruit_SSD1306 ekran
0

Merhaba.

E22 900T22D lora modülünü 3in1 PCP kartta Arduino nano ile kullanıyorum. Seri konsolda sorun yok. Her satırda;
Lora denemeleri
Lora denemeleri şeklinde satır atlatarak yazıyor.
Aşağıdaki kod içinde bulunan setup kısmında hiç bir sorun yok. Ancak void loop kısmında;
display.println(rc);  satırında ekrana gelen rc değişkeni değişimli olarak 1 harf şeklinde değişerek yansıyor.
Örnek veriyorum, diğer loradan gelen,

String veri =”Lora denemeleri”;   değişkeni ekrana, önce L harfi ardından o harfi sonra r harfi şeklinde devam ediyor. Tabi ekrana tek harf yansıdığı için gelen veri tam olarak geçsede birer harf şeklinde yansıdığından anlaşılmıyor.
Yardımcı olabilirmisiniz.

Teşekkürler

/// Oled<br />#include <Wire.h><br />#include <SPI.h><br />#include <Adafruit_SSD1306.h><br />#include<Fonts/FreeSans9pt7b.h><br />#define SCREEN_WIDTH 128 // OLED display width, in pixels<br />#define SCREEN_HEIGHT 64 // OLED display height, in pixels<br />#define OLED_RESET    0  // Reset pin for display (0 or -1 if no reset pin)<br />Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);<br />#include <Adafruit_GFX.h><br /> #include <SoftwareSerial.h><br />  SoftwareSerial FixSerial(10, 11);<br />char rc;<br /> #define M0 6<br />#define M1 7<br /> void setup() {<br />  Serial.begin(115200);<br />  pinMode(M0, OUTPUT);<br />  pinMode(M1, OUTPUT);<br />  digitalWrite(M0, LOW);<br />  digitalWrite(M1, LOW);<br />  FixSerial.begin(9600);<br />  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {<br />    Serial.println(F("SSD1306 allocation failed"));<br />    for(;;);<br />    }<br />    if (FixSerial.available() < 1) {<br />      display.clearDisplay();<br />      display.setFont(&FreeSans9pt7b);<br />      display.setTextSize(1);<br />      display.setTextColor(SSD1306_WHITE);<br />      display.setCursor(43, 12);<br />      display.println("G P S");<br />      display.setTextColor(WHITE);<br />      display.setCursor(28, 36);<br />      display.println("LoRa E22");<br />      display.setCursor(25, 55);<br />      display.println("E2EE Wan");<br />      display.display();<br />      delay(3000);<br />      /// Oled yazdır<br />    }<br />}<br /> void loop() {<br />  while (FixSerial.available()) {<br />    rc = FixSerial.read();<br />    Serial.print(rc);<br />    /// Oled yazdır<br />    display.clearDisplay();<br />    display.setFont(&FreeSans9pt7b);<br />    display.setTextSize(1);<br />    display.setTextColor(SSD1306_WHITE);<br />    display.setCursor(43, 12);<br />    display.println("G P S");<br />    display.println("");<br />    display.setTextSize(1.6);<br />    display.setTextColor(WHITE);<br />    display.println(rc);<br />    display.display();<br />  }<br />}

Soru yeni cevaplara kapalıdır.
Mehmet En iyi cevap olarak seçildi Haziran 5, 2022
0

hocam aydınlanma çağının en karanlık noktasındasın bir adım sonra aydınlanma başlayacak. kısa yoldan cevap vermek istemiyorum. şu yazıyı baştan sona okuyup anlar mısın

https://forum.arduino.cc/t/serial-input-basics-updated/382007/2

mümkünse lorasız da olsa önce bi serial haberleşmeyi iyice anla. Seri haberleşmede aklına takılabilecek sorulara cevap verecek seviyedeyim ama kendinizin öğrenmesi bence daha önemlidir. 1 hafta nı alır belki daha fazla ama bunu öğrenince artık yazılımda en önemli basamaklardan biri aşmış olacaksın.

Alpaslan Güler Cevabın seçimi kaldırıldı Mayıs 19, 2022
2 cevaptan 1'ini inceliyorsun, tüm cevapları görmek için buraya tıklayın.