Étape 4: Téléchargez le programme
Voici le code de l’arduino :/*
Par Daniel Solis
Licensed under Creative Commons Attribution-ShareAlike 3.0 Unported
http://creativecommons.org/licenses/by-sa/3.0/
Vous êtes en mesure de modifier ce code, ainsi que le matériel. Si vous
avoir un meilleur code ou apporter des modifications qui améliorent la performa
RCE les partager s’il vous plaît
Broche analogique 4: ipod TX (pour détecter les ipod)
Broche analogique 0: bouton de détection
La broche numérique 1: arduino TX
*/
mode2 Byte = {0xFF, 0 x 55, 0 x 03, 0 x 00, 0 x 01, 0 x 02, 0xFA}; //mode 2 commande
nobutton Byte = {0xFF, 0 x 55, 0 x 03, 0 x 02, 0 x 00, 0 x 00, 0xFB}; //button commande
Communiqué de l’int = 200 ;
commandes
playxpause octet = 0 x 01 ;
nextsong octet = 0 x 08 ;
prevsong octet = 0 x 10 ;
octet shuffle [] = {0xFF, 0 x 55, 0 x 04, 0 x 02, 0 x 00, 0 x 00, 0 x 80, 0x7A} ;
int longtemps; / /
seulement int = 1023 ;
int dockbef = 0 ;
void setup()
{
Serial.Begin (19200); //sets série com
pour (int p = 0; p < 7; p ++)
{Serial.print(mode2[p],HEX);} envoie la commande mode2
}
void loop()
{
int dock=analogRead(4) ;
Si (quai! = dockbef) //checks s’il y a un iPod connecté
{
pour (int p = 0; p < 7; p ++) //if pas, il envoie à nouveau la commande mode2
{Serial.print(mode2[p],HEX);}
}
int butnow=analogRead(0) ;
Si (butnow! = seulement & & millis ()-temps > libérer)
{
Si (butnow! = haut) //wait bouton enfoncé
{
Time=Millis() ;
if(butnow==0) / /
{
srlcommand(playxpause) ;
}
Si (butnow > 948 & & butnow < 953)
{
srlcommand(nextsong) ;
}
Si (butnow > = 506 & & butnow < 508)
{
srlcommand(prevsong) ;
}
Si (butnow > 955 & & butnow < 963)
{
pour (d int = 0; d < 8; d ++)
{Serial.print(shuffle[d],BYTE);}
}
}
}
d’autre
{
pour (d int = 0; d < 7; d ++)
{Serial.print(nobutton[d],BYTE);} aucune touche de commande
}
seulement = butnow ;
}
Sub srlcommand(byte select)
{
somme de contrôle octet = 0 x 00 0 x 03-0 x 02-0 x 00-sélection ; //checksum de longueur, de mode et de commande
inst Byte = {0xFF, 0 x 55, 0 x 03, 0 x 02, 0 x 00, sélectionnez cette option, checksum}; //general structure
pour (int m = 0; m < 7; m ++)
{Serial.print(inst[m],BYTE);} envoie la commande
}