This is my wild guess for the code, it can verify/upload but nothing happends:
const byte led = 2; // LED pin
const byte sensor = 9; // PIR sensor pin
bool isActivated = false;
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
const unsigned long pauseTime = 6000; // how long between PIR detections
const unsigned long blinkTime = 100; // how fast to blink led
unsigned long startTime; // time PIR triggered
unsigned long lastTime; // last time we toggled led
void setup() {
delay (5000);
pinMode(led, OUTPUT); // set led pin as output
pinMode(sensor, INPUT); // set sensor pin as input
mySoftwareSerial.begin(9600);
Serial.begin(115200);
Serial.println(F("\nInitializing DFPlayer..."));
//Use softwareSerial to communicate with MP3
if (!myDFPlayer.begin(mySoftwareSerial)) {
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while (true);
}
Serial.println(F("DFPlayer Mini online."));
//Set volume value (From 0 to 30)
myDFPlayer.volume(30);
}
void loop() {
if ( isActivated ) {
// blink led
if ( millis() - lastTime >= blinkTime ) {
lastTime = millis();
digitalWrite(led, !digitalRead(led));
}
// check if we have been active long enough
if ( millis() - startTime >= pauseTime ) {
isActivated = false; // force PIR to trigger again or not
}
}
if ( isActivated == false ) {
// check PIR
int pirSensor = digitalRead(sensor);
if (pirSensor == HIGH) {
isActivated = true;
startTime = millis();
Serial.println("Sensor Activated");
Serial.println("DFPlayer Working...");
myDFPlayer.play(1);
}
}
}
Its copied from this working code where an led lights up when distance is <30cm
#include <PCM.h>
#define MIN_DISTANCE 30
int echo = 5; // Pin to echo
int trigger = 6; // Pin for trigger
int led1 = 13; // led onboard for test
unsigned long responsetime;
unsigned long distance;
void setup ()
{
pinMode (trigger, OUTPUT);
pinMode (echo, INPUT);
pinMode (led1, OUTPUT);
}
void loop ()
{
digitalWrite (trigger, HIGH); // We send a 10 microsecond pulse
delayMicroseconds (10);
digitalWrite (trigger, LOW);
responsetime = pulseIn (echo, HIGH); // And we wait for a pulse back
distance = responsetime / 58; // Distance calculation in cm
if (distance <MIN_DISTANCE) {
digitalWrite (led1, HIGH);
delay (35);
digitalWrite (led1, LOW);
}
}
I appreciate your time - im still trying to learn the different styles of coding, but im really lost when its not working ![]()