вывод текстовой информации с карты MicroSD Card Adapter на дисплей OLED I2C 128х64 с Arduino Nano
- Войдите на сайт для отправки комментариев
Втр, 25/12/2018 - 01:19
Приветствую комрады! Нужна помощь! необходимо вывести название файлов с карты MicroSD Card Adapter на дисплей OLED I2C 128х64 с Arduino Nano. Ардуина считывает файлы и отправляет на куб.
скеч без дисплея
#include <string.h>
#include <SD.h>
#include <SPI.h>
Sd2Card card;
SdVolume volume;
const int chipSelect = 4;
File root;
void setup()
{
Serial.begin(57600);
pinMode(10, OUTPUT); // change this to 53 on a mega
bool sd_ok = SD.begin(4);
if (!sd_ok)
{
Serial.println("failed.");
return;
}
root = SD.open("/");
}
void sendAnimation(byte *data)
{
Serial.write(0xf3);
Serial.write(data[1]);
Serial.write(0xf4);
Serial.write(data[2]);
Serial.write(0xf5);
Serial.write(data[3]);
Serial.write(0xf2);
for (byte i = 8; i < 72; i++)
{
Serial.write(data[i]);
}
delay(makeWord(data[6], data[7]));
}
void readAnimation(File & file)
{
byte data[72];
while (file.available())
{
file.read(data, 72);
sendAnimation(data);
}
}
void loop(void)
{
File file = root.openNextFile();
if (file)
{
char *p = file.name();
char *p_dot = strchr(p, '.');
if (p_dot != NULL && strcmp(p_dot, ".DAT") == 0)
{
readAnimation(file);
}
file.close();
}
else
root.rewindDirectory();
}
кому необходимо? Вам? - выводите, мешать не будем.
Пример вывода оглавления в монитор порта есть в примере библиотеки SD.
И да, пока не прочитаете тему "ПЕСОЧНИЦА. ДЛЯ ВСЕХ НОВИЧКОВ", даже не пытайтесь что-то постить. Ваш код всё равно никто читать не будет.
Спасибо ЕвгенийП, буду разбираться, я новичок.
#include <string.h> #include <SD.h> #include <SPI.h> Sd2Card card; SdVolume volume; const int chipSelect = 4; File root; void setup() { Serial.begin(57600); pinMode(10, OUTPUT); // change this to 53 on a mega bool sd_ok = SD.begin(4); if (!sd_ok) { Serial.println("failed."); return; } root = SD.open("/"); } void sendAnimation(byte *data) { Serial.write(0xf3); Serial.write(data[1]); Serial.write(0xf4); Serial.write(data[2]); Serial.write(0xf5); Serial.write(data[3]); Serial.write(0xf2); for (byte i = 8; i < 72; i++) { Serial.write(data[i]); } delay(makeWord(data[6], data[7])); } void readAnimation(File & file) { byte data[72]; while (file.available()) { file.read(data, 72); sendAnimation(data); } } void loop(void) { File file = root.openNextFile(); if (file) { char *p = file.name(); char *p_dot = strchr(p, '.'); if (p_dot != NULL && strcmp(p_dot, ".DAT") == 0) { readAnimation(file); } file.close(); } else root.rewindDirectory(); }