MP3-gränssnitt för Arduino: billigt och lätt (5 / 5 steg)
Steg 5: Sig systemet redo att testa
Ansluta en hörlurar eller hörlurar till kontakten.
Anslut en USB-kabel till Arduino och USB-porten på din favorit dator. Efter några sekunder börjar den första filen spelas. Om du läsa in den bifogade Arduino skissen till Arduino miljö på datorn och ladda ner det, kommer du här 10 andra klipp av varje fil, med den volym decreasinng efter de fyra första sång snippets spelas, och sedan volymen öka efter de nästa fyrana.
Observera fördröjning längderna jag använde för de specifika kontrollerna. Du kan kunna förkorta dessa gånger... experiment!
Här är skissen att klippa och klistra in i Arduino miljö:
int CTL_NEXT = 6;
int CTL_PREV = 7.
int spela = 8.
int VOL_MINUS = 9;
int VOL_PLUS = 10;
int Vattenfyllda = 13.
int i, j. räknaren loop
/*
void nextMP3(void) {
PORTB = 0X00;
DDRB = 0;
DDRD = 0X40;
medan ((PINB & 0x01)! = 0)
PORTD = 0X40;
medan ((PINB & 0x01) == 0)
PORTD = 0; //1
medan ((PINB & 0x01)! = 0)
PORTD = 0X40;
medan ((PINB & 0x01) == 0)
PORTD = 0; //2
medan ((PINB & 0x01)! = 0)
PORTD = 0X40;
medan ((PINB & 0x01) == 0)
PORTD = 0; //3
medan ((PINB & 0x01)! = 0)
PORTD = 0X40;
medan ((PINB & 0x01) == 0)
PORTD = 0; //4
medan ((PINB & 0x01)! = 0)
PORTD = 0X40;
medan ((PINB & 0x01) == 0)
PORTD = 0; //5
medan ((PINB & 0x01)! = 0)
PORTD = 0X40;
medan ((PINB & 0x01) == 0)
PORTD = 0; //6
medan ((PINB & 0x01)! = 0)
PORTD = 0X40;
medan ((PINB & 0x01) == 0)
PORTD = 0; //7
medan ((PINB & 0x01)! = 0)
PORTD = 0X40;
medan ((PINB & 0x01) == 0)
PORTD = 0; //8
DDRD = 0; //PORTD indata igen
}
void prevMP3(void) {
PORTB = 0X00;
DDRB = 0;
DDRD = 0XA0;
medan ((PINB & 0x01)! = 0)
PORTD = 0X80;
medan ((PINB & 0x01) == 0)
PORTD = 0; //1
medan ((PINB & 0x01)! = 0)
PORTD = 0X80;
medan ((PINB & 0x01) == 0)
PORTD = 0; //2
medan ((PINB & 0x01)! = 0)
PORTD = 0X80;
medan ((PINB & 0x01) == 0)
PORTD = 0; //3
medan ((PINB & 0x01)! = 0)
PORTD = 0X80;
medan ((PINB & 0x01) == 0)
PORTD = 0; //4
medan ((PINB & 0x01)! = 0)
PORTD = 0X80;
medan ((PINB & 0x01) == 0)
PORTD = 0; //5
medan ((PINB & 0x01)! = 0)
PORTD = 0X80;
medan ((PINB & 0x01) == 0)
PORTD = 0; //6
medan ((PINB & 0x01)! = 0)
PORTD = 0X80;
medan ((PINB & 0x01) == 0)
PORTD = 0; //7
medan ((PINB & 0x01)! = 0)
PORTD = 0X80;
medan ((PINB & 0x01) == 0)
PORTD = 0; //8
DDRD = 0; //PORTD indata igen
}*/
void nextMP3(void) {
digitalWrite (CTL_NEXT, hög);
Delay(100);
digitalWrite (CTL_NEXT, låg);
}
void prevMP3(void) {
digitalWrite (CTL_PREV, hög);
Delay(100);
digitalWrite (CTL_PREV, låg);
}
void FlashDatLED(void) {
digitalWrite(LLED,HIGH);
Delay(100);
digitalWrite(LLED,LOW);
Delay(100);
digitalWrite(LLED,HIGH);
Delay(100);
digitalWrite(LLED,LOW);
Delay(100);
digitalWrite(LLED,HIGH);
Delay(100);
digitalWrite(LLED,LOW);
Delay(100);
digitalWrite(LLED,HIGH);
Delay(100);
digitalWrite(LLED,LOW);
Delay(100);
digitalWrite(LLED,HIGH);
Delay(100);
digitalWrite(LLED,LOW);
Delay(100);
digitalWrite(LLED,HIGH);
Delay(100);
digitalWrite(LLED,LOW);
Delay(100);
digitalWrite(LLED,HIGH);
Delay(100);
digitalWrite(LLED,LOW);
Delay(100);
digitalWrite(LLED,HIGH);
Delay(100);
digitalWrite(LLED,LOW);
Delay(100);
}
Metoden setup() körs en gång, när skissen startar
void setup(void) {
initiera digital PIN-koden som en utgång:
pinMode (spela, indata);
digitalWrite (spela, låg); Stänga av pull-up
pinMode (VOL_MINUS, indata);
digitalWrite (VOL_MINUS, låg); Stänga av pull-up
pinMode (VOL_PLUS, indata);
digitalWrite (VOL_PLUS, låg); Stänga av pull-up
pinMode (CTL_PREV, OUTPUT);
digitalWrite (CTL_PREV, låg); BÅDE ÖPPNA VÄXLAR
pinMode (CTL_NEXT, OUTPUT);
digitalWrite (CTL_NEXT, låg); BÅDE ÖPPNA VÄXLAR
pinMode(LLED,OUTPUT);
ALLA ÄR SVAGT DROG HÖGA
}
metoden loop() körs om och om igen,
så länge Arduino har makt
void loop()
{
Delay(2000);
While(1);
samtidigt (1) {
digitalWrite(LLED,HIGH);
prevMP3();
pinMode(LLED,OUTPUT);
digitalWrite(LLED,HIGH);
Delay(10000);
digitalWrite(LLED,LOW);
prevMP3();
Delay(10000);
prevMP3();
pinMode(LLED,OUTPUT);
digitalWrite(LLED,HIGH);
Delay(10000);
digitalWrite(LLED,LOW);
prevMP3();
pinMode (VOL_MINUS, OUTPUT);
Delay(2000);
pinMode (VOL_MINUS, indata);
Delay(8000);
digitalWrite(LLED,HIGH);
nextMP3();
pinMode(LLED,OUTPUT);
digitalWrite(LLED,HIGH);
Delay(10000);
digitalWrite(LLED,LOW);
nextMP3();
Delay(10000);
nextMP3();
pinMode(LLED,OUTPUT);
digitalWrite(LLED,HIGH);
Delay(10000);
digitalWrite(LLED,LOW);
nextMP3();
pinMode (VOL_PLUS, OUTPUT);
Delay(2000);
pinMode (VOL_PLUS, indata);
Delay(8000);
}