Çözüldü3.47K görüntülenmeLorae32 433T20D lora e32 433t30d
0

Merhabalar kütüphanesiz haberleşmede byte olarak sadece int veri mi gönderilebiliyor? Deneme olarak 1.23 verisini göndermeye çalıştığımda 1.0 verisi olarak aldım bu konuda yardımcı olabilir misiniz? byte türünden float a çevirdiğim denemede de aynı sorunla karşılaştım.

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

send

#include <SoftwareSerial.h>
SoftwareSerial FixSerial(10, 11);
 byte i = 0;
 #define M0 7
#define M1 6
 void setup() {
  Serial.begin(115200);
   pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
  digitalWrite(M0, LOW);
  digitalWrite(M1, LOW);
   FixSerial.begin(9600);
}
 void loop() { 
  FixSerial.write((byte)0x00); //Alıcı Adresi HIGH
  FixSerial.write(3);       //Alıcı Adresi LOW
  FixSerial.write(18);       //Alıcı Kanalı =0x17=23    (410M+23=433 MHz)
   FixSerial.println(String(5.698, 3));
  delay(500);
}

receive

#include <SoftwareSerial.h>
 SoftwareSerial FixSerial(10, 11);
char rc;
 #define M0 6
#define M1 7
  void setup() {
  Serial.begin(115200);
  pinMode(M0, OUTPUT);
  pinMode(M1, OUTPUT);
  digitalWrite(M0, LOW);
  digitalWrite(M1, LOW);
  FixSerial.begin(9600);
}
 void loop() {
  while (FixSerial.available()) {
    rc = FixSerial.read();
    Serial.print(rc);
  }
}

bu çalışır ama performans düşünürsen float u önce int e çevir misal 5.698 = 5.698×1000 sonra alıca onu tekrar dönüştür veya serial konusunda tecrüben fazla yoksa kütüphane kullan örnek kodlar sayfasında transreceiver alıcı verici uygulamasına göz atabilirsin

Mehmet Cevaplanan soru Şubat 15, 2022
6 cevaptan 1'ini inceliyorsun, tüm cevapları görmek için buraya tıklayın.