#include <Wire.h>
#include <SPIFFS.h>
#include <FS.h>
#define BUZZER_PIN 0 // Pin pro piezo buzzer
// Deklarace funkcí
void playTone(float frequency, int duration);
void playAudioFromCSV(void* parameter);
TaskHandle_t audioTaskHandle = NULL;
void setup() {
Serial.begin(4800);
delay(2000);
Serial.println("Start programu");
pinMode(BUZZER_PIN, OUTPUT);
if (!SPIFFS.begin(true)) {
Serial.println("SPIFFS mounting failed!");
return;
}
Serial.println("Spouštím audio přehrávání...");
// Vytvoření tasku pro přehrávání zvuku na druhém jádru
xTaskCreatePinnedToCore(
playAudioFromCSV, // Funkce úkolu
"AudioTask", // Název úkolu
10000, // Velikost stacku
(void*)"/input.csv", // Předání názvu souboru jako void* argument
1, // Priorita
&audioTaskHandle, // Handle úkolu
0 // Jádro 0
);
}
void playTone(float frequency, int duration) {
Serial.print("Přehrávám tón na frekvenci: ");
Serial.println(frequency);
int period = 1000000 / frequency; // Perioda tónu v mikrosekundách
int halfPeriod = period / 2;
int endTime = millis() + duration;
while (millis() < endTime) {
digitalWrite(BUZZER_PIN, HIGH);
delayMicroseconds(halfPeriod);
digitalWrite(BUZZER_PIN, LOW);
delayMicroseconds(halfPeriod);
}
}
void playAudioFromCSV(void* parameter) {
const char* fileName = (const char*)parameter;
Serial.print("Otevírám soubor: ");
Serial.println(fileName);
File file = SPIFFS.open(fileName, "r");
if (!file) {
Serial.println("Nepodařilo se otevřít CSV soubor");
vTaskDelete(NULL);
return;
}
Serial.println("Soubor otevřen. Čtení...");
bool firstLine = true;
while (file.available()) {
String line = file.readStringUntil('\n');
if (firstLine) {
firstLine = false;
continue;
}
Serial.println("Načtená řádka: " + line);
String frequencyStr = line.substring(line.indexOf(',') + 1, line.lastIndexOf(','));
int frequency = frequencyStr.toInt();
Serial.print("Frekvence: ");
Serial.println(frequency);
if (frequency > 0) {
playTone(frequency, 500);
}
}
file.close();
Serial.println("Konec souboru.");
vTaskDelete(NULL);
}
void loop() {
delay(1000);
}
Loading
esp32-c3-devkitm-1
esp32-c3-devkitm-1