Thank you sir.
Now it looks like this.
const byte led1 = 13; // LED pin NORMAL PIN2 BUT 13 FOR TEST
const byte trigger= 6; // PIR sensor pin SENSOR REPLACED BY TRIGGER
const byte echo = 5; // Pin to echo //ADDED FROM DISTANCE CODE
bool isActivated = false;
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#include <PCM.h> //ADDED FROM DISTANCE CODE
#define MIN_DISTANCE 30 //ADDED FROM DISTANCE CODE
unsigned long responsetime; //ADDED FROM DISTANCE CODE
unsigned long distance; //ADDED FROM DISTANCE CODE
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 (3000); //DELAY TIME FOR DEVICE TO START UP TO AVOID ERRORS
pinMode(led1, OUTPUT); // set led pin as output
pinMode(trigger, INPUT); // set sensor pin as input SENSOR REPLACED BY TRIGGER
pinMode (trigger, OUTPUT); //ADDED FROM DISTANCE CODE
pinMode (echo, INPUT); //ADDED FROM DISTANCE CODE
pinMode (led1, OUTPUT); //ADDED FROM DISTANCE CODE
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(2);
}
void loop() {
digitalWrite (trigger, HIGH); // We send a 10 microsecond pulse //ADDED FROM DISTANCE CODE
delayMicroseconds (10); //ADDED FROM DISTANCE CODE
digitalWrite (trigger, LOW); //ADDED FROM DISTANCE CODE
responsetime = pulseIn (echo, HIGH); // And we wait for a pulse back //ADDED FROM DISTANCE CODE
distance = responsetime / 58; // Distance calculation in cm //ADDED FROM DISTANCE CODE
if (distance <MIN_DISTANCE) {
digitalWrite (led1, HIGH);
delay (35);
digitalWrite (led1, LOW);
if ( isActivated ) {
// blink led
if ( millis() - lastTime >= blinkTime ) {
lastTime = millis();
digitalWrite(led1, !digitalRead(led1));
}
// 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(trigger);
if (pirSensor == HIGH) {
isActivated = true;
startTime = millis();
Serial.println("Sensor Activated");
Serial.println("DFPlayer Working...");
myDFPlayer.play(1);
}
}
}
}
The LED lights up when hold my hand in front of sensor. I know (proberly) it have something to do with this, as delay block from anything else?
if (distance <MIN_DISTANCE) {
digitalWrite (led1, HIGH);
delay (35);
digitalWrite (led1, LOW);