Hallo zusammen,
Aufbau und Code funktionieren für meinen UNO wunderbar. Wenn ich allerdings den gleichen Code auf den Nano 33 BLE hochladen will, erscheint eine Fehlermeldung.
"dtostrf" not declared in this scope.
Komischerweise erschien die beim Kompilieren für den UNO auch, der Upload hat aber funktioniert. Beim Nano gibt es die gleiche Fehlermeldung beim Kompilieren und hochladen.
Ich dachte eigentlich, dass beide Boards den gleichen Code vertragen, ist das nicht korrekt?
Muss ich zum Beseitigen des Fehlers eine spezielle Bibliohtek einbinden?
Beim Googeln stoße ich auf stdlib.h
/**
* test ard-tsiclib by reading the temperature every second
* and output the measured data to the serial port
*/
#include "TSIC.h" // include the library
#include <SPI.h>
#include <SD.h>
// instantiate the library, representing the sensor
TSIC Sensor1(5, 2,TSIC_50x);
TSIC Sensor2(6, 2,TSIC_50x);// Signalpin, VCCpin, Sensor Type
//TSIC Sensor1(4); // only Signalpin, VCCpin unused by default
//TSIC Sensor1(4, NO_VCC_PIN, TSIC_50x); // external powering of 50x-Sensor
//TSIC Sensor1(4, 2, TSIC_30x); // Signalpin, VCCpin, Sensor Type
//TSIC Sensor2(5, 2, TSIC_50x); // Signalpin, VCCpin, Sensor Type NOTE: we can use the same VCCpin to power several sensors
uint16_t temperature = 0;
float Temperatur_C1 = 0;
float Temperatur_C2 = 0;
int buttonApin = 9;
int ledPin = 7;
bool status;
char T1char[15];
char T2char[15];
int Messzeit = 15;
//Messzeit in Sekunden
File myFile;
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
pinMode(ledPin, OUTPUT);
pinMode(buttonApin, INPUT_PULLUP);
status = false;
Serial.print("Initializing SD card...");
if (!SD.begin(4)) {
Serial.println("initialization failed!");
while (1);
}
Serial.println("initialization done.");
if (SD.exists("example.txt")) {
Serial.println("example.txt exists.");
} else {
Serial.println("example.txt doesn't exist.");
}
Serial.println("Creating example.txt...");
}
void loop() {
if (digitalRead(buttonApin) == LOW) {
digitalWrite(ledPin, HIGH);
status = true;
}
if (status == true) {
myFile = SD.open("example.txt", FILE_WRITE);
myFile.println("Hier beginnt eine neue Messung:");
myFile.println("Zeit [s], Temperaturen T1, T2 [°C]");
for (int i=0; i <= Messzeit; i++) {
if (Sensor1.getTemperature(&temperature)) {
Serial.print("uint_16: ");
Serial.println(temperature);
Temperatur_C1 = Sensor1.calc_Celsius(&temperature);
Serial.print("Temperature1: ");
Serial.print(Temperatur_C1);
Serial.println(" °C");
dtostrf(Temperatur_C1,3,1,T1char);
}
if (Sensor2.getTemperature(&temperature)) {
Serial.print("uint_16: ");
Serial.println(temperature);
Temperatur_C2 = Sensor2.calc_Celsius(&temperature);
Serial.print("Temperature2: ");
Serial.print(Temperatur_C2);
Serial.println(" °C");
dtostrf(Temperatur_C2,3,1,T2char);
}
Serial.println(i);
myFile.print(i);
myFile.print(" , ");
myFile.print(T1char);
myFile.print(" , ");
myFile.println(T2char);
delay(1000); // wait 1 seconds
}
myFile.println("Ende der Messung");
myFile.close();
digitalWrite(ledPin, LOW);
status = false;
}
}