arduino:solar_sd
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | arduino:solar_sd [2024/02/09 17:10] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | mesure de 4 ldr et ecriture toue les 3O secondes d'un fichier sur une SD avec une partition VFAT ou FAT | ||
+ | |||
+ | code arduino : {{: | ||
+ | |||
+ | Le code provient essentiellement du code SD de la base Arduino ;-) je n'y ai pas fait grand chose | ||
+ | |||
+ | < | ||
+ | /* | ||
+ | SD card datalogger | ||
+ | * analog sensors on analog ins 0, 1, and 2 | ||
+ | * SD card attached to SPI bus as follows: | ||
+ | ** MOSI - pin 11 | ||
+ | ** MISO - pin 12 | ||
+ | ** CLK - pin 13 | ||
+ | ** CS - pin 4 | ||
+ | */ | ||
+ | |||
+ | #include < | ||
+ | |||
+ | // On the Ethernet Shield, CS is pin 4. Note that even if it's not | ||
+ | // used as the CS pin, the hardware CS pin (10 on most Arduino boards, | ||
+ | // 53 on the Mega) must be left as an output or the SD library | ||
+ | // functions will not work. | ||
+ | const int chipSelect = 4; | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | // Open serial communications and wait for port to open: | ||
+ | Serial.begin(9600); | ||
+ | while (!Serial) { | ||
+ | ; // wait for serial port to connect. Needed for Leonardo only | ||
+ | } | ||
+ | |||
+ | |||
+ | Serial.print(" | ||
+ | // make sure that the default chip select pin is set to | ||
+ | // output, even if you don't use it: | ||
+ | pinMode(10, OUTPUT); | ||
+ | | ||
+ | // see if the card is present and can be initialized: | ||
+ | if (!SD.begin(chipSelect)) { | ||
+ | Serial.println(" | ||
+ | // don't do anything more: | ||
+ | return; | ||
+ | } | ||
+ | Serial.println(" | ||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | // make a string for assembling the data to log: | ||
+ | String dataString = ""; | ||
+ | |||
+ | // read three sensors and append to the string: | ||
+ | for (int analogPin = 0; analogPin < 4; analogPin++) { | ||
+ | int sensor = analogRead(analogPin); | ||
+ | dataString += String(sensor); | ||
+ | if (analogPin < 3) { | ||
+ | dataString += ";"; | ||
+ | } | ||
+ | } | ||
+ | // open the file. note that only one file can be open at a time, | ||
+ | // so you have to close this one before opening another. | ||
+ | File dataFile = SD.open(" | ||
+ | |||
+ | // if the file is available, write to it: | ||
+ | if (dataFile) { | ||
+ | dataFile.println(dataString); | ||
+ | dataFile.close(); | ||
+ | // print to the serial port too: | ||
+ | Serial.println(dataString); | ||
+ | } | ||
+ | // if the file isn't open, pop up an error: | ||
+ | else { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | delay(30000); | ||
+ | } | ||
+ | |||
+ | |||
+ | </ |