Tietojen kirjaaminen on monien ratkaiseva osa IoT-, ympäristön seuranta ja anturipohjaiset projektit. Kanssa Arduino ja SD -korttimoduuli, voit Tallenna anturitiedot, aikaleimat ja muut lukemat Tulevaa analyysiä varten. Tämä opas näyttää kuinka Kytke SD -korttimoduuli Arduinoksi, Kirjoita ja lue tietoja ja vianmääritys yleisiä ongelmia.
1. Mitä tarvitset
✅ Arduino -lautakunta (UNO, Mega, Nano jne.)
✅ Micro SD -korttimoduuli (SPI-pohjainen)
✅ MicroSD -kortti (FAT32 -muotoinen, 2 Gt - 32 Gt suositellaan)
✅ Hyppyjohdot
✅ Anturit (valinnainen, esim. DHT11, BMP280 jne.)
🔹 Huomaa: SD -moduuli kommunikoi Arduinon kanssa käyttämällä SPI (Sarjaperifeerinen rajapinta).
14. SD -korttimoduulin johdotus Arduinolle
SD -korttimoduulin nasta | Arduino uno -nasta | Arduino Mega Pin |
---|---|---|
VCC | 5V | 5V |
Hölynpöly | Hölynpöly | Hölynpöly |
Misio | 12 (SPI MISO) | 50 (SPI MISO) |
Mosi | 11 (Spi Mosi) | 51 (Spi Mosi) |
Sck | 13 (SPI SCK) | 52 (SPI SCK) |
CS (Chip Select) | 10 (Spi CS) | 53 (Spi CS) |
3. vaaditun kirjaston asentaminen
- Avata Arduino IDE.
- Mennä jhk Luonnos → Sisällytä kirjasto → Hallitse kirjastoja.
- Etsiä jtk SD ja asenna SD -kirjasto, kirjoittanut Arduino.
4. SD -kortin alustaminen (testi, jos SD -moduuli toimii)
Käytä seuraavia peruskoodi Tarkistaa, toimiiko SD -moduuli:
#include <SPI.h>
#include <SD.h>
const int chipSelect = 10; // Set CS pin for SD card
void setup() {
Serial.begin(115200);
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
Serial.println("SD card is ready.");
}
void loop() {
// Nothing here
}
Mitä tämä koodi tekee:
✔ Alustaa SD -moduuli.
✔ Tulosteet "SD -kortti on valmis" Jos havaitaan.
✔ Tulosteet "SD -kortin alustus epäonnistui!" Jos on virhe.
🔹 Vianmääritys:
✅ Tarkista, että SD -kortti on FAT32 muotoiltu.
✅ Varmistaa oikea johdotus (MISO, MOSI, SCK ja CS).
✅ Kokeilla CS -nasta (esim. 4 10: n sijasta) ja päivitä koodi.
5. Tietojen kirjoittaminen SD -kortille
Tämä esimerkki luo tiedoston (data.txt
) ja kirjoittaa sille anturin lukemat.
#include <SPI.h>
#include <SD.h>
const int chipSelect = 10;
void setup() {
Serial.begin(115200);
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
File dataFile = SD.open("data.txt", FILE_WRITE);
if (dataFile) {
dataFile.println("Hello, this is a test log!");
dataFile.close();
Serial.println("Data written to SD card.");
} else {
Serial.println("Failed to open file.");
}
}
void loop() {
// Nothing here
}
Mitä tämä koodi tekee:
✔ Luo tai avautuu data.txt
.
✔ Kirjoittaa "Hei, tämä on tesiloki!" tiedostoon.
✔ Sulje tiedosto kirjoittamisen jälkeen.
🔹 Tiedostojen käsittelytoiminnot:
✔ SD.open("filename.txt", FILE_WRITE);
→ Avaa tiedosto kirjoittamista varten.
✔ dataFile.println("Text");
→ Kirjoita tiedot tiedostoon.
✔ dataFile.close();
→ Sulje tiedosto tietojen tallentamiseksi.
6. SD -kortin tietojen lukeminen
Käytä tätä koodia Lue ja näytä tiedot SD -kortista.
#include <SPI.h>
#include <SD.h>
const int chipSelect = 10;
void setup() {
Serial.begin(115200);
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
File dataFile = SD.open("data.txt");
if (dataFile) {
Serial.println("Reading file...");
while (dataFile.available()) {
Serial.write(dataFile.read()); // Print file content
}
dataFile.close();
} else {
Serial.println("Failed to open file.");
}
}
void loop() {
// Nothing here
}
Mitä tämä koodi tekee:
✔ Aukea data.txt
lukemiseen.
✔ Tulostaa tiedoston sisällön Sarjamonitori.
🔹 Kärki: Varmista, että tiedosto on olemassa ennen lukemista virheiden välttämiseksi.
7. SKS -anturitiedot SD -kortille
Tämä esimerkki kirjautuu DHT11 -anturin lämpötila- ja kosteustiedot.
Vaadittavat komponentit
✅ DHT11 -lämpötila- ja kosteusanturi
✅ DHT -kirjasto (Adafruit DHT -anturikirjasto)
Johdotus DHT11 -anturille
DHT11 -nasta | Arduino -nasta |
---|---|
VCC | 5V |
Hölynpöly | Hölynpöly |
Tiedot | 2 |
Koodi: DHT11 -tietojen kirjaaminen SD -kortille
#include <SPI.h>
#include <SD.h>
#include <DHT.h>
#define DHTPIN 2 // Pin connected to DHT sensor
#define DHTTYPE DHT11 // Define sensor type (DHT11 or DHT22)
DHT dht(DHTPIN, DHTTYPE);
const int chipSelect = 10;
void setup() {
Serial.begin(115200);
dht.begin();
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
}
void loop() {
float temp = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temp) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
File dataFile = SD.open("log.txt", FILE_WRITE);
if (dataFile) {
dataFile.print("Temperature: ");
dataFile.print(temp);
dataFile.print(" °C, Humidity: ");
dataFile.print(humidity);
dataFile.println(" %");
dataFile.close();
} else {
Serial.println("Failed to write to SD card.");
}
Serial.print("Logged: Temp = ");
Serial.print(temp);
Serial.print(" °C, Humidity = ");
Serial.println(humidity);
delay(2000); // Log every 2 seconds
}
Mitä tämä koodi tekee:
✔ Lukema lämpötila ja kosteus peräisin DHT11 -anturi.
✔ Kirjataan tiedot sisään log.txt
SD -kortilla.
✔ Tulostaa arvot Sarjamonitori.
8. Vianmääritysvinkit
Ongelma: SD -korttia ei havaittu?
✅ Varmista, että SD -kortti on FAT32 muotoiltu.
✅ Kaksoiskorvaus MISO, MOSI, SCK ja CS -johdotus.
✅ Yrittää erilainen SD -kortti (Jotkut kortit ovat yhteensopimattomia).
Ongelma: Tiedot eivät säästä?
✅ Aina sulje tiedosto käyttäminen dataFile.close();
.
✅ Varmistaa Tarpeeksi säilytystila on saatavana SD -kortilla.
9. käytännön sovellukset
✔ Sään seurantajärjestelmä - Tukin lämpötila, kosteus ja ilmanpaine.
✔ Energianvalvonta - levy jännite ja virta Lukemat ajan myötä.
✔ GPS -seuranta - Store leveysaste ja pituusaste GPS -moduulin tiedot.
✔ Tapahtumien kirjaus - Tallenna anturi laukaisee tai painike.
10. Johtopäätös
Käyttämällä SD -korttimoduuli Arduinolla on hieno tapa Tallenna anturitiedot, lokitapahtumat tai luo kannettava tiedonsiirto. Kanssa SPI -viestintä, voit helposti Lue ja kirjoita tiedostoja, mikä tekee siitä ihanteellisen Internet- ja automaatioprojektit.