質問: [b] とアルディーノへ送信する write(i2csensor,b,'int8') を記述しており,プログラムを起動すると,プロンプトではマイナスの値も表示 されるのですが,arduinoでは以下の様に右へ傾きを大きくすると1~127, 左へ傾きを大きくすると225~128の値が表示され,マイナスが表示されません. 左傾き大128 ~ 左傾き小255 中央0 右傾き小1 右傾き大127 解決方法をご存知の方がらっしゃいましたら,ご教示いただけないでしょうか. どうぞよろしくお願いいたします.
回答: ジョイスティックの値がマイナス表示されない件ですが、デバイス(送信)側が2の補数表現、arduino(受信)側がストレートバイナリ表現を使用しているためと考えられます。 デバイス側の設定で数値表現の方法を変更できれば良いですが、そうでなければ受け取った側で処理をするしかありません。 値が128以上(8bitにおける符号bitが1)となった際に、受信した結果から256を減算して使ってみてください。