Evil Doll programming help for noob

I’m trying to control a dolls head using a servo and PIR sensor. I put two red LEDs in the eye sockets. I am able to get the PIR sensor to control the servo but am clueless as to how to include the breathing LED code to activate with the PIR sensor as well. I wanted to connect a speaker to this project as well so that it would scream when motion activated, but I’m going to wait for that.

Also, I am completely new with Arduino. I understand only basic sketches. I have no idea how to combine sketches.

Post the sketches you have now. (both of them).

They currently work as you desire/intend?

Audio might be more complicated.. and will for sure require more hardware. (possibly speaker, amp, or some sort of wav/mp3 playback pcb... DFPlayer, SoundFX board from Adafruit..etc)

Don't you think it would be easier to help add something to your code if we could actually see the code? Your programming knowledge might be slim but this is just common sense.

This is the sketch that I used to control the servo using the PIR sensor.

#include <Servo.h>

Servo myservo;  //creates a servo object
                         //a maximum of eight servo objects can be created

int pos = 0;        //variable to store servo position

//amount of time we give the sensor to calibrate(10-60 secs according to the datasheet)

int calibrationTime = 30;

//the time when the sensor outputs a low impulse
long unsigned int lowIn;        

//the amount of milliseconds the sensor has to be low
//before we assume all motion has stopped
long unsigned int pause = 5000; 

boolean lockLow = true;
boolean takeLowTime; 

int pirPin = 12;            //digital pin connected to the PIR's output
int pirPos = 13;           //connects to the PIR's 5V pin

void setup(){
  myservo.attach(4);    //attaches servo to pin 4
  Serial.begin(9600);    //begins serial communication
  pinMode(pirPin, INPUT);
  pinMode(pirPos, OUTPUT);
  digitalWrite(pirPos, HIGH);

  //give the sensor time to calibrate
  Serial.println("calibrating sensor ");
  for(int i = 0; i < calibrationTime; i++){
    Serial.print(calibrationTime - i);
  //while making this Instructable, I had some issues with the PIR's output
  //going HIGH immediately after calibrating
  //this waits until the PIR's output is low before ending setup
  while (digitalRead(pirPin) == HIGH) {
  Serial.print("SENSOR ACTIVE");

void loop(){

  if(digitalRead(pirPin) == HIGH){  //if the PIR output is HIGH, turn servo

    /*turns servo from 0 to 180 degrees and back
    it does this by increasing the variable "pos" by 1 every 5 milliseconds until it hits 180
    and setting the servo's position in degrees to "pos" every 5 milliseconds
    it then does it in reverse to have it go back
    to learn more about this, google "for loops"
    to change the amount of degrees the servo turns, change the number 180 to the number of degrees you want it to turn
    for(pos = 0; pos < 180; pos += 1)  //goes from 0 to 180 degrees
    {                                                 //in steps of one degree
      myservo.write(pos);                   //tells servo to go to position in variable "pos"
      delay(5);                                   //waits for the servo to reach the position
    for(pos = 180; pos>=1; pos-=1)    //goes from 180 to 0 degrees
      myservo.write(pos);                  //to make the servo go faster, decrease the time in delays for
      delay(5);                                  //to make it go slower, increase the number.
      //makes sure we wait for a transition to LOW before further output is made
      lockLow = false;           
      Serial.print("motion detected at ");
      Serial.println(" sec");
    takeLowTime = true;

  if(digitalRead(pirPin) == LOW){      

      lowIn = millis();             //save the time of the transition from HIGH to LOW
      takeLowTime = false;    //make sure this is only done at the start of a LOW phase
    //if the sensor is low for more than the given pause,
    //we can assume the motion has stopped
    if(!lockLow && millis() - lowIn > pause){
      //makes sure this block of code is only executed again after
      //a new motion sequence has been detected
      lockLow = true;                       
      Serial.print("motion ended at "); //output
      Serial.print((millis() - pause)/1000);
      Serial.println(" sec");

This is the code for the breathing LEDs.

File name: 08_breathingLed.ino
Description: PWM control the LED gradually from dark to 
             brighter, then from brighter to dark
Website: www.uctronics.com 
E-mail: sales@uctronics.com 
Author: Lee
Date: 2017/01/16
int ledpin=11; //definition digital 11 pins as pin to control the LED

void setup ()
  pinMode(ledpin,OUTPUT); //Set digital 11 port mode, the OUTPUT for the output
void loop()
   for (int a=0; a<=255;a++)  //Loop, PWM control of LED brightness increase
     analogWrite(ledpin,a);   //PWM output value a (0~255)
     delay(15);                //The duration of the current brightness level. 15ms           
   for (int a=255; a>=0;a--)  //Loop, PWM control of LED brightness Reduced
     analogWrite(ledpin,a);   //PWM output value a (255~0)
     delay(15);                //The duration of the current brightness level. 15ms 
   delay(100);                //100ms delay

I have no idea how to combine the two sketches so that the sensor will activate both the LEDs and the servo at the same time.

Yee Gahds.... The most obvious thing is to learn how to get rid of the 'Delay()'s {hint: study 'blinkwithoutDelay'}. once you get that working, in both sketches, sit down and make a list of what resources each sketch is using. compare the lists and see what you need to do to replace a common resource in one of the sketches. when you get that figured out, start copying sections of one sketch into the same section of the other sketch. compile, debug, re-compile, test, debug,,,,, and so on.