Con esta configuración se lanza un sonido desde la micro sd al detectarse movimiento desde el Sensor Pir, a la vez que un led enciende cuando se detecta o no movimiento.
Partes
1 Sensor PIR
1 Tarjeta micro sd
1 lector de tarjeta micro sd
1 Resistencia de 330 ohms
1 led
1 Arduino uno. Rev 3.
1 Bocina de 8 ohms
Jumpers
1 led
1 Arduino uno. Rev 3.
1 Bocina de 8 ohms
Jumpers
Fritzing
Código
[code]
/* Con este sketch podremos hacer lectura de un archivo .wav
y reproducirla en una bocina de 8 ohms.
Necesitamos de la librería TMRpcm
https://github.com/TMRh20/TMRpcm/wiki
Sketch inicial tomado en: http://intelirobot.com.mx/blog/arduino/toca-sonidos-wav-en-arduino/
Modificación ODF, 2017.
Es muy importante que el audio tenga el formato correcto:
Tipo de archivo: .wav
Samples per second (Hz): Custom define 16000
Channels: Mono
Bits per sample: 8
*/
#include <pcmConfig.h>
#include <pcmRF.h>
//Cargamos las líbrerias necesarias
#include <SD.h>
#include <SPI.h>
#include <TMRpcm.h>
// Definimos el pin de entrada del lector de tarjeta SD
#define pinSD 10
//Creamos un objeto de la librería TMRpcm
TMRpcm audio;
const int LEDPin = 7; // pin para el LED
const int PIRPin = 4; // pin de entrada (for PIR sensor)
int pirState = LOW; // de inicio no hay movimiento
int val = 0; // estado del pin
void setup() {
pinMode(LEDPin, OUTPUT);
pinMode(PIRPin, INPUT);
Serial.begin(9600);
audio.speakerPin = 9; //Se define el pin en el que está conectada la bocina
Serial.begin(9600); //Se inicia la comunicación serial
}
void loop() {
{
val = digitalRead(PIRPin);
if (val == LOW) //si está desactivado
{
if (!SD.begin(pinSD)) { //revisa que la tarjeta esté colocada
Serial.println("Fallo en la lectura de tarjeta SD"); //Aviso de que algo no anda bien
return;
}
digitalWrite(LEDPin, LOW); //LED LOW
if (pirState == LOW) //si previamente estaba apagado
{
Serial.println("Sensor parado");
pirState = HIGH;
}
}
else //si esta desactivado
{
digitalWrite(LEDPin, HIGH); // LED OFF
if (pirState == HIGH) //si previamente estaba encendido
{
Serial.println("Sensor activado");
pirState = LOW;
}
}
}
Serial.println("Comienza lectura de archivo");
audio.play("RISA1.wav"); // Realiza la lectura del achivo
audio.setVolume(6); // Determina el volumen 1 - 7
delay(7000); //Espera para volver a reproducirlo
}
[/code]
Cuando suena el audio, de un momento a otro se bloquea y hay un ruido constante. como puedo solucionar esto?
ResponderEliminarGracias!!!!