From 5cbe653063db5a4da4d1b3fdc2e99cc9f252d835 Mon Sep 17 00:00:00 2001 From: Stefan Ostermann Date: Thu, 12 Sep 2024 00:01:58 +0200 Subject: [PATCH] Fixed SDCard / RFID on off --- platformio.ini | 2 +- src/globals.h | 2 +- src/main.cpp | 42 ++++++++++++++++++++++-------------------- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/platformio.ini b/platformio.ini index d46a288..8ce05c9 100644 --- a/platformio.ini +++ b/platformio.ini @@ -9,7 +9,7 @@ ; https://docs.platformio.org/page/projectconf.html [env:d1_mini32] -platform = espressif32 +platform = platformio/espressif32@~6.8.0 board = wemos_d1_mini32 framework = arduino lib_deps = diff --git a/src/globals.h b/src/globals.h index 91c78ea..bce20aa 100644 --- a/src/globals.h +++ b/src/globals.h @@ -85,7 +85,7 @@ const String startup_sound = "start.mp3"; const String mapping_file = "/mapping.txt"; -const String progress_file = "/progress.txt"; +const String progress_file = "progress.txt"; std::map rfid_map; diff --git a/src/main.cpp b/src/main.cpp index 9f946c7..af51aaf 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -108,33 +108,35 @@ void activateSD() { if (SDActive) return; - digitalWrite(CS_SDCARD, LOW); + if (!SD.begin(CS_SDCARD)) { Serial.println("SD initialization failed!"); - while (1) - ; } SDActive = true; } void deactivateSD() { - //SD.end(); - digitalWrite(CS_SDCARD, HIGH); - SDActive = false; + if (SDActive) { + digitalWrite(CS_SDCARD, HIGH); + SDActive = false; + } } void activateRFID() { - digitalWrite(CS_RFID, LOW); + SPI.begin(-1, -1, -1, CS_RFID); + rfid.PCD_Init(CS_RFID, RST_RFID); RFIDActive = true; } void deactivateRFID() { - digitalWrite(CS_RFID, HIGH); - RFIDActive = false; + if (RFIDActive) { + digitalWrite(CS_RFID, HIGH); + RFIDActive = false; + } } // Make size of files human readable @@ -219,8 +221,6 @@ void playSongByName(String song) deactivateRFID(); activateSD(); playFile(mp3File.c_str()); - activateRFID(); - deactivateSD(); } void playSongByPath(String path) @@ -524,7 +524,10 @@ void setup() pinMode(CS_RFID, OUTPUT); pinMode(CS_SDCARD, OUTPUT); - deactivateRFID(); + digitalWrite(CS_RFID,HIGH); + digitalWrite(CS_SDCARD,HIGH); + RFIDActive = false; + SDActive = false; Serial.print("Initializing SD card..."); @@ -555,14 +558,14 @@ void setup() } - deactivateSD(); - activateRFID(); - Serial.println("RFID"); + //deactivateSD(); + //activateRFID(); + //Serial.println("RFID"); // Init MFRC522 // Init SPI bus - SPI.begin(-1, -1, -1, CS_RFID); - rfid.PCD_Init(CS_RFID, RST_RFID); + //SPI.begin(-1, -1, -1, CS_RFID); + //rfid.PCD_Init(CS_RFID, RST_RFID); /* somehow this test stops rfid from working! if (rfid.PCD_PerformSelfTest()) @@ -726,9 +729,6 @@ String getStartupSoundDir() { void loop() { - deactivateRFID(); - activateSD(); - if (audio.isRunning()) { if (asyncStop) @@ -830,6 +830,8 @@ void loop() { readRFID(); } + deactivateRFID(); + activateSD(); } if (loopCounter % VOLTAGE_LOOP_INTERVAL == 0)