Help with simple combination of codes.

Fellow Arduinoists,
I’ve got an Arduino Duemilanove and arduino 0018 installed. I’m just looking for someone to help and possibly explain how to combine these two codes. The first one is as follows and is used for a laser tripwire with a photoresistor.

void setup() {
pinMode(4, OUTPUT);
pinMode(13, OUTPUT);

void loop(){
digitalWrite(4, HIGH);
if(analogRead(0) < 750){
digitalWrite(13, HIGH);
} else{
digitalWrite(13, LOW);

This next one is for a “melody” that I’d like to combine to later change the melody to a more alarm-like sound.

 Plays a melody 
 * 8-ohm speaker on digital pin 8
 created 21 Jan 2010
 by Tom Igoe 
 #include "pitches.h"

// notes in the melody:
int melody[] = {

// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
  4, 8, 8, 4,4,4,4,4 };

void setup() {
  // iterate over the notes of the melody:
  for (int thisNote = 0; thisNote < 8; thisNote++) {

    // to calculate the note duration, take one second 
    // divided by the note type.
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
    int noteDuration = 1000/noteDurations[thisNote];
    tone(8, melody[thisNote],noteDuration);

    // to distinguish the notes, set a minimum time between them.
    // the note's duration + 30% seems to work well:
    int pauseBetweenNotes = noteDuration * 1.30;

void loop() {
  // no need to repeat the melody.

What I’d like it to do is to start sounding the melody when the wire is tripped (reads < 750) and keep sounding it until the reset button is pressed (requiring a looping melody). I’m not too advanced on the whole coding thing so any help would be appreciated, and maybe some tips on how to do it on my own next time. :wink:


digitalWrite(4, HIGH);

Why do you keep writing the same value to pin 4?

Simply paste in the melodyplaying code in setup instead of digitalWrite(13, HIGH); and also include the stuff before that setup at the top of your sketch.

haha, haven't got a clue about the pin 4 thing... there's nothing attached there. :stuck_out_tongue: The problem with that simple switch of codes is that I want it to loop around and around until the system's reset, not just play it once and turn off when the reading's more than 750. I'm not sure how and where to put it into a loop. :o I'll mess around with getting the thing to go off in the first place, then try to get the rest working. :wink: Thanks for the help.

a simple do { ... } while(true); withe the dots representing the playing code should do.