Ich erstelle einen Temperaturknoten (Celsius) für meinen Arduino. Ich sende Byte-Daten von meinem Knoten an den Master-Knoten (auch Arduino läuft) durch billige RF-Links, so dass ich eine Temperatur (float) in ein Byte konvertieren muss, dass Im über die Luft sendet.Wie kann ich ein int in ein Byte umwandeln?
Ich weiß, dass mit einem einfachen Byte bin ich durch 255 Werte eines Bytes begrenzt, aber wenn ich die Genauigkeit auf 0,5 einstellen, wird das mehr als gut genug für das Wetter, das wir haben. Also habe ich den Bereich auf [-30, 97]
Wenn das gesetzt 0 Grad Celsius = Byte-Wert 60.
float ConvertFromByte(byte b)
{
// todo
}
byte ConvertFromFloat(float f)
{
// todo
}
Im ConvertFromFloat werde ich zur nächsten Runde müssen bis 0,5 und wenden Sie dann die Konvertierungsmethode an. ConvertFromByte muss nur bis zum letzten Bit, aber umgekehrt.
Wie kann ich das erreichen?
Klingt, als ob Sie ein grundlegendes Übertragungsprotokoll benötigen. Größe, Daten, Prüfsumme. – Lundin