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:
- Doos gaat open,
- geluid van een panther die grolt
- Een servo motor die een liftje naar boven brengt met daarop een parfum bottle in de vorm van een panter hoofd
- liftje blijft een 10 tal seconden staan en gaat dan terug naar beneden
- 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;
}



