. Alınan şamandıra değerlerini yazdırırken seri monitörde sadece ilk iki rakamı görebilirim.başka bir Arduino float değerleri gönderemez: Ben başka bir Arduino üç float değerleri göndermek ve almak Arduino bir dizide bu float değerleri saklamak istediğiniz bir proje yapıyorum
ben acemiyim ve bütün kayan noktalı değerler nasıl bilmiyorum. Lütfen program ile bana yardımcı olun. Burada verici ve alıcı kodunu yayınladım. Verici Kod: önceden
float transmit[3]={72.453444,83.345678,60}; //Values to be sent
void setup()
{
Serial.begin(115200);
int i;
for(i=0;i<3;i++)
{
Serial.write(transmit[i]);
}
}
void loop()
{
}
Receiver’s Code:
float received[3]; //create an float array
int i;
void setup()
{
Serial.begin(115200);
}
void loop()
{
while(Serial.available()>0)
{
for(i=0;i<=2;i++)
{
received[i]=(Serial.read());
delay(10);
}
Serial.println(received[0]);
Serial.println(received[1]);
Serial.println(received[2]);
}
}
Values received on Serial Monitor: 72 83 60
teşekkürler.
Teşekkür kullanılan otomatik döküm kullanarak iletişim imkansız hale beri açık bir şekilde, bir numara dönüştürmek için İHTİYACINIZ olacak arabirim vasıtasıyla bağlantı kurarken .. Ancak, hem gönderme hem de alma işleminde hata alıyorum. İletim programında, hatayı "Donanım seri :: yazma (float [3], imzasız int") için eşleştirme fonksiyonu yok. – Krish
Alıcının programında hatayı "başlatılamıyor", "uint8_t *" değerini başlangıçta "değiştiremez" olarak aldım. – Krish
@Krish Ok, belki de dolaylı yayınlamayı sevmez. (Ben kodu düzeltilmiş beri cevaba bakınız, siz iki satır değiştirmek zorunda - göndericinin bir tane ve alıcı bir tane) explicitely 'uint8_t *' işaret eden döküm deneyin Bu kod bana yardımcı olabilir – frarugi87