Problemen met mijn project

Hallo iedereen,

Hopende op jullie hulp. Vind het leuk om te werken met arduino maar zou het nu ook wel graag werkende krijgen.
Ik ben een replica project aan het maken afkomstig van de film sex panther
kort samengevat:

  1. Doos gaat open,
  2. geluid van een panther die grolt
  3. Een servo motor die een liftje naar boven brengt met daarop een parfum bottle in de vorm van een panter hoofd
  4. liftje blijft een 10 tal seconden staan en gaat dan terug naar beneden
  5. wanneer deksel van de doos naar beneden gaat moet hij klaar staan voor de volgende keer dat de klep terug open gaat

Wat lukt: het omhoog komen van de lift enz

wat lukt niet: geluid krijgen uit mijn DFplayer (geen echte) en elke keer ik het deksel sluit(dus de V-15-1C25 switch induw) komt de lift opnieuw naar boven

Is er iemand die mij kan helpen?

Het programma

#include <DFRobotDFPlayerMini.h>

#include <SoftwareSerial.h>

#include <Servo.h>

int time = 1000; //tijd in millisec tussen op en neer gaan
int music = 3000; //tijd in millisec dat de muziek speelt
int graden = 180; //totale draaibeweging van de servo
int snelheid = 10; //snelheid van op en neer gaan. hoe kleiner het getal hoe sneller (milliseconden per graad)
//bovenstaande parameters zijn aanpasbaar

int mp3 = 0;
int var = 0;
int pos = 0;
const int switchpin = 2;
int switchstate = 0;
int lastswitchstate = HIGH;

Servo servo_9;

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);

void setup()
{
mySoftwareSerial.begin(9600);
myDFPlayer.begin(mySoftwareSerial);

servo_9.attach(9);
pinMode(switchpin, INPUT_PULLUP);

servo_9.write(pos);

Serial.begin (9600);
myDFPlayer.volume(10);
myDFPlayer.play(1);

}

void loop()
{
while (mp3 < 1){
mp3++;
delay(music);
myDFPlayer.stop();
}

while ( var <= graden*2 ){

switchstate = digitalRead(switchpin);

if (switchstate != lastswitchstate){
lastswitchstate = switchstate;

if (switchstate == 0){

for (pos = 0; pos <= graden; pos += 1) {
servo_9.write(pos);

var++;

delay(snelheid);
}

delay(time);

for (pos = graden; pos >= 0; pos -= 1) {
servo_9.write(pos);

var++;

delay(snelheid);
}

}

}

}
var = 0;

}

Kun je voortaan de code-tags gebruiken om je sketch te laten zien en kun je meer links geven ?
De code-tags is de eerste knop links-boven het tekstveld, "< / >"

Stukje uit de film "The Legend Of Ron Burgundy": Anchorman - Sex panther - YouTube

Kun je een link geven naar de DFplayer module ? Bij voorkeur een link naar waar je het hebt gekocht.
En een link naar de library die je gebruikt. Deze ? GitHub - DFRobot/DFRobotDFPlayerMini: Arduino library for DFPlayer.
Kun je een link geven naar je servo motor ? Ik zie die niet in de foto's. Ik hoop niet dat je een extra sterke servo motor hebt gekocht, want dan heb je een voeding van een paar ampère nodig.

Als je een bericht met foto's als bijlagen hebt geplaatst, dan weet je de link naar die bijlagen. Je kunt dan je op "Modify" klikken en die links als 'img' in je bericht zetten. Dan zijn de foto's zichtbaar en hoeven ze niet meer stuk voor stuk geopend te worden.
Je kunt nu alsnog naar je eerste post gaan en "Modify" kiezen en die plaatjes in je bericht zetten.

Waarom gebruik je twee Arduino boards ?
Als je een Arduino Leonardo gebruikt of een (Pro) Micro, dan heb je een vrije hardware serial port beschikbaar. Dat is veel beter dan SoftwareSerial. Als je dan ook nog voldoende stroom hebt om de stroompiek van de servo motor op te vangen, dan kan het met één Arduino board.

De 5V pin is een uitgang. Gebruik je batterijen om de Arduino Nano van stroom te voorzien via de 5V pin ? Wat voor batterijen zijn dat ?

Naar je sketch heb ik nog niet gekeken omdat je teveel mogelijke problemen bij elkaar hebt. Ik kan er zo tien opnoemen.

Begin eens met de DFminiPlayer.
Neem een Arduino board, bijvoorbeeld een Arduino Uno. Haal alles er af (vooral de servo motoren) en sluit de DFminiPlayer aan.
Als je het aan elkaar gesoldeerd hebt, dan kun eventueel de servo motoren zo laten, maar gebruik vooral geen servo.attach(), want dan gaat de servo motor die stroom piek vragen van misschien wel 500 mA.
Gebruik de USB verbinding om het van stroom te voorzien, geen batterijen.
Gebruik een eenvoudig voorbeeld: DFRobotDFPlayerMini/GetStarted.ino at master · DFRobot/DFRobotDFPlayerMini · GitHub
Die voorbeeld-sketch test of myDFPlayer.begin() is gelukt. Dat heb jij in je sketch weggelaten.
Als het door de myDFPlayer.begin() heen komt, probeer dan een mp3-bestand te maken dat afgespeeld kan worden.

je doet iets vreemds met die while, en test eerst maar eens of je dfplayer werkt. zoals baudrate etc.