ich stehe vor dem Problem, dass ich mit den 433MHz Modulen von meinem Nano etwas an den Uno schicken möchte und dies auf dem 2.8'' TFT LCD Shiel darstellen möchte. Die Übertragung funktioniert reibungslos, jedoch möchte ich statt Buchstaben eine Dezimalzahl, also den Datentyp float, versenden. Jedoch bekomme ich die Umwandlung, bzw. die Anzeige des Zahlenwertes nicht hin. Es wird immer diese Form von der Funktion gefordert: vw_send(uint8_t*, uint8_t). Die Einzige Ausgabemöglichkeit, die bisher funktioniert hat ist die Folgende:
Deinen Sketch habe ich mir noch nicht genau angesehen, konnte aber erkennen, das dieser so nicht funktioniert.
Du musst die Datenrate auf 2000 setzen, da die verwendete Library nur auf max. 2000 lt. Datenblatt festgelegt ist.
Edit:
Einen float-Wert kannst du mittels dieser Library nicht übertragen. Du musst den Wert als Ganzzahl übertragen und anschließend wieder teilen.
Alles klar, wie kann ich das denn genau umsetzten? Habe schon einiges probiert aber nichts klappt..
Wenn ich den Empfänger folgendermaßen ändere bekomme ich die Dezimalzahl, welche als char gespeichert ist ausgegeben.
for (i=0; i< textlaenge; i++){
tft.setCursor(x, 100);
x = x+28;
tft.println((char)text[i]);
Serial.print((char)text[i]);
}
Jedoch möchte ich einen Messwert, welcher vom Typ float ist, versenden. Dazu würde ich den float am liebsten einfach in einen string umwandeln und wie gehabt versenden. Alle Möglichkeiten (schon den Überblick verloren) haben jedoch nicht funktioniert, vielleicht kann mir jemand die Richtung weisen
Jetzt kannst du im Programm z.B. FTB.f=23.455 belegen und in FTB.b[0] bis FTB[3]
deine 4 Bytes raus kramen und übertragen. Am Empfänger genau anders herum.
Du schreibst mit die FTB.b[0..3] deine Empfangenen bytes und liest mit FTB.f
die zusammengesetzte float aus.
Gruß
DerDani
Ich habe nun alles Mögliche getestet und herausgefunden, dass der HX711 nicht parallel mit dem Sender arbeiten kann. Gibt es eine Möglichkeit sie Zeitversetzt an und auszuschalten? Ein Interrupt würde nicht funktionieren, da er keine Variable übergeben kann. Andere Varianten habe ich bisher nicht gefunden
jorkan:
Ich habe nun alles Mögliche getestet und herausgefunden, dass der HX711 nicht parallel mit dem Sender arbeiten kann. Gibt es eine Möglichkeit sie Zeitversetzt an und auszuschalten? Ein Interrupt würde nicht funktionieren, da er keine Variable übergeben kann. Andere Varianten habe ich bisher nicht gefunden
Nein keine Fehlermeldung, aber sobald ich die Anweisung zum Start des Senders ausführen lasse gibt der Verstärker keinen Wert mehr aus, beziehungsweise 0.0000
Der Code des Senders funktioniert ohne den Verstärker tadellos