Arduino:Примеры/Read Write
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Считывание и запись данных на SD-карту[1]
Этот пример показывает, как считывать и записывать данные на SD-карту. Более подробно о библиотеке SD можно прочесть тут.
Необходимое оборудование
- Плата Arduino или Genuino
- Модуль Arduino Ethernet Shield (или другая плата с SD-слотом)
- Отформатированная SD-карта
Цепь
Плата Arduino или Genuino должна быть подключена к Ethernet-модулю, а также через USB-кабель – к компьютеру.
Схема
Код
Скетч ниже настроен для использования с Ethernet-модулем, который имеет встроенный SD-слот. В блоке setup() вызываем функцию SD.begin(), а затем в качестве CS-контакта делаем 4-ый контакт. Однако если вместо модуля Arduino Ethernet Shield будет использоваться другой модуль, вам нужно будет задействовать другой контакт.
В блоке setup() при помощи функции SD.open() создаем новый файл под названием test.txt. Параметр FILE_WRITE нужен, чтобы разрешить для этого файла считывание и запись (начиная с конца). Если на SD-карте уже есть файл с таким именем, функция SD.open() просто откроет его.
Называем экземпляр открытого файла myFile.
Открыв файл, используем функцию myFile.println(), чтобы записать на SD-карту строку, вслед за которой будет идти символ возврата строки. Когда строка будет записана, закрываем файл.
Затем еще раз открываем файл функцией SD.open(). Открыв, просим Arduino прочитать содержимое файла при помощи функции myFile.read(), а затем отсылаем его через последовательный порт. После того, как содержимое файла будет прочитано, закрываем файл с помощью функции myFile.close().
/*
Считывание и запись на SD-карту
Этот пример показывает, как считывать и записывать данные
в файл на SD-карте.
Цепь:
* SD-карта, подключенная к шине SPI следующим образом:
** MOSI – к 11-ому контакту на Arduino
** MISO - к 12-ому контакту на Arduino
** CLK – к 13-ому контакту на Arduino
** CS – к 4-ому контакту
Создан в ноябре 2010 года Дэвидом А. Меллисом (David A. Mellis),
модифицирован 9 апреля 2012 года Томом Иго (Tom Igoe).
Этот код не защищен авторским правом.
*/
#include <SPI.h>
#include <SD.h>
File myFile;
void setup() {
// запускаем последовательную коммуникацию и ждем открытия порта:
Serial.begin(9600);
while (!Serial) {
; // ждем подключения последовательного порта (нужно только для плат со штатным USB-портом)
}
Serial.print("Initializing SD card..."); // "Инициализация SD-карты..."
if (!SD.begin(4)) {
Serial.println("initialization failed!"); // "инициализация не удалась!"
return;
}
Serial.println("initialization done."); // "инициализация выполнена."
// открываем файл (обратите внимание, что одновременно может быть
// открыт только один файл; то есть перед тем, как открывать
// следующий файл, закройте этот):
myFile = SD.open("test.txt", FILE_WRITE);
// если файл открылся корректно, выполняем запись:
if (myFile) {
Serial.print("Writing to test.txt..."); // "Запись в test.txt..."
myFile.println("testing 1, 2, 3."); // "тестирование 1, 2, 3."
// закрываем файл:
myFile.close();
Serial.println("done."); // "готово."
} else {
// если файл не открылся, сообщаем об ошибке:
Serial.println("error opening test.txt"); // "ошибка при открытии 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"); // "ошибка при открытии test.txt"
}
}
void loop() {
// после setup() ничего не происходит
}
См.также
- SD library - Your reference for the SD Card library.
- Notes on using SD cards – What you need to know when you use SD cards
- CardInfo - Get info about your SD card.
- Datalogger - How to log data from three analog sensors to an SD card.
- DumpFile - How to read a file from the SD card.
- Files - How to create and destroy an SD card file.
- Listfiles - How print out the files in a directory on a SD card.
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino