Stap 1: Programmeren en elke sensor aansluiten met Arduino
We zijn met behulp van de PIR bewegingsmelder te detecteren elke beweging geproduceerd door iemand die kruis van de deur, volgens een Boole-functie "isPeopleDetected()".
De sensor is aangesloten op de Arduino volgens deze:
- GELE draad aangesloten op DIGITAL PIN 8 in Arduino
- WITTE draad niet verbonden
- RODE draad aangesloten op de 5V in Arduino
- ZWARTE draad met de massa in Arduino verbonden
de code van de arduino voor het opsporen van verkeer met de PIR bewegingsmelder is:
/ * macrodefinities van PIR bewegings sensor pin en LED pin * /
#define PIR_MOTION_SENSOR 8 //Use pin 2 om het signaal van de module
#define LED 13 / / kunt u deze LED in de Arduino board
VOID Setup {}
pinsInit();
}
void loop {}
if(isPeopleDetected()) //if het detecteert de bewegende personen?
turnOnLED();
anders
turnOffLED();
}
ongeldig pinsInit() {}
pinMode (PIR_MOTION_SENSOR, INPUT);
pinMode(LED,OUTPUT);
}
ongeldig turnOnLED() {}
digitalWrite(LED,HIGH);
}
ongeldig turnOffLED() {}
digitalWrite(LED,LOW);
}
/********/
/ * Functie: detecteren of iemand beweegt het het opsporen van bereik * /
/ * Terug:-Boole, waar is iemand detected.* /
Booleaanse isPeopleDetected() {}
int sensorValue = digitalRead(PIR_MOTION_SENSOR);
if(sensorValue == High) //if de sensor-waarde is hoog? {
return true; Ja, terug waar
} else {}
return false; Nee, resultaat false
}
}
We wilden spelen verschillende versies van het lied van de FamilyMart willekeurig, dus we de basic-code van de MP3-speler bewerkt, het toevoegen van een random variabele met de naam "num", dat wil zeggen een willekeurige nummer volgens de nummer of de nummers die we opslag in de micro SD-kaart die de MP3-speler heeft.
De MP3-speler is aangesloten op de Arduino volgens deze:
- GELE draad aangesloten op DIGITAL PIN 2 in Arduino
- WITTE draad aangesloten op DIGITAL PIN 3 in Arduino
- RODE draad aangesloten op de 5V in Arduino
- ZWARTE draad met de massa in Arduino verbonden
De code voor de MP3-speler is:
#include
SoftwareSerial mp3 (2, 3) //modify met de connector die u gebruikt.
VOID Setup
{
MP3.begin(9600);
Serial.begin(9600);
delay(100);
Als (true ==SetPlayMode(0x03))
Serial.println ("de Play-modus instelt op 0x01, Single Loop-modus.");
anders
Serial.println ("weergavemodus Set Error");
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 zal num zetten in een hexadecimale waarde
PauseOnOffCurrentMusic();
delay(1000);
while(1);
}
Instellen van de index van de muziek te spelen, de index wordt bepaald door de volgorde van invoer
van de muziek;
hbyte: de hoge byte van de index;
lByte: de lage byte van de index;
Booleaanse 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())
{
Als (0xA0==mp3.read())
return true;
anders
return false;
}
}
Aan/uit de huidige muziek pauzeren
Booleaanse PauseOnOffCurrentMusic(void)
{
MP3.write(0x7E);
MP3.write(0x02);
MP3.write(0xA3);
MP3.write(0x7E);
delay(10);
while(MP3.available())
{
Als (0xA3==mp3.read())
return true;
anders
return false;
}
}
Set het volume, het bereik is 0x00-0x1F
Booleaanse SetVolume (uint8_t volume)
{
MP3.write(0x7E);
MP3.write(0x03);
MP3.write(0xA7);
MP3.write(volume);
MP3.write(0x7E);
delay(10);
while(MP3.available())
{
Als (0xA7==mp3.read())
return true;
anders
return false;
}
}
Booleaanse SetPlayMode (uint8_t weergavemodus)
{
Als (((playmode==0x00) | () weergavemodus == 0x01) | (weergavemodus == 0x02) | (PLAYMODE==0x03)) == false)
{
Serial.println ("weergavemodus Parameter fout!");
return false;
}
MP3.write(0x7E);
MP3.write(0x03);
MP3.write(0xA9);
MP3.write(PLAYMODE);
MP3.write(0x7E);
delay(10);
while(MP3.available())
{
Als (0xA9==mp3.read())
return true;
anders
return false;
}
}
Deze MP3-speler gebruikt hexadecimale getallen, dus je moet om iets te gebruiken zoals dit web converterenintegerwaarden opdat de Raad van bestuur toezicht kunnen uitoefenen.
Bijvoorbeeld zegt de verwijzing:
Er zijn 32 volumeniveaus van 00 tot en met 31. 00 is mute, en 31 voor het maximale volume.
om het volume ingesteld op de maximale waarde: 31 wij converteren naar een hexadecimaal getal dat 1F
dus in de code die we schrijven: SetVolume(0x1F);