Как читать текстовый файл построчно

rgb-led led-strip

Я делаю контроллер светодиодов, который считывает инструкции из текстового файла на моем компьютере. Мне нужно заставить Arduino читать этот текстовый файл построчно и помещать каждую строку в соответствующие переменные. Я использую sparkfun pro micro, который является подделкой arduino pro micro. pro micro подключается через USB

Я видел, как люди используют SD-библиотеку, но не знаю, сработает ли она в моей ситуации, потому что я читаю напрямую с компьютера, а не с SD-карты. Это правильный подход или есть дополнительная/альтернативная библиотека, которую мне нужно использовать?

, 👍1

Обсуждение

У вас есть сериал. Это все, что у вас есть. Прочитайте данные, проанализируйте их. На ПК используйте какое-нибудь программное обеспечение для отправки файла (например, Putty)., @Majenko


2 ответа


Лучший ответ:

1

Вы можете сделать следующее:

  • Читать посимвольно и копировать во временный буфер максимальной длиной в одну строку.
  • Когда вы анализируете символ конца строки, вы начинаете анализировать (полную) строку в буфере.
  • В этом синтаксическом анализе строки (предпочтительно отдельной функцией) вы анализируете строку, используя функции преобразования строки для ввода типа, такие как atoi (строка в промежуточный элемент) и т. д. Также вы можете использовать функцию C strtok, чтобы разбить строку на основе символа (например, запятой).
  • После синтаксического анализа строки очистите буфер (вы его уже обработали) и продолжайте заполнять буфер снова, пока он не заполнится.
  • Не забудьте проверить конец файла.
,

Можно ли это сделать через библиотеку SD?, @BoatHouse

Нет. Как я уже упоминал в своем комментарии к вашему вопросу, все, что у вас есть, это Serial. Вы можете только прочитать то, что происходит на ПК, чтобы отправить его на Arduino., @Majenko

Как говорит Маженко, только Serial. В библиотеке SD (https://www.arduino.cc/en/Reference/FileRead) есть функции для чтения либо по одному, либо заранее определенное количество, в обоих случаях это не связано с концом строки, поэтому вам нужно функции синтаксического анализа C., @Michel Keijzers


0

Arduino не может считать данные с ПК.

Вместо этого ПК должен отправлять данные на Arduino, а Arduino должен анализировать (интерпретировать) эти данные.

Вам нужны две вещи:

  1. Программное обеспечение, работающее на ПК, которое отправляет содержимое файла на Arduino по последовательному порту.
  2. Программное обеспечение на Arduino, которое принимает поток данных, поступающий через последовательный порт, и что-то с ним делает.

Это ничем не отличается от обработки команд, которые кто-то набирает вручную с помощью Serial Monitor, просто они, как правило, поступают намного быстрее, когда ПК отправляет их из файла.

,