Praca s ciselnou hodnotou a posielanie cez serial

Sekcia určená pre Arduino nadšencov

Moderátor: Moderátori

duskohu
Okoloidúci
Okoloidúci
Príspevky: 7
Dátum registrácie: 03 Jan 2022, 11:48

Praca s ciselnou hodnotou a posielanie cez serial

Príspevok od používateľa duskohu » 10 Jan 2022, 16:11

Ahojte, viete mi poradit ako riesit ked chcem zbierat float value napr. teplotu, voltage, .. a posielat to cez serial ako string? nechcem pracovat s desatinou ciarkou, tak ma napadlo ze zoberiem napr. voltage a vykratim 1000 poslem na serial a na opacnej strane vydelim, a tak by som chcel riesit aj teplotu, ale nevoem ci to je ok.
poznamka: potrebujem to posielat ako string lebo to posielam ako "T:izba1:2500".

Ale ked mam tento priklad tak mi vypise:
3.70 - toto je real teplota pred prevodom
3699.90 - toto je zle ocakavam 3700

Kód: Vybrať všetko

int voltageReadGlobal = 0;

void setup() {
  Serial.begin(9600);
   pinMode(A0, INPUT);
}


void loop() {
  int voltageRead = analogRead(A0);

  if (voltageReadGlobal != voltageRead) {
    
  	float voltage = 0.0; 
  	int sensorValue = analogRead(A0);
  	voltage= sensorValue * (5.0 / 1023.0);
  	Serial.println(voltage);
    
 
  Serial.println(voltage * 1000.0);

    voltageReadGlobal = voltageRead;
  }

}
Viete mi poradit ako to realne a dobre riesit? mat nejaku hodnotu a takto ju posielat do druheho zariadenia?
nechcem velmi posielat rovno analogovu hodnotu, lebo teplota sa moze ratat inak, vlhkost zase inak, a ja by som ockakaval na primaci ze to len preratam napr. * 1000
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Praca s ciselnou hodnotou a posielanie cez serial

Príspevok od používateľa peterple » 10 Jan 2022, 18:28

Zbytočne to komplikuješ. Aký je problém spracovať na druhej strane 3.7? Podľa mňa žiadny. Float má iba 7 platných cifier. Tak sa zaokrúhľuje a chyby sa zratávajú. Napr. 1.0 (teda aj 1000.0) sa nedá presne vyjadriť. Cesty riešenia:
  1. posielať si int hodnotu z prevodníka a teplotu si vypočítať na druhej strane vrátane prevodu na analógové napätie.
  2. posielať si analógové napätie. Divne vytlačené to bude aj tak. Ale to je fuk.
  3. použiť double (zbytočné)
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok