Muy buenas, estoy realizando un proyecto en el que un buzzer crea música y un servo mueve un muñequito como una cajita de música, solo que está funcionando al revéz.
Cuando está en silencio el muñequito baila, pero cuando ésta suena el baile se detiene, necesito ejecutar las dos funciones al tiempo, aunque pareciera que no es posible.
Si alguien me puede ayudar, se lo agradecería mucho. Aquí adjunto el código:
void loop() {
danza();
if (Serial.available()){
char melodia = Serial.read();
if (melodia == 'a'){
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, HIGH);
enlagranjadepepin();
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, LOW);
}else if (melodia == 'b'){
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, HIGH);
elcirco();
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, LOW);
}else if (melodia == 'c'){
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, HIGH);
elreloj();
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, LOW);
}else if (melodia == 'd'){
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, HIGH);
carnaval();
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, LOW);
}else if (melodia == 'e'){
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, HIGH);
navidad();
digitalWrite(ledRojo, HIGH);
digitalWrite(ledVerde, LOW);
}
}
}
void setup() {
Serial.begin(9600);
Serial.println("Proyecto caja de música");
Serial.println("Por Juan José Medina y Laura Montenegro");
Serial.println();
Serial.println("Eliga la melodia que desee escuchar ingresando su letra correspondiente");
Serial.println("a. En la granja de Pepín");
Serial.println("b. El circo ");
Serial.println("c. El reloj ");
Serial.println("d. Carnaval ");
Serial.println("e. Navidad ");
pinMode(ledRojo, OUTPUT);
pinMode(ledVerde, OUTPUT);
digitalWrite(ledRojo, HIGH);
baile.attach(7);
}
void danza(){
for(ang = 0; ang < 180; ang++){
baile.write(ang);
delay(20);
}
for(ang = 180; ang > 0; ang--){
baile.write(ang);
delay(20);
}
}
Gracias, buenas noches