Jag föreslår ett enkelt protokoll som är lättimplementerat i egenbyggda sändare. Jag har två förslag. Dessa behöver någon form av preamble, protokollidentifiering och så klart en lättgenererad checksumma. Jag föreslår klockning med pulsbredder på minst ex. 100ns, så även långsammare microcontrollers kan skicka data.
Fixpunktstal
Code: Select all
16 bitar: sensorID
3 bitar : fixpunktposition
1 bit : tecken (1 = negativt tal)
20 bitar: värde
På så vis har man överföring av 0 -- 1048576, delat med 10^(0 -- 8), och även negering av talen.
Exempelvis:
Code: Select all
position = 0x3
tecken = 0 (= positivt)
Värde = 0x2F5D (= 12125)
och vips har man överföring av temperatur med 3 decimaler (i exemplet: 12,125) .
Rådata
Denna data lagras som rådatavärde och kan sedan behandlas av programmen på datorn. Fler bitar kan uppnås genom att man använder sig av flera sensorID:n eller att rpotokollet har stöd för mer data.
Det var mina $0.02
(Edit: snyggade till lite i "kod"-snuttarna)