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