💾
TPs Memoires
3 Projets : EEPROM, Flash, Carte SD
💾 EEPROM⚡ Flash📁 SD Card
TP1 : EEPROM Interne Arduino
Stockage persistant de parametres
Code : Lecture/Écriture EEPROM
// TP1 : EEPROM Arduino - Sauvegarde parametres #include <EEPROM.h> struct Config { int seuil_temp; int seuil_hum; char nom[16]; }; Config config; const int ADDR = 0; void saveConfig() { EEPROM.put(ADDR, config); Serial.println("Config sauvegardee!"); } void loadConfig() { EEPROM.get(ADDR, config); Serial.print("Seuil T: "); Serial.println(config.seuil_temp); Serial.print("Seuil H: "); Serial.println(config.seuil_hum); Serial.print("Nom: "); Serial.println(config.nom); } void setup() { Serial.begin(115200); // Charger ou initialiser loadConfig(); if (config.seuil_temp == 0) { config.seuil_temp = 30; config.seuil_hum = 70; strcpy(config.nom, "Capteur_01"); saveConfig(); } }
TP2 : Flash SPI (W25Q64)
Memoire Flash externe 8Mo
Code : Flash SPI
// TP2 : Flash SPI W25Q64 #include <SPI.h> const int CS = 10; #define CMD_READ 0x03 #define CMD_WRITE 0x02 #define CMD_WREN 0x06 #define CMD_ERASE 0x20 void flashWrite(uint32_t addr, uint8_t* data, int len) { digitalWrite(CS, LOW); SPI.transfer(CMD_WREN); digitalWrite(CS, HIGH); digitalWrite(CS, LOW); SPI.transfer(CMD_WRITE); SPI.transfer((addr >> 16) & 0xFF); SPI.transfer((addr >> 8) & 0xFF); SPI.transfer(addr & 0xFF); for(int i = 0; i < len; i++) SPI.transfer(data[i]); digitalWrite(CS, HIGH); }
TP3 : Carte SD - Data Logger
Enregistrement de donnees sur fichier
Code : Data Logger SD
// TP3 : Data Logger avec carte SD #include <SD.h> #include <SPI.h> const int CS_SD = 4; File dataFile; void setup() { Serial.begin(115200); if (!SD.begin(CS_SD)) { Serial.println("Erreur carte SD!"); return; } Serial.println("Carte SD OK"); // Creer fichier avec en-tete dataFile = SD.open("data.csv", FILE_WRITE); if (dataFile) { dataFile.println("timestamp,temperature,humidity"); dataFile.close(); } } void logData(float temp, float hum) { dataFile = SD.open("data.csv", FILE_WRITE); if (dataFile) { dataFile.print(millis()); dataFile.print(","); dataFile.print(temp); dataFile.print(","); dataFile.println(hum); dataFile.close(); Serial.println("Donnees enregistrees"); } }
Criteres d'evaluation
| Critere | Points |
|---|---|
| TP1 : EEPROM lecture/ecriture struct | /6 |
| TP2 : Flash SPI communication | /6 |
| TP3 : Data Logger SD fonctionnel | /8 |
| Total | /20 |