Soy nuevo en esto del arduino, y estoy intentando montar mi primer proyecto.
Estoy montando un arduino uno con un music shield (http://www.seeedstudio.com/depot/music-shield-p-642.html?cPath=132_134 y un pir, de manera que, al notar movimiento, el shield reproduzca un audio.
Consigo hacer funcionar el pir y el music shield, pero cada uno por su lado, en cuanto los junto, el pir desaparece y no responde...
Aqui es donde me he encontrado uno de los primeros problemas. El shield va encajado en el arduino, y he sacado una señal de 5v para el pir. Lo que no se ahora es en que pin conectar el out del pir. Supongo que tenga que modificar el puerto del pin del pir para que el shield lo reconozca. En todas las pruebas que he hecho, cuando conecto ambas cosas, el pir no sale reflejado en el serial monitor...
La verdad es que es la primera vez que trabajo con arduino, pero me parece una plataforma muy interesante. He cojido el ejemplo que viene con el shield, y he hecho un batiburrillo con este projecto que he encontrado googleando Make: Projects.
Seguramente el codigo tenga muchos errores
int inputPin = 2; // choose the input pin (for PIR sensor)
int pirState = LOW; // we start, assuming no motion detected
int val = 0; // variable for reading the pin status
int pinSpeaker = 10; //Set up a speaker on a PWM pin (digital 9, 10, or 11)
void setup() {
pinMode(inputPin, INPUT); // declare sensor as input
pinMode(pinSpeaker, OUTPUT);
Serial.begin(9600);
mySerial.begin(19200);// used for receiving command data from the iPod dock.
InitSPI();
InitIOForVs10xx();
InitIOForKeys();
InitIOForLEDs();
InitFileSystem();
Mp3Reset();
}
void loop(){
val = digitalRead(inputPin); // read input value
if (val == HIGH) { // check if the input is HIGH
Play();
delay(150);
// playTone(300, 120);
// delay(150);
if (pirState == LOW) {
// we have just turned on
Serial.println("Motion detected!");
// We only want to print on the output change, not state
pirState = HIGH;
}
} else {
delay(300);
if (pirState == HIGH){
// we have just turned off
Serial.println("Motion ended!");
// We only want to print on the output change, not state
pirState = LOW;