Stap 1: De code die I´ve voor dit project gebruikt.
Hier is mijn code die I´ve voor dit project gebruikt.
Het heeft meerdere reacties die nadere uitleg geeft over wat dat deel van de code eigenlijk doet.
Gewoon kopiëren en deze code in uw arduino UNO laden.
#define DEBUG //uncomment dit om foutopsporing te schakelen
monitor
#include / / bibliotheek voor schild
#include / / bibliotheek voor sd-kaart op schild
#include / / bibliotheek voor sd-kaart op schild
#include / / library to control schild
#include / / speciale bibliotheek voor het beheersen van de servo
Maak en de naam van het object library
SFEMP3Shield MP3player;
SdFat sd;
SdFile bestand;
VarSpeedServo servo;
Define pinnen en dergelijke
int sensorPin = A0; Lichtsensor aangesloten op Analog0
int sensorValue; variabele de waarde afkomstig van de sensor opslaan
int servoPin = 5; PIN beheersing van de servo
int Led1 = 3; LED 1
int Led2 = 4; LED 2
int randomnr; Willekeurig getal voor het kiezen van een nummer uit de array lied die we later gebruiken
Boole firstSong = 1; Dit is dus de eerste track op de sd-kaart altijd eerst spelen zal wanneer schoen opwaarts de arduino
void setup / / run eenmaal in, wanneer de schets wordt gestart
{
Serial.begin(115200); initialiseren van de seriële poort
pinMode (A0, INPUT); Hiermee stelt u analoge pin A0 als een input
pinMode (Led1, uitvoer); sets pin 3 als een uitgang
pinMode (Led2, uitvoer); sets pin 4 wordt een uitgevoerd
Als (! sd.begin (SD_SEL, SPI_FULL_SPEED)) sd.initErrorHalt();
schoen opwaarts naar de MP3 speler Shield
MP3player.begin();
}
void loop / / run over en weer
{
sensorValue = analogRead(sensorPin); luiden naar de waarde van de lichtsensor
delay(250); Wacht een kort moment
#ifdef DEBUG
Serial.Print ("licht Sensor waarde:"); die waarde naar de computer verzenden
Serial.println(sensorValue);
Serial.Print ("Booleaanse waarde eerste nummer:"); die waarde naar de computer verzenden
Serial.println(firstSong); die waarde naar de computer verzenden
Serial.Print ("licht ontdekt:");
Serial.println(isLightDetected(sensorValue));
#endif
if(isLightDetected(sensorValue)) //Light gedetecteerd functie geldt
{
if(!Servo.Attached()) {/ / wij got te controleren als de servo is aangesloten, dus het zal niet hechten het everytime het loops. Dit wordt gemaakt zodat wij de servo spinnen alsmede wanneer er niet voldoende licht kan stoppen
Servo.attach(servoPin);
}
digitalWrite (Led1, hoge); Hiermee schakelt u led op pin 3 aangesloten
digitalWrite (Led2, hoge); Hiermee schakelt u led aangesloten op pin 4
delay(500); Een halve seconde voor het inschakelen van de servo wachten...
servo.writeMicroseconds(1535);
if(firstSong == 1) / / controleren als nummer nog niet gespeeld, zo ja voorsprong op opwaarts!
{
char [firstsong] = "track001.mp3";
MP3player.playMP3(firstsong);
delay(250);
firstSong = 0;
#ifdef DEBUG
Serial.Print ("Booleaanse waarde na lied:"); die waarde naar de computer verzenden
Serial.println(firstSong); die waarde naar de computer verzenden
#endif
}
randomnr = random(0,5); willekeurig getal gegenereerd voor het kiezen van een nummer uit de matrix
Song-array voor de muziek worden willekeurig gekozen
char * trackArray [] {} =
"track001.mp3",
"track002.mp3",
"track003.mp3",
"track004.mp3",
"track005.mp3"
};
MP3player.playMP3(trackArray[randomnr]); Speel het liedje!
sensorValue = analogRead(sensorPin); Waarde van de sensor om te zien of het nog voldoende licht leest
#ifdef DEBUG
Serial.Print ("lichtsensor waarde na lus:"); die waarde naar de computer verzenden
Serial.println(sensorValue);
#endif
}
anders //No licht ontdekt
{
#ifdef DEBUG
Serial.println ("niet genoeg licht ontdekt alles gaskraan"); //
#endif
Stop alles!
MP3player.stopTrack();
digitalWrite (Led1, laag); Beurt voor leds
digitalWrite (Led2, laag); Beurt voor leds
Servo.Detach();
}
}
Om te helpen ons testen als sensor voorwaarden wordt voldaan, functie
Booleaanse isLightDetected (int sensorValue) {}
Als (sensorValue > 50) {}
return true;
}
else {}
return false;
}
}