Преобразование float в строку в Udp.write() в esp8266

Я хочу преобразовать значение с плавающей запятой в строку для отправки Udp.Write() метод и получить другую сторону (esp) с помощью Udp.read() и Скопируйте одну переменную для использования..

пожалуйста помогите мне Спасибо за каждый ответ ^__^

код:

void loop () {
    int signal = analogRead (A0) ;
    float Adc = (signal * 3.3) / 4096 ;
    Udp.beginPacket ({192,168,4,1} , 1234) ;
    Udp.write ( " please help me fill this section ") ;
    Udp.endPacket () ;
}

у меня есть еще одна проблема. . .

и с другой стороны:

Я хочу взять значение Adc из esp1 и преобразовать char в float для Dac

(цифро-аналоговый преобразователь) с MCP4725 ..

** мне просто нужно ввести плавающее значение Adc в переменную для использования преобразования..**

код:

пустой цикл ( ) {

int noBytes = Udp.parsePacket();

String received_command = "";


if ( noBytes ) {

  Udp.read(packetBuffer,noBytes);

  for (int i=1;i<=noBytes;i++){

  received_command += char(packetBuffer[i - 1]);
} 

Serial.print("packaet receive: ");

Serial.println(received_command);


float Adc_value_received = float(received_command); //*helpppp, пожалуйста, конвертируйте char-to-float*

}

спасибо от всех ^__^

, 👍-3

Обсуждение

Рассматривали ли вы возможность прочитать документацию для String? https://www.arduino.cc/reference/en/language/variables/data-types/stringobject/, @romkey

Или хотя бы погуглить? Обычно вы находите различные примеры, когда гуглите «Arduino convert X to Y»., @chrisl

Попробуйте что-то вроде: String msg = String(Adc, 3); UDP.write(msg.c_str());, @Mikael Patel

**Особая благодарность Микаэлю Пателю** .^___^, @navid


1 ответ


Лучший ответ:

0

Класс Arduino String можно использовать для преобразования в строку символов.

void loop () {
    int signal = analogRead (A0) ;
    float Adc = (signal * 3.3) / 4096 ;
    String msg = String(Adc, 3); 

    Udp.beginPacket ({192,168,4,1}, 1234) ;
    Udp.write(msg.c_str()); 
    Udp.endPacket () ;
}
,