Это старая версия документа!


Эксперимент 44. Загрузка файлов в микроконтроллер

Давайте научимся загружать файлы в микроконтроллер и читать их. Считанные данные выведем на LCD дисплей. Для этого нам потребуется специальный плагин (расширение для Arduino IDE.Файл плагина можно скачать с нашего с сайта или сайта разработчика.

Теперь нужно найти папку «.arduinoIDE» по следующему пути C:\Users\<user>\.arduinoIDE (<user> это имя вашей учетной записи на компьютере). В папке создай «.arduinoIDE» новую папку с именем «plugins» и помести в нее ранее скачанный файл плагина «arduino-littlefs-upload-1.5.0.vsix».

Перезапусти Arduino IDE, создай новый скетч с кодом приведенным ниже и сохрани его. Попробуй загрузить на контроллер, на дисплее появится надпись «Failed to open file for reading» означающая, что не удалось открыть файл. Все правильно ведь мы его еще не загрузили.

Теперь создадим файл для загрузки на микроконтроллер. Для этого открой папку в которой расположен скетч, это можно сделать с помощь меню Arduino IDE:

Скетч Показать папку скетча В открывшейся папке создай новую папку с именем «data» и открой ее. Нажми правую кнопку мыши внутри папки и в открывшемся меню выбери Создать Текстовый файл Назови новый файл «for_lcd.txt», открой его с помощью «Блокнота», добавь текст «This text was read from file.», сохрани файл и закрой «Блокнот». Примечание. Рекомендуется текст в файле набрать в ручную, иначе могут возникнуть проблемы с его чтением. Кроме того можно использовать только английский алфавит.

Схема эксперимента

Рисунок 1. Монтажная схема эксперимента

Программный код эксперимента

Exp44.ino
  1. #include <LCDI2C_Multilingual.h>
  2. #include <LittleFS.h>
  3.  
  4. #define DEFAULT_I2C_ADDR 0x3F // Или 0x27 в зависимости от твоей платы IoT
  5.  
  6. LCDI2C_Generic lcd(DEFAULT_I2C_ADDR, 16, 2);
  7.  
  8. void setup() {
  9. Serial.begin(9600);
  10. Serial.println();
  11. lcd.init();
  12. lcd.setBacklight(0);
  13. lcd.clear();
  14. LittleFS.begin();
  15.  
  16. File file = LittleFS.open("/for_lcd.txt", "r");
  17. // Проверяем удалось ли открыть файл, если нет выводим сообщение
  18. if(!file){
  19. Serial.println("Failed to open file for reading");
  20. lcd.print("Failed to open file for reading");
  21. return;
  22. }
  23.  
  24. String text;
  25. // Построчно читаем файл и добавлям строки в переменную text
  26. while(file.available()) {
  27. String line = file.readStringUntil('\n');
  28. text += line;
  29. }
  30. file.close();
  31.  
  32. lcd.print(text);
  33. Serial.println(text);
  34. }
  35.  
  36. void loop() {}

В этой программе мы прочитали текст из файла и вывели его на дисплей.