Запись данных на SD-карту из SoftwareSerial
У меня есть Arduino Uno и экран регистрации данных Adafruit, и я подключил цифровой датчик давления, использующий последовательную связь. Датчику требуется символ, чтобы начать передачу данных. Мне удалось прочитать данные, используя этот код:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8,9);
int depth;
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
mySerial.print("C");
}
void loop()
{
if (mySerial.available()) {
depth = mySerial.read();
}
}
Это возвращает следующее:
C1000
C1000
C1000
где 1000 — это значение.
Я написал еще один код, который записывает данные в экран и тестировал его с другими датчиками, но я не могу регистрировать данные с этого датчика, изменив приведенный выше код, и не могу найти соответствующих примеров. Если я добавлю что-то подобное, оно не вернет то же значение.
logfile.println(depth);
Полный новичок, любые предложения приветствуются.
ОБНОВЛЕНИЕ
@Nik_ol, 👍0
Обсуждение1 ответ
используйте букву C в качестве индикатора начала строки. если полученный char равен 'C', выполните пример file.println();
с выводом в Serial
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8,9);
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
mySerial.print("C");
}
void loop() {
if (mySerial.available()) {
char c = mySerial.read();
if (c == 'C') {
Serial.println();
}
Serial.write(c);
}
}
Но этот код ничем не отличается от простого кода. Моя проблема не в том, что я не читаю данные или не вижу данные, напечатанные в последовательном мониторе. Я получаю все данные. Проблема возникает, когда я пытаюсь зарегистрировать данные. Я думаю, что данные поступают очень быстро из серийного номера, но когда я добавляю задержки, все портится., @Nik_ol
он печатает совершенно иначе, чем рассматриваемый код. ты пробовал?, @Juraj
Да, я пробовал. Он печатает то же самое с промежутком между его измерениями. Также он использует гораздо больше динамических переменных. Но печатает одинаково с промежутком между каждым С1000, @Nik_ol
это не то, что вы хотите? каждый набор с новой строки?, @Juraj
Нет. Я хочу записать данные на SD-карту. Когда я использую этот код для регистрации, я получаю одно число каждую секунду. Добавил скриншот в исходный пост. Я хочу получить все 4 числа за одну секунду, а затем новые 4 числа в следующую секунду., @Nik_ol
у вас все еще есть println вместо этого или пишете, или вы смотрите строки, записанные до изменения, @Juraj
Я полностью удалил serial.println() после if, но это ничего не меняет, @Nik_ol
в моем ответе у вас есть полный эскиз. запускай как есть. ничего не меняй, @Juraj
Я запускал как есть. Обновление, которое я добавил в исходный пост, — это когда я запускаю этот скетч. Он по-прежнему печатает свой байт в другой строке. 6171 - это одно чтение, и код возвращает его через 4 секунды, а его номер - в другой строке., @Nik_ol
у вас в Serial Monitor установлено значение 9600 бод?, @Juraj
устройство отправляет данные на скорости 9600 бод?, @Juraj
да на оба вопроса. Когда я использую эскиз, который я опубликовал изначально (на 9600), он возвращает данные в одну строку, как и ожидалось, непрерывно. У меня возникает эта проблема, когда я добавляю любую задержку. Например, когда я регистрируюсь каждые 1 с, я получаю проблему, о которой я упоминал., @Nik_ol
Вы не можете добавить задержку. устройство не перестает отправлять данные, последовательный буфер переполняется и часть данных будет потеряна, @Juraj
Итак, как я могу регистрировать эти данные? Выхода нет?, @Nik_ol
вы могли бы после задержки сначала прочитать чистый буфер (прочитать количество байтов SERIAL_RX_BUFFER_SIZE), дождаться C и прочитать до следующего C, @Juraj
- Как установить CS-пин на Beetle BLE/Bluno Beetle на Adafruit SD Card Breakout - Ошибка инициализации!
- SD-карта не инициализируется
- Что означают эти контакты? Куда мне их подключить?
- Почему Adafruit motor shield не крутит моторы?
- Понимание того, почему следует избегать «String» и альтернативных решений
- Статус выхода 1 ожидаемое первичное выражение перед ']' Arduino
- Arduino: как записать значение переменной в текстовый файл и изменить его на SD-карте?
- Сохранение файла .txt на SD-карту и чтение данных каждого содержимого в файл txt, а затем сохранение его в переменной
Комментарии не для расширенного обсуждения; этот разговор был [перемещен в чат](https://chat.stackexchange.com/rooms/95775/discussion-on-question-by-nik-ol-logging-data-to-sd-card-from-software- сериал)., @VE7JRO