Как читать текстовый файл построчно
Я делаю контроллер светодиодов, который считывает инструкции из текстового файла на моем компьютере. Мне нужно заставить Arduino читать этот текстовый файл построчно и помещать каждую строку в соответствующие переменные. Я использую sparkfun pro micro, который является подделкой arduino pro micro. pro micro подключается через USB
Я видел, как люди используют SD-библиотеку, но не знаю, сработает ли она в моей ситуации, потому что я читаю напрямую с компьютера, а не с SD-карты. Это правильный подход или есть дополнительная/альтернативная библиотека, которую мне нужно использовать?
@BoatHouse, 👍1
Обсуждение2 ответа
Лучший ответ:
Вы можете сделать следующее:
- Читать посимвольно и копировать во временный буфер максимальной длиной в одну строку.
- Когда вы анализируете символ конца строки, вы начинаете анализировать (полную) строку в буфере.
- В этом синтаксическом анализе строки (предпочтительно отдельной функцией) вы анализируете строку, используя функции преобразования строки для ввода типа, такие как
atoi
(строка в промежуточный элемент) и т. д. Также вы можете использовать функцию Cstrtok
, чтобы разбить строку на основе символа (например, запятой). - После синтаксического анализа строки очистите буфер (вы его уже обработали) и продолжайте заполнять буфер снова, пока он не заполнится.
- Не забудьте проверить конец файла.
Можно ли это сделать через библиотеку SD?, @BoatHouse
Нет. Как я уже упоминал в своем комментарии к вашему вопросу, все, что у вас есть, это Serial. Вы можете только прочитать то, что происходит на ПК, чтобы отправить его на Arduino., @Majenko
Как говорит Маженко, только Serial. В библиотеке SD (https://www.arduino.cc/en/Reference/FileRead) есть функции для чтения либо по одному, либо заранее определенное количество, в обоих случаях это не связано с концом строки, поэтому вам нужно функции синтаксического анализа C., @Michel Keijzers
Arduino не может считать данные с ПК.
Вместо этого ПК должен отправлять данные на Arduino, а Arduino должен анализировать (интерпретировать) эти данные.
Вам нужны две вещи:
- Программное обеспечение, работающее на ПК, которое отправляет содержимое файла на Arduino по последовательному порту.
- Программное обеспечение на Arduino, которое принимает поток данных, поступающий через последовательный порт, и что-то с ним делает.
Это ничем не отличается от обработки команд, которые кто-то набирает вручную с помощью Serial Monitor, просто они, как правило, поступают намного быстрее, когда ПК отправляет их из файла.
- Библиотека FastLED: Как настроить яркость одного пикселя в абсолютном масштабе?
- Адресная RGB-полоса работает по отдельности, но не может настроить все светодиоды на полностью белый цвет.
- FastLED fill_rainbow - Неожиданный красный пиксель
- Быстродействующий массив fill_solid
- Управление светодиодной лентой с помощью ИК-контроллера с помощью Arduino
- Что сделать, чтобы увеличить количество светодиодов, которые можно запитать с помощью pro micro?
- RGB светодиодная лента 100м.
- 7-сегментный дисплей с WS2312B и FastLED
У вас есть сериал. Это все, что у вас есть. Прочитайте данные, проанализируйте их. На ПК используйте какое-нибудь программное обеспечение для отправки файла (например, Putty)., @Majenko