Привет Всем! Помогите кто может пожалуйста,неполучается преобразовать данные с датчика в 'экспоненциальную форму' Плата Arduino Uno считываю с аналогового входа данные сдатчика через "Serial.println" Тип данных <Float>выводит 0,55 а мне нужно выводить в формате 5.5Е-1.
Cпасибо за отклик. Я раньше работал на Delphi и выводил вот так(ledPT1.Text:=FloatToStrF(power(10,ArrInfoPLC.valword/4096*10-5.5),ffExponent,2,1); На С++ неработал.Сейчас у меня получается вот такой скейтч: float datchik1; // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: float sensorValue = analogRead(A0) * 5 / 1023; datchik1 = pow(10, (sensorValue - 5.5)); // print out the value you read: Serial.print("\n datchik1="); Serial.println(datchik1); delay(1000); И не как не могу его переформатировать. Если Вам не трудно не смогли бы показать не большой пример. Спасибо!
Для плавающей точки sprintf не прокатит. Реализация ее для AVR такого просто не предусматривает. Наверное придется самостоятельно разбирать число на части и составлять из них строку. Как вариант, найти исходники полноценного printf и сделать из них свою функцию.