AndroidとATtiny84 [1mhz]のエンコーディングエラーがあります。私がATtiny84を介して浮動小数点値を送るたびに、浮動小数点値はAndroidで変わった値に変わりました。Attiny84とAndroidがbleと通信するときの奇妙な値
私が使用するAndroidコードは、Google Playstoreでble chatアプリケーションです。
BluetoothモジュールはJDY-10でATtiny84に接続されています。 また、1つのアナログセンサーがATtiny84に接続されています。
私はアナログセンサーデータをbleを使ってAndroidにfloatとして送信しようとしています。
JDY-10とAndroidの接続はかなりうまいです。
私はATtiny84ではなくUnoとしてテストしました。それは他の文字の値を含むエンコーディングの問題がありません。
エンコードの問題を解決するにはどうすればよいですか?
奇妙な値でデータを送信したい場合は、マンチェスターライブラリを使用する必要がありますか?
以下は私のコードです。
ATtiny84
#include <SoftwareSerial.h> //Software Serial Port
const int FSR_PIN = A2;
const float VCC = 3.3;
const float R_DIV = 100.0;
SoftwareSerial blueToothSerial(7,8);
void setup(){
Serial.begin(9600);
pinMode(FSR_PIN, INPUT);
blueToothSerial.begin(115200);
delay(2000);
}
void loop(){
int fsrADC = analogRead(FSR_PIN);
if (fsrADC != 0){
float fsrV = fsrADC * VCC/1023.0;
float fsrR = R_DIV * (VCC/fsrV - 1.0);
float force;
float fsrG = 1.0/fsrR;
if (fsrR <= 600)
force = (fsrG - 0.00075)/0.00000032639;
else
force = fsrG/0.000000642857;
blueToothSerial.println(String(force));
blueToothSerial.println();
Serial.println("Force: " + String(force) + " g");
Serial.println();
blueToothSerial.flush();
delay(500);
}
}