I have two programs that are both loops. One program sweeps a micro servo back and forth. The other plays tones on a buzzer. Is there a way to combine both programs into one loop that plays the buzzer and moves the servo simultaneously? I have attached the code below.
servo code:
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
for (pos = 45; pos <= 135; pos += 5) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15 ms for the servo to reach the position
}
for (pos = 135; pos >= 45; pos -= 5) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15 ms for the servo to reach the position
}
}
Buzzer code:
// Set this to be the pin that your buzzer resides in. (Note that you can only have one buzzer actively using the PWM signal at a time).
int tonePin = 6;
void setup() {
}
void midi() {
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 220, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 220, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 130, 106.68095625);
delay(107.758541667);
delay(538.792708333);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(323.275625);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(323.275625);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(538.792708333);
tone(tonePin, 146, 106.68095625);
delay(107.758541667);
delay(323.275625);
tone(tonePin, 146, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 146, 106.68095625);
delay(107.758541667);
delay(323.275625);
tone(tonePin, 146, 106.68095625);
delay(107.758541667);
delay(538.792708333);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 220, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 220, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 130, 106.68095625);
delay(107.758541667);
delay(323.275625);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(323.275625);
tone(tonePin, 220, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 220, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 130, 106.68095625);
delay(107.758541667);
delay(323.275625);
tone(tonePin, 130, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 130, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(323.275625);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(323.275625);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 146, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 146, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 146, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 146, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 146, 106.68095625);
delay(107.758541667);
delay(538.792708333);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 220, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 220, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 164, 106.68095625);
delay(107.758541667);
delay(107.758541667);
tone(tonePin, 130, 106.68095625);
delay(107.758541667);
}
void loop() {
// Play midi
midi();
}