TFT +UNO+BMP180 (Anfänger braucht Hilfe)


hallo leute,

ich habe mich mal daran versucht die temperatur des bmp180 mit dem arduino tft display auszuwerfen.
ich komme einfach nicht mehr weiter :(


 
code: [select]
#include <wire.h>
#include <adafruit_bmp085.h>

#include <tft.h>  // arduino lcd library
#include <spi.h>

// pin definition uno
#define cs   10
#define dc   9
#define rst  8 

adafruit_bmp085 bmp;


// create instance of library
tft tftscreen = tft(cs, dc, rst);



void setup() {
 
  bmp.begin();
  tftscreen.begin();

  // clear screen black background
  tftscreen.background(0, 0, 0);
 
  // write static text screen
  // set font color white
  tftscreen.stroke(0,255,0);
  // set font size
  tftscreen.settextsize(1);
  // write text top left corner of screen
  tftscreen.text("temperatur=",10,0);
  // ste font size large loop
  tftscreen.settextsize(2);
}

void loop() {
   
  float temperature;
 
  temperature = (bmp.readtemperature());
 
  // set font color
  tftscreen.stroke(0,0,255);
  // print sensor value
  tftscreen.text(temperature, 0, 20);
  // wait moment
  delay(250);
 
 
 
}


er wirft mir ständig diese fehlermeldung raus

tftdisplaytextbmp.ino: in function 'void loop()':
tftdisplaytextbmp:63: error: no matching function call 'tft::text(float&, int, int)'
c:\users\user\documents\arduino\libraries\tft/utility/adafruit_gfx.h:166: note: candidates are: void adafruit_gfx::text(const char*, int16_t, int16_t)

hoffe auf schnelle antworten und danke schonmal im voraus

die library kann wohl nur mir c strings umgehen. etwas limitiert.

in der anleitung wird da ein sehr, sehr unschöner umweg empfohlen:
http://arduino.cc/en/tutorial/tftdisplaytext

ein arduino string objekt erstellen und dann tochararray(). umständlicher geht es nicht mehr. die string klasse ist generell murks, aber sie hat inzwischen die c++ methode c_str() implementiert. man braucht nicht mehr ein array anlegen, sondern kommt direkt einen zeiger auf das interne array:
code: [select]

string valuestring = string(valuefloat);
tftscreen.text(valuestring.c_str(), 0, 0);

zwar immer noch mit string klasse, aber wenigstens wird nicht noch zusätzlich ein array gebraucht

schöner ist meiner meinung nach hier dtostrf():
http://www.mikrocontroller.net/topic/86391
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#ga060c998e77fb5fc0d3168b3ce8771d42
damit wandelt man einen float wert in einen c string um

für integer gibt itoa():
http://www.cplusplus.com/reference/cstdlib/itoa/


Arduino Forum > International > Deutsch (Moderator: uwefed) > TFT +UNO+BMP180 (Anfänger braucht Hilfe)


arduino

Comments

Popular posts from this blog

invalid use of void expresion in FlexiTimer2 library

error: a function-definition is not allowed here before '{' token

LED Strip Code