Fixed SDCard / RFID on off

This commit is contained in:
Stefan Ostermann 2024-09-12 00:01:58 +02:00
parent dfea791a2f
commit 5cbe653063
3 changed files with 24 additions and 22 deletions

View File

@ -9,7 +9,7 @@
; https://docs.platformio.org/page/projectconf.html ; https://docs.platformio.org/page/projectconf.html
[env:d1_mini32] [env:d1_mini32]
platform = espressif32 platform = platformio/espressif32@~6.8.0
board = wemos_d1_mini32 board = wemos_d1_mini32
framework = arduino framework = arduino
lib_deps = lib_deps =

View File

@ -85,7 +85,7 @@ const String startup_sound = "start.mp3";
const String mapping_file = "/mapping.txt"; const String mapping_file = "/mapping.txt";
const String progress_file = "/progress.txt"; const String progress_file = "progress.txt";
std::map<String, String> rfid_map; std::map<String, String> rfid_map;

View File

@ -108,33 +108,35 @@ void activateSD()
{ {
if (SDActive) if (SDActive)
return; return;
digitalWrite(CS_SDCARD, LOW);
if (!SD.begin(CS_SDCARD)) if (!SD.begin(CS_SDCARD))
{ {
Serial.println("SD initialization failed!"); Serial.println("SD initialization failed!");
while (1)
;
} }
SDActive = true; SDActive = true;
} }
void deactivateSD() void deactivateSD()
{ {
//SD.end(); if (SDActive) {
digitalWrite(CS_SDCARD, HIGH); digitalWrite(CS_SDCARD, HIGH);
SDActive = false; SDActive = false;
}
} }
void activateRFID() void activateRFID()
{ {
digitalWrite(CS_RFID, LOW); SPI.begin(-1, -1, -1, CS_RFID);
rfid.PCD_Init(CS_RFID, RST_RFID);
RFIDActive = true; RFIDActive = true;
} }
void deactivateRFID() void deactivateRFID()
{ {
digitalWrite(CS_RFID, HIGH); if (RFIDActive) {
RFIDActive = false; digitalWrite(CS_RFID, HIGH);
RFIDActive = false;
}
} }
// Make size of files human readable // Make size of files human readable
@ -219,8 +221,6 @@ void playSongByName(String song)
deactivateRFID(); deactivateRFID();
activateSD(); activateSD();
playFile(mp3File.c_str()); playFile(mp3File.c_str());
activateRFID();
deactivateSD();
} }
void playSongByPath(String path) void playSongByPath(String path)
@ -524,7 +524,10 @@ void setup()
pinMode(CS_RFID, OUTPUT); pinMode(CS_RFID, OUTPUT);
pinMode(CS_SDCARD, OUTPUT); pinMode(CS_SDCARD, OUTPUT);
deactivateRFID(); digitalWrite(CS_RFID,HIGH);
digitalWrite(CS_SDCARD,HIGH);
RFIDActive = false;
SDActive = false;
Serial.print("Initializing SD card..."); Serial.print("Initializing SD card...");
@ -555,14 +558,14 @@ void setup()
} }
deactivateSD(); //deactivateSD();
activateRFID(); //activateRFID();
Serial.println("RFID"); //Serial.println("RFID");
// Init MFRC522 // Init MFRC522
// Init SPI bus // Init SPI bus
SPI.begin(-1, -1, -1, CS_RFID); //SPI.begin(-1, -1, -1, CS_RFID);
rfid.PCD_Init(CS_RFID, RST_RFID); //rfid.PCD_Init(CS_RFID, RST_RFID);
/* somehow this test stops rfid from working! /* somehow this test stops rfid from working!
if (rfid.PCD_PerformSelfTest()) if (rfid.PCD_PerformSelfTest())
@ -726,9 +729,6 @@ String getStartupSoundDir() {
void loop() void loop()
{ {
deactivateRFID();
activateSD();
if (audio.isRunning()) if (audio.isRunning())
{ {
if (asyncStop) if (asyncStop)
@ -830,6 +830,8 @@ void loop()
{ {
readRFID(); readRFID();
} }
deactivateRFID();
activateSD();
} }
if (loopCounter % VOLTAGE_LOOP_INTERVAL == 0) if (loopCounter % VOLTAGE_LOOP_INTERVAL == 0)