Outils pour utilisateurs

Outils du site


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 : {{:arduino:solar_sd.ino|}}
 +
 +Le code provient essentiellement du code SD de la base Arduino ;-)  je n'y ai pas fait grand chose
 +
 +<code>
 +/*
 +  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 <SD.h>
 +
 +// 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("Initializing SD card...");
 +  // 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("Card failed, or not present");
 +    // don't do anything more:
 +    return;
 +  }
 +  Serial.println("card initialized.");
 +}
 +
 +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("solar1.csv", FILE_WRITE);
 +
 +  // 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("error opening solar1.csv");
 +  }
 +  delay(30000); // frequence d'ecriture 30 secondes
 +}
 +
 +
 +</code>