Ethernet ShieldにくっついてるSDカードスロットが飾りのようになっていて寂しいので使ってみたよ。
書き込み用に開くファイルのファイル名には文字数制限があるみたい。ちょっとはまってしまっけど。。
8文字以内にしないとファイルオープンに失敗するから注意が必要。
【環境】
ArduinoIDE 0022 + Ethernet Library
#include <SPI.h> #include <Ethernet.h> #include <EthernetDHCP.h> #include <EthernetDNS.h> #include <SD.h> File myFile; byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x12, 0xDE }; // Ethernet ShieldのMACアドレス byte server[] = { 74, 125, 31, 106 }; // Google Client client(server, 80); void setup() { // start the serial library: Serial.begin(9600); Serial.println("Initializing SD card..."); pinMode(10, OUTPUT); if( !SD.begin(4) ) { Serial.println("initialization failed!"); return; } // start the Ethernet connection: EthernetDHCP.begin( mac ); // give the Ethernet shield a second to initialize: delay(1000); Serial.println("connecting..."); // if you get a connection, report back via serial: if (client.connect()) { Serial.println("connected"); // Make a HTTP request: client.println("GET /search?q=arduino HTTP/1.0"); client.println(); } else { Serial.println("connection failed"); } } void loop() { Serial.println("initialization done."); myFile = SD.open("Sample2.txt", FILE_WRITE); // SDカードを書き込みように開く if (client.available()) { char c = client.read(); if (myFile) { Serial.println("Writing to test.txt..."); myFile.write(c); // googleから取得した文字列をファイルに書き込み } else { // if the file didn't open, print an error: Serial.println("error opening test.txt"); } } // if the server's disconnected, stop the client: if (!client.connected()) { Serial.println(); Serial.println("disconnecting."); client.stop(); } myFile.close(); // 書き込みが終わったらちゃんと閉じる Serial.println("SD Save Completed"); }