Proyecto Sonido y distancia

Hola, tengo un proyecto que no anda bien. Estoy usando un parlante, un DFPlayer y el sensor ultrasonico, mi idea es hacer que suene una canción y que el volumen disminuya a medida que la distancia disminuye tambien. Este es mi código, Pd= no tengo mucha expeciencia usando arduino.

#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>
SoftwareSerial mySoftwareSerial(10,11);
DFRobotDFPlayerMini myDFPlayer;

/*Ultrasonido HC-SR04/
int distancia;
int duracion;
int trig=8,echo=6;
void setup()
{

/DFPlayer Mini/
pinMode(trig,OUTPUT);/trig.activación del pin 8 como salida: para el pulso ultrasónico/
pinMode(echo,INPUT);/echo.activación del pin 6 como entrada: tiempo del rebote del ultrasonido/
myDFPlayer.begin(mySoftwareSerial);
mySoftwareSerial.begin(9600);
Serial.begin(115200);
Serial.println(“Hola”);
myDFPlayer.volume(30);/Volumen maximo/
myDFPlayer.play(005);
delayMicroseconds(100);
}

void loop(){
/ultrasonido/
digitalWrite(trig,LOW); /* Por cuestión de estabilización del sensor*/
delayMicroseconds(5);
digitalWrite(trig, HIGH); /* envío del pulso ultrasónico*/
delayMicroseconds(10);
duracion=pulseIn(echo, HIGH);
distancia= duracion/ (29*2);/Distancia en cm/
Serial.println(distancia);
delayMicroseconds(10);
if (distancia >=200) { //Mayor o igual a 2m
myDFPlayer.volume(30);
delayMicroseconds(1);
}
if (distancia <=199 || distancia >=150) { //1.99m hasta
myDFPlayer.volume(25);
delayMicroseconds(1);
}
if (distancia<=149 || distancia >=110) {
myDFPlayer.volume(20);
delayMicroseconds(1);
}
if (distancia<=109 || distancia >=70) {
myDFPlayer.volume(15);
delayMicroseconds(1);
}
if (distancia<= 69 || distancia >=40) {
myDFPlayer.volume(10);
delayMicroseconds(1);
}
if (distancia<=39) {
myDFPlayer.volume(5);
delayMicroseconds(1);
}

}

Se me escucha como cortada la canción y aparte no hace bien lo de disminuir el volumen se queda en un nivel y ya, ojalá alguien me pueda ayudar, gracias.

Moderador:
Hola, bienvenido al foro Arduino.
En la sección proyectos tienes estos dos hilos que debiste haber leído antes de postear

Como tu consulta es para otra sección lo muevo a Software.
Los códigos se postean usando etiquetas. Edita!
Normas del foro

Están mal las condiciones, estás usando "or" en vez de "and" por ello el funcionamiento errático, una condición se cumple múltiples veces, pero la combinación de condiciones es lo que segmenta el comportamiento.