先日、将来の2倍の核ヘリコプター(および他の多くのプロジェクト)の場合、後でブラックボックス( GPS )を作成するとよいと思いましたが、このために多くのメモリとEEPROMが必要なので、SDシールドを購入または作成する価値がありますArduino用。
購入-そのような些細なことのために少し高価であり、彼らがそれを送るまで長い時間待つので、Googleは人々が彼らのシールドをリベットしていることを発見します、これのために私たちは6つの抵抗器、メモリカード用のアダプタ/スロットとカード自体(それがフォーマットされたSDおよびSDHCカードで動作しましたFAT16およびFAT32)。
スキームは非常に単純です( 詳細はこちらを参照してください )。
電圧を5から約3.4ボルトに下げるには抵抗が必要です
はんだ付けすると、そのような美しさが判明しました:
標準のArduinoの例からコードを取り出し、回路バリアントのピンを少し調整しました(変更された場所は太字でマークされ、同時に一部の場所ではロシア語に翻訳されています)。
/* SD card read/write SD * SD SPI : ** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 10 2010 David A. Mellis 2 2010 Tom Igoe 2011 Gleb Devyatkin - . */ #include <SD.h> File myFile; void setup() { Serial.begin(9600); Serial.print("Initializing SD card..."); // On the Ethernet Shield, CS is pin 4. It's set as an output by default. // Note that even if it's not used as the CS pin, the hardware SS pin // (10 on most Arduino boards, 53 on the Mega) must be left as an output // or the SD library functions will not work. pinMode(10, OUTPUT); if (!SD.begin(10)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); // . , , // , . myFile = SD.open("test.txt", FILE_WRITE); // , : if (myFile) { Serial.print("Writing to test.txt..."); myFile.println("testing 1, 2, 3."); // : myFile.close(); Serial.println("done."); } else { // , : Serial.println("error opening test.txt"); } // , : myFile = SD.open("test.txt"); if (myFile) { Serial.println("test.txt:"); // , : while (myFile.available()) { Serial.write(myFile.read()); } // : myFile.close(); } else { // , : Serial.println("error opening test.txt"); } } void loop() { // , }
このコードを実行するためのフィールド-カードには、「testing 1、2、3」の内容を持つTEST.TXTファイルがあります(または、FILE_WRITEがファイルを上書きする必要があるため、コードが複数回実行された場合、この行が何度もあります)