Paso 1: Programar y conectar cada sensor con Arduino
Estamos utilizando el Sensor de movimiento PIR para detectar cualquier movimiento producido por alguien que cruce la puerta, según una función booleana "isPeopleDetected()".
El sensor está conectado a Arduino de acuerdo con esto:
- Cable amarillo conectado a 8 de PIN DIGITAL de Arduino
- BLANCO cable no conectado
- Cable rojo conectado a 5V de Arduino
- Cable negro conectado a tierra en Arduino
el código de arduino para la detección de movimiento con Sensor de movimiento PIR es:
/ * definiciones de macros de PIR motion sensor pin y pin LED * /
#define PIR_MOTION_SENSOR 8 //Use pin 2 para recibir la señal desde el módulo
#define LED 13 / / se puede ver este LED en la placa Arduino
void setup() {}
pinsInit();
}
void loop() {}
¿//If if(isPeopleDetected()) detecta el movimiento de la gente?
turnOnLED();
otra cosa
turnOffLED();
}
void pinsInit() {}
pinMode (PIR_MOTION_SENSOR, entrada);
pinMode(LED,OUTPUT);
}
void turnOnLED() {}
digitalWrite(LED,HIGH);
}
void turnOffLED() {}
digitalWrite(LED,LOW);
}
/********/
/ * Función: detectar si alguien se mueve en detecta gama * /
/ * Retorno:-booleano, verdadero es alguien detected.* /
Boolean isPeopleDetected() {}
int sensorValue = digitalRead(PIR_MOTION_SENSOR);
¿if(SensorValue == High) //if el valor del sensor es alta? {
verdaderas; sí, devuelva true
} else {}
devuelven el valor false; no, devuelve false
}
}
Queríamos jugar distintas versiones de la canción FamilyMart aleatoriamente, así que hemos modificado el código básico del reproductor de MP3, añadiendo una variable aleatoria llamada "num", es decir al azar el número según el número o canciones almacenamiento en la tarjeta micro SD que tiene el reproductor de MP3.
El reproductor de MP3 está conectado a Arduino de acuerdo con esto:
- Cable amarillo conectado al PIN DIGITAL 2 en Arduino
- BLANCO cable conectado al PIN DIGITAL 3 en Arduino
- Cable rojo conectado a 5V de Arduino
- Cable negro conectado a tierra en Arduino
El código para el Reproductor de MP3 es:
#include
SoftwareSerial mp3 (2, 3); //modify esto con el conector que usas.
void setup()
{
MP3.Begin(9600);
Serial.Begin(9600);
Delay(100);
Si (true ==SetPlayMode(0x03))
Serial.println ("establece el modo de juego en 0 x 01, solo a modo de bucle");
otra cosa
Serial.println ("Error de conjunto de modo de reproducción");
PauseOnOffCurrentMusic();
randomSeed(analogRead(0));
}
void loop()
{
SetVolume(0x1F);
SetPlayMode(0x01);
Delay(1000);
int num = random(1,4);
Serial.Print(NUM);
SetMusicPlay(00,(uint8_t) num); uint8_t va a convertir num un valor hexadecimal
PauseOnOffCurrentMusic();
Delay(1000);
while(1);
}
Establecer el índice de la música para jugar, el índice se decide por la secuencia de entrada
de la música;
hbyte: el byte alto del índice;
lbyte: el byte bajo del índice;
Boolean SetMusicPlay (uint8_t hbyte, uint8_t lbyte)
{
MP3.Write(0x7e);
MP3.Write(0x04);
MP3.Write(0XA0);
MP3.Write(hbyte);
MP3.Write(lbyte);
MP3.Write(0x7e);
Delay(10);
while(MP3.Available())
{
Si (0xA0==mp3.read())
verdaderas;
otra cosa
devuelven el valor false;
}
}
Hacer una pausa en la música actual de DESC.
PauseOnOffCurrentMusic(void) Boolean
{
MP3.Write(0x7e);
MP3.Write(0x02);
MP3.Write(0xA3);
MP3.Write(0x7e);
Delay(10);
while(MP3.Available())
{
Si (0xA3==mp3.read())
verdaderas;
otra cosa
devuelven el valor false;
}
}
El volumen, la gama es 0 x 00 a 0x1F
Boolean SetVolume (uint8_t volumen)
{
MP3.Write(0x7e);
MP3.Write(0x03);
MP3.Write(0xA7);
MP3.Write(Volume);
MP3.Write(0x7e);
Delay(10);
while(MP3.Available())
{
Si (0xA7==mp3.read())
verdaderas;
otra cosa
devuelven el valor false;
}
}
Boolean SetPlayMode (uint8_t playmode)
{
Si (((playmode==0x00) | () modo de reproducción == 0 x 01) | (modo de reproducción == 0 x 02) | (Playmode==0x03)) == false)
{
Serial.println ("parámetro de modo de reproducción ¡ Error!");
devuelven el valor false;
}
MP3.Write(0x7e);
MP3.Write(0x03);
MP3.Write(0xA9);
MP3.Write(Playmode);
MP3.Write(0x7e);
Delay(10);
while(MP3.Available())
{
Si (0xA9==mp3.read())
verdaderas;
otra cosa
devuelven el valor false;
}
}
Este reproductor de MP3 utiliza números hexadecimales, por lo que tendrá que usar algo como esta web para convertirvalores de enteros para el tablero de control.
Por ejemplo, la referencia dice:
Hay 32 niveles de volumen de 00 a 31. 00 es mudo y 31 para el volumen máximo.
para ajustar el volumen hasta el valor máximo: 31 que convertirlo a hexadecimal que es 1F
por lo que en el código escribimos: SetVolume(0x1F);