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
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
