INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
float to uint8_t
22.12.2018, 14:04
Beitrag #1
float to uint8_t
Hallo Arduino Freunde,

nach verzweifelter Suche im Netz wie ich das ohne viel Aufwand umsetzen könnte, bin ich schier ratlos. Ich bin mir sicher es ist dennoch bestimmt einfach wenn man weiß wie es geht.

Ich lege global
Code:
uint8_t NumberArray[6] = {0, 0, 0, 0, 0, 0};
an. Nun habe ich einen DS18B20 der mir einen float Wert "temperature" zurückgibt.
Code:
sensors.requestTemperatures();
static float temperature = sensors.getTempCByIndex(0);

Als Beispiel ist temperature 22.50.
Nun möchte ich die einzelnen Ziffern von temperature in je ein eigenes uint8_t haben, leider bringt mich dtostrf, union und atoi nicht ans Ziel.
Hat wer eine Idee wie ich die Ziffern dem NumberArray zuweisen kann?
NumberArray[0] = Ziffer 1
NumberArray[1] = Ziffer 2 usw...

Grobby
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2018, 14:08 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2018 14:17 von Tommy56.)
Beitrag #2
RE: float to uint8_t
Was soll es denn werden? Was soll mit dem Dezimalpunkt geschehen?

Gruß Tommy

Wenn es wirklich nur die Ziffern werden sollen, könntest Du es so machen:
Code:
float f = 22.50;
char s[10];
uint8_t arr[6];
void setup() {
  Serial.begin(115200);
  dtostrf(f,1,2,s);
  Serial.println(s);
  for(byte i=0; i<strlen(s);i++) {
    if (s[i] != '.') {
      arr[i] = s[i] - '0';
      Serial.println(arr[i]);
    }  
  }
}

void loop() {}

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.12.2018, 16:39
Beitrag #3
RE: float to uint8_t
Hallo Tommy,

vielen Dank für deine schnelle Antwort und auch Hilfe!
Hab das gleich getestet und alles klappt wie erhofft, ich hatte bei dtostrf bevor ich schrieb einfach die Schleife vergessen und mich gewundert das er nur 0 ausspuckt.
Den Dezimalpunkt brauche ich nicht.
Vom Projekt her ist es eine Nixieuhr die zusätzlich auch noch die Raumtemperatur anzeigen soll.
Code:
sensors.requestTemperatures();
  static float f = sensors.getTempCByIndex(0);
  dtostrf(f, 1, 2, s);

  for (byte i = 0; i < strlen(s); i++) {
    if (s[i] != '.') {
      arr[i] = s[i] - '0';
    }
  }

  fillNixies(10, 10, arr[0], arr[1], arr[3], arr[4]);

Schöne Weihnachten!

Grobby

(22.12.2018 14:08)Tommy56 schrieb:  Was soll es denn werden? Was soll mit dem Dezimalpunkt geschehen?

Gruß Tommy

Wenn es wirklich nur die Ziffern werden sollen, könntest Du es so machen:
Code:
float f = 22.50;
char s[10];
uint8_t arr[6];
void setup() {
  Serial.begin(115200);
  dtostrf(f,1,2,s);
  Serial.println(s);
  for(byte i=0; i<strlen(s);i++) {
    if (s[i] != '.') {
      arr[i] = s[i] - '0';
      Serial.println(arr[i]);
    }  
  }
}

void loop() {}

Gruß Tommy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Lora uint8_t Potiwerte übergeben gandalf7588 1 610 08.04.2018 13:23
Letzter Beitrag: Tommy56
  Float über I2C zwischen 2 Arduinos UNO Marduino_UNO 12 5.686 13.01.2018 11:54
Letzter Beitrag: hotsystems
  Rechnen mit float und unsigned long Rudi 3 2.314 03.06.2016 12:41
Letzter Beitrag: hotsystems
  uint8_t und nun? old56Man 8 3.223 24.02.2016 16:12
Letzter Beitrag: Retian
  float in eeprom goldfisch 4 2.925 28.12.2015 18:54
Letzter Beitrag: Bitklopfer
  Umrechnung float Geodaten in Grad'Min'Sec.secfrac HaWe 0 1.550 04.10.2015 11:42
Letzter Beitrag: HaWe
  Anzahl der Float-Kommastellen bei einem Return Retian 1 1.954 25.07.2015 18:09
Letzter Beitrag: HaWe
  große 2-dim float-Arrays schnell auf SD speichern und zurücklesen? HaWe 25 4.664 22.06.2015 14:41
Letzter Beitrag: Thorsten Pferdekämper
  float per NRF24 übertragen F2Ingo 9 4.729 14.04.2015 21:21
Letzter Beitrag: F2Ingo
  fehler in anzeige von float avoid 11 3.791 12.04.2015 16:32
Letzter Beitrag: HaWe

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste