Comment puis-je obtenir l'Arduino pour écrire les données de mesure sur la carte micro SD lorsque la fonction d'écriture n'accepte que des nombres entiers?Comment écrire des entiers sur une carte micro SD sur un Arduino
#include <SD.h>
#include <SPI.h>
int CS_PIN = 10;
int ledPin = 13;
int EP =9;
File file;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(EP, INPUT);
initializeSD();
}
void loop(){
long measurement =TP_init();
delay(50);
// Serial.print("measurment = ");
Serial.println(measurement);
createFile("test.txt");
writeToFile(measurement);
closeFile();
}
long TP_init(){
delay(10);
long measurement=pulseIn (EP, HIGH); //wait for the pin to get HIGH and returns measurement
return String(measurement);
}
void initializeSD()
{
Serial.println("Initializing SD card...");
pinMode(CS_PIN, OUTPUT);
if (SD.begin())
{
Serial.println("SD card is ready to use.");
} else
{
Serial.println("SD card initialization failed");
return;
}
}
int createFile(char filename[])
{
file = SD.open(filename, FILE_WRITE);
if (file)
{
Serial.println("File created successfully.");
return 1;
} else
{
Serial.println("Error while creating file.");
return 0;
}
}
int writeToFile(char text[])
{
if (file)
{
file.println(text);
Serial.println("Writing to file: ");
Serial.println(text);
return 1;
} else
{
Serial.println("Couldn't write to file");
return 0;
}
}
void closeFile()
{
if (file)
{
file.close();
Serial.println("File closed");
}
}
int openFile(char filename[])
{
file = SD.open(filename);
if (file)
{
Serial.println("File opened with success!");
return 1;
} else
{
Serial.println("Error opening file...");
return 0;
}
}
String readLine()
{
String received = "";
char ch;
while (file.available())
{
ch = file.read();
if (ch == '\n')
{
return String(received);
}
else
{
received += ch;
}
}
return "";
}
Pourquoi vous déclarez la valeur retournée de 'TP_init () 'comme un' long' et retournant dans la fonction un 'String' (' return String (measurement); ')? –