@Игорь К.,я не знаю как вы это поймете. В моем понимании - при старте микроконтроллера D8 (GPIO15) должно быть притянуто к земле, иначе (при высоком уровне) контроллер просто не стартует, потому что наличие высокого уровня на D8 говорит, что контроллер должен загружаться с SD-карты что естественно не пройдет. После того как контроллер запустился он переключает D8 на вывод поднимает на нем высокий уровень - запрет работы SPI - устройство не выбрано. Далее в момент инициализации карты и чтения с нее данных D8 AKA GPIO15 AKA CS AKA SS включается в LOW, разрешая передачу по шине SPI. Передача закончилась - уровень опять поднимается в HIGH - запрет работы SPI.
Всем эти и занимаются библиотеки SD.h и SPI.h
Получается, что у вас возможно не работает D8 на микроконтроллере (сгорел например). Где-то внутри чипа он притянут к 0 - иначе бы не стартовал микроконтроллер, но на ножку D8 это не передается (или плохой контакт между пином контроллера и пином шилда) - при чтении SD-карты он не устанавливается в 0, чтобы разрешить карте обмен данными. В то же время притягивание внешним резистором 10к ножки к нулю разрешает работу карты на постоянной основе. И файлы начинают считываться.
Такая же картинка вырисовывается?
Увидеть все это можно наверное только на дорогом анализаторе сигналов...
А вы что - покупаете микроконтроллеры не "пачкой", а по одному? И если с ним что-то не так вы еще месяц ждете следующего?
Я обычно сразу беру по 5-10 штук - благо они копеечные, чтобы была возможность оперативно заменить предположительно сгоревший и поэкспериментировать с другим. Советую взять на вооружение.
Но все это никак не решается, почему у вас нет перебора эффектов с SD-карты а "крутится" постоянно один.
Что-то отвалилось в скрипте / в скетче? У кого-нибудь еще такая проблема наблюдается?