Есть: платформа Arduino
MP3 модуль как в этой статье (подключён к Arduino так же как в статье (через резисторы 1кОм)):
https://lesson.iarduino.ru/page/urok-17 ... k-arduino/
Пироэлектрический инфракрасный (PIR) датчик движения вот такой:
http://arduino-diy.com/arduino-piroelek ... dvizheniya
Сверодиоды.
Задача: Сделать что-то вроде свето-музыки. Чтобы при срабатывании датчика движения начинали моргать светодиоды и с MP3 модуля воспроизводился записанный заранее трек.
Проблема: Необходимо, чтобы Arduino ОДНОВРЕМЕННО запускала трек и мигала диодами. Поиски в гугле привели меня к функции millis, которая позволяет производить несколько действий одновременно, однако все приводимые примеры идут без датчика, а просто по времени и я в силу неопытности не смог их переложить на свой случай.
Прикладываю свой (заведомо не правильный) код через delay. Подскажите пожалуйста, как данную задачу разрешить?
Схему приложить не получилось, на этом компьютере её негде нарисовать. Думаю по коду должно быть понятно что да как.
Спойлер
#include <SoftwareSerial.h>#include <DFPlayer_Mini_Mp3.h>
int led1 = 9;
int led2 = 10;
int brightness1 = 0;
int fadeAmount1 = 6;
int brightness2 = 255;
int fadeAmount2 = 8;
void setup () {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Serial.begin (9600);
mp3_set_serial (Serial);
delay (100);
mp3_set_volume (10);
}
void loop ()
{
if(analogRead(A0)>500)
{
mp3_play (2);
analogWrite(led1, brightness1);
fadeAmount1 = 10 + fadeAmount1;
brightness1 = brightness1 + fadeAmount1;
if (brightness1 == 0 || brightness1 == 255)
{
fadeAmount1 = -fadeAmount1 ;
delay(10);
}
analogWrite(led2, brightness2);
fadeAmount2 = 5 + fadeAmount2;
brightness2 = brightness2 + fadeAmount2;
if (brightness2 == 0 || brightness2 == 255)
{
fadeAmount2 = -fadeAmount2 ;
delay(30);
}
delay(30);
}
else
{
pinMode(led1, LOW);
pinMode(led2, LOW);
}
}


