// подключаем библиотеку для работы SPI #include // подключаем библиотеку для работы c картой microSD #include // подключаем библиотеку для воспроизведения музыки с помощью Arduino M0 #include // даём разумное имя пинам к которым подключены светодиоды #define LED1_PIN 8 #define LED2_PIN 9 // даём разумное имя пина к которому подключен силовой ключ #define MOSFET_PIN 11 // даём разумное имя для пина к которому подключен // инфракрасный датчик препятствий (infrared sensor barriers) #define ISB_PIN 12 void setup() { // начало работы с SD-картой памяти // передаём номер пина подключенного к линии CS SD-карты while (!SD.begin(4)) { // если связи нет, ждём 1 секунду // процесс повторяется в цикле // пока не появится положительный ответ от SD-карты delay(1000); } // настраиваем пины светодиодов в режим выхода pinMode(LED1_PIN, OUTPUT); pinMode(LED2_PIN, OUTPUT); // гасим светодиоды digitalWrite(LED1_PIN, LOW); digitalWrite(LED2_PIN, LOW); // настраиваем пин силового ключа в режим выхода pinMode(MOSFET_PIN, OUTPUT); // подаём низкий уровень на силовой ключ digitalWrite(MOSFET_PIN, LOW); } void loop() { // если на выходе датчика логический 0 if (!digitalRead(ISB_PIN)) { // зажжём светодиоды digitalWrite(LED1_PIN, HIGH); digitalWrite(LED2_PIN, HIGH); // подаём высокий уровень на силовой ключ digitalWrite(MOSFET_PIN, HIGH); // вызываем дважды функцию воспроизведения трека playMusic(); playMusic(); // гасим светодиоды digitalWrite(LED1_PIN, LOW); digitalWrite(LED2_PIN, LOW); // подаём низкий уровень на силовой ключ digitalWrite(MOSFET_PIN, LOW); } } void playMusic() { // начинаем работу с библиотекой AudioZero // выставляем частоту воспроизведения AudioZero.begin(2*44100); // открываем wave-файл с карточки microSD File myFile = SD.open("scream.wav"); // если файл открывается, проигрываем его if (myFile) { AudioZero.play(myFile); } // прекращаем работу с библиотекой AudioZero AudioZero.end(); }