In this project we created an Christmas tree with infrared detection. When someone passes by, the sensors detects movement and the Christmas tree begins to blink and plays Christmas songs.
#include "kerstDetectie.h"
#include
#include
#include "util.h"
#include "wave.h"
AF_Wave card;
File f;
Wavefile wave; // only one!
#define redled 9
uint16_t samplerate;
int inPin = 6; // pushbutton connected to digital pin 7
int val = 0; // variable to store the read value
int relay1Pin =7;//relay pin 1 to 7
int relay2Pin =8;// relay pin to 8
int ledPin = 11; // LED connected to digital pin 13
void ls() {
char name[13];
int ret;
card.reset_dir();
putstring_nl("Files found:");
while (1) {
ret = card.get_next_name_in_dir(name);
if (!ret) {
card.reset_dir();
return;
}
Serial.println(name);
}
}
boolean playfile(char *name) {
f = card.open_file(name);
if (!f) {
putstring_nl(" Couldn’t open file"); return false;
}
if (!wave.create(f)) {
putstring_nl(" Not a valid WAV"); return false;
}
// ok time to play!
wave.play();
return true;
}
void playcomplete(char *name) {
uint16_t potval;
uint32_t newsamplerate;
playfile(name);
samplerate = wave.dwSamplesPerSec;
while (wave.isplaying) {
// you can do stuff here!
//digitalWrite(ledPin,HIGH);
digitalWrite(relay1Pin,HIGH);
digitalWrite(relay2Pin,LOW);
delay(50);
//digitalWrite(ledPin,LOW);
digitalWrite(relay2Pin,HIGH);
digitalWrite(relay1Pin,LOW);
delay(50);
}
digitalWrite(relay1Pin,HIGH);
digitalWrite(relay2Pin,HIGH);
putstring_nl("klaar met spelen");
card.close_file(f);
}
//————————–
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(relay1Pin,OUTPUT);
pinMode(relay2Pin,OUTPUT);
pinMode(inPin, INPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(redled, OUTPUT);
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Wave test!");
if (!card.init_card()) {
putstring_nl("Card init. failed!"); return;
}
if (!card.open_partition()) {
putstring_nl("No partition!"); return;
}
if (!card.open_filesys()) {
putstring_nl("Couldn’t open filesys"); return;
}
if (!card.open_rootdir()) {
putstring_nl("Couldn’t open dir"); return;
}
putstring_nl("Files found:");
// ls();
playcomplete("SHIP.WAV");
digitalWrite(relay1Pin,HIGH);
delay(500);
digitalWrite(relay2Pin,HIGH);
delay(1000);
digitalWrite(relay1Pin,LOW);
digitalWrite(relay2Pin,LOW);
delay(500);
digitalWrite(relay1Pin,HIGH);
digitalWrite(relay2Pin,HIGH);
}
//————————-
uint8_t tracknum = 0;
void playSound(){
uint8_t i, r;
char c, name[15];
String fileName;
card.reset_dir();
// scroll through the files in the directory
for (i=0; i