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 />}
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.