Étape 4: Contrôler l’audio aduino Using
Pas besoin à la bibliothèque au programme, mais si vous voulez qu'il y a une bibliothèque pour cela vous protéger pouvez le télécharger à partir d’ici
//..............................................................................
Mohannad Rawashdeh
MP3 1.2V test de bouclier.
#include < SoftwareSerial.h >
SoftwareSerial Geno(7,8) ; RX, Tx
unsigned char Data [10] ;
unsigned char i ;
void setup() {}
Mettez votre code de programme d’installation ici, pour exécuter une fois :
Geno.Begin(9600) ;
SetVolume(20) ; régler le volume de 0-31
Delay(1000) ;
FileSource('SD_card',0x05) ;
SetPlayMode('Single_play') ;
Delay(5000) ;
play_pause(); / / Pause
Delay(3000) ;
FileSource('SD_card',0x01) ;
play_pause() ; jouer
Delay(5000) ;
Next() ;
Delay(5000) ;
Next() ;
pour (int v = 15; v > 0; v--) {}
SetVolume(v) ; régler le volume de 0-31
Delay(1000) ;
}
pour (int j = 0; j < 15; j ++) {}
SetVolume(j) ; régler le volume de 0-31
Delay(500) ;
}
Delay(1000) ;
FileSource('SD_card',0x04) ;
Delay(5000) ;
FileSource('SD_card',0x05) ;
FileSource('SD_card',0x03) ;
Stop() ;
}
void loop() {}
Mettez votre code principal ici, pour exécuter à plusieurs reprises :
}
Sélectionnez fichier sorce « SD Card, SPI Flash, disque d’U »
Sub {FileSource (type char, byte plage)
play_pause(); / / Pause
Data [0] = 0x7E ;
Données [5] = 0x7E ;
commutateur (type) {}
cas « SD_card » :
DÉBUT
Données [1] = 0 x 04 ; Longueur
Données [2] = 0xA0 ; Commande
Données [3] = 0 x 00 ; octet haut numéro de fichier
Données [4] = voie ; octet de poids faible numéro de fichier
rupture ;
cas « SPI_Flash » :
Données [1] = 0 x 04 ; Longueur
Données [2] = 0xA1 ; Commande spi flash 0XA1
Données [3] = 0 x 00 ; octet haut numéro de fichier
Données [4] = voie ;
rupture ;
cas « U_Disk » :
Données [1] = 0 x 04 ; Longueur
Données [2] = 0xA2 ; Commande
Données [3] = 0 x 00 ; octet haut numéro de fichier
Données [4] = voie ; octet de poids faible numéro de fichier
rupture ;
}
Command(Data,5) ;
play_pause(); / / Pause
}
void SetVolume (int vol) {}
Data [0] = 0x7E ; DÉBUT
Données [1] = 0 x 03 ; Longueur de pas de 0 x 02
Données [2] = 0xA7 ; Commande
Données [3] = vol ; nouveau volume
Données [4] = 0x7E ; FIN
Command(Data,5) ;
}
void SetPlayMode(char type) {}
Data [0] = 0x7E ; DÉBUT
Données [4] = 0x7E ; DÉBUT
commutateur (type) {}
cas « Single_play » :
Données [1] = 0 x 02 ; Longueur
Données [2] = 0xA9 ; Commande
Données [3] = 0 x 00 ; Paramètre de mode
rupture ;
cas « Repeat_single » :
Données [1] = 0 x 02 ; Longueur
Données [2] = 0xA9 ; Commande
Données [3] = 0 x 01 ; Paramètre de mode
rupture ;
cas « Repeat_all » :
Données [1] = 0 x 02 ; Longueur
Données [2] = 0xA9 ; Commande
Données [3] = 0 x 02 ; Paramètre de mode
rupture ;
cas « Play_Random » :
Données [1] = 0 x 02 ; Longueur
Données [2] = 0xA9 ; Commande
Données [3] = 0 x 03 ; Paramètre de mode
rupture ;
}
Command(Data,5) ;
}
//...............................
void play_pause() {}
Data [0] = 0x7E ; DÉBUT
Données [1] = 0 x 02 ; Longueur
Données [2] = 0xA3 ; Commande
Données [3] = 0x7E ; Paramètre de mode
Command(Data,4) ;
}
Sub Stop() {}
Data [0] = 0x7E ; DÉBUT
Données [1] = 0 x 02 ; Longueur
Données [2] = 0xA4 ; Commande
Données [3] = 0x7E ; Paramètre de mode
Command(Data,4) ;
}
Sub {Next()
Data [0] = 0x7E ; DÉBUT
Données [1] = 0 x 02 ; Longueur
Données [2] = 0xA5 ; Commande
Données [3] = 0x7E ; Paramètre de mode
Command(Data,4) ;
}
void Previous() {}
Data [0] = 0x7E ; DÉBUT
Données [1] = 0 x 02 ; Longueur
Données [2] = les 0xA6 ; Commande
Données [3] = 0x7E ; Paramètre de mode
Command(Data,4) ;
}
annuler la commande (unsigned char * Data, int longueur) {}
pour (int i = 0; i < longueur; i ++) {}
Geno.Write(Data[i]) ;
}
}
La vidéo ci-dessous pour vous montrer comment il fonctionnait.