Arduino + iPod (4 / 7 steg)
Steg 4: Ladda ner programmet
Här är arduino koden:/*
Av Daniel Solis
Licensierat under Creative Commons Attribution-ShareAlike 3.0 Unported
http://creativecommons.org/licenses/by-sa/3.0/
Du kan ändra denna kod samt hårdvara. Om du
har en bättre kod eller göra några ändringar som förbättrar performa
NCE vänligen dela dem
Analog pinne 4: ipod TX (att upptäcka ipod)
Analoga pin 0: knappen identifiering
Digital stift 1: arduino TX
*/
byte läsläge2 [] = {0xFF, 0x55, 0x03, 0x00, 0x01, 0x02, 0xFA}; //mode 2 kommando
byte nobutton [] = {0xFF, 0x55, 0x03, 0x02, 0x00, 0x00, 0xFB}; kommandot frigör //button
int release = 200.
kommandon
byte playxpause = 0x01;
byte nextsong = 0x08;
byte prevsong = 0x10;
byte shuffle [] = {0xFF, 0x55, 0x04, 0x02, 0x00, 0x00, 0x80, 0x7A};
int länge; / /
int butbefore = 1023;
int dockbef = 0;
void setup()
{
Serial.BEGIN (19200); //sets seriell com
för (int p = 0; p < 7; p ++)
{Serial.print(mode2[p],HEX);} skickar läsläge2-kommando
}
void loop()
{
int dock=analogRead(4);
om (docka! = dockbef) //checks om det finns en iPod är ansluten
{
för (int p = 0; p < 7; p ++) //if inte, skickar det igen läsläge2-kommando
{Serial.print(mode2[p],HEX);}
}
int butnow=analogRead(0);
om (butnow! = butbefore & & millis ()-tid > release)
{
om (butnow! = hög) //wait för knappen intryckt
{
Time=Millis();
IF(butnow==0) / /
{
srlcommand(playxpause);
}
om (butnow > 948 & & butnow < 953)
{
srlcommand(nextsong);
}
om (butnow > = 506 & & butnow < 508)
{
srlcommand(prevsong);
}
om (butnow > 955 & & butnow < 963)
{
för (int d = 0; d < 8; d ++)
{Serial.print(shuffle[d],BYTE);}
}
}
}
annat
{
för (int d = 0; d < 7; d ++)
{Serial.print(nobutton[d],BYTE);} inget kommando-knappen
}
butbefore = butnow;
}
void srlcommand(byte select)
{
byte checksum = 0x00-0x03-0x02-0x00-Markera; //checksum längd, läge och kommandot
byte [inst] = {0xFF, 0x55, 0x03, 0x02, 0x00, Välj, kontrollsumma}; //general struktur
för (int m = 0; m < 7; m ++)
{Serial.print(inst[m],BYTE);} skickar kommandot
}