вывод текстовой информации с карты MicroSD Card Adapter на дисплей OLED I2C 128х64 с Arduino Nano

Ded_Mazauka
Offline
Зарегистрирован: 25.12.2018

Приветствую комрады! Нужна помощь!  необходимо вывести название файлов  с карты 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();
}

 

b707
Offline
Зарегистрирован: 26.05.2017

кому необходимо? Вам? - выводите, мешать не будем.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Пример вывода оглавления в монитор порта есть в примере библиотеки SD.

И да, пока не прочитаете тему "ПЕСОЧНИЦА. ДЛЯ ВСЕХ НОВИЧКОВ", даже не пытайтесь что-то постить. Ваш код всё равно никто читать не будет.

Ded_Mazauka
Offline
Зарегистрирован: 25.12.2018

Спасибо ЕвгенийП, буду разбираться, я новичок. 

#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();
}