Difference between revisions of "Component: DFPlayer (MP3 / WAV) (Audio Output)"

From Flowcode Help
Jump to navigationJump to search
 
(14 intermediate revisions by 2 users not shown)
Line 14: Line 14:
 
==DFPlayer (MP3 / WAV) component==
 
==DFPlayer (MP3 / WAV) component==
 
A small module capable of streaming MP3 and WAV audio files from a micro SD card. Controlled via a serial UART connection to the microcontroller.  
 
A small module capable of streaming MP3 and WAV audio files from a micro SD card. Controlled via a serial UART connection to the microcontroller.  
 +
 +
==Component Source Code==
 +
 +
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_DFPlayer.fcfx FC_Comp_Source_DFPlayer.fcfx]
 +
 +
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_DFPlayer.fcfx FC_Comp_Source_DFPlayer.fcfx]
  
 
==Detailed description==
 
==Detailed description==
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
  
Line 30: Line 56:
  
  
DALI Master Example, reads the value of a keypad and sends out DALI commands based on the key pressed, 1 = switch on a slave's light, 2 = switch off a slave's light, 3 = read the slave's light level.
 
{{Fcfile|DALI_Master.fcfx|DALI Master Example1}}
 
DALI Slave Example, listens for DALI messages and checks that the group is correct before attempting to process the request and if required reply to the master.
 
{{Fcfile|DALI_Slave.fcfx|DALI Slave Example1}}
 
  
==Downloadable macro reference==
 
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PausePlayResetStop'''
 
|-
 
| colspan="2" | Allows the current playing track to be paused, restarted or reset 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Mode
 
|-
 
| colspan="2" | 0=Pause, 1=Play, 2=Reset, 3=Stop 
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
  
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendCommand'''
 
|-
 
| colspan="2" | Sends a command to the DFPlayer module 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Command
 
|-
 
| colspan="2" | Command code byte 
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | Feedback
 
|-
 
| colspan="2" | Collect feedback byte: Range 0-1 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Parameter
 
|-
 
| colspan="2" | 16-bit Parameter 
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
  
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''IsReplyAvailable'''
 
|-
 
| colspan="2" | Checks to see if new data has been received from the module. Returns true when new data is available. Collect the data using the GetReplyByte macro. 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
  
  
 +
 +
 +
 +
No Examples here yet
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
==Macro reference==
 +
 +
===GetError===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetVolume'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetError'''
 
|-
 
|-
| colspan="2" | Sets the volume level for the module 
+
| colspan="2" | Checks for any errors and returns the error code. 1=ModuleBusy, 2=SleepMode, 3=SerialError, 4=ChecksumError, 5=TrackOutOfScope, 6=TrackNotFound, 7=InsertionError, 8=SDFail, 10=Sleep 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Volume
 
|-
 
| colspan="2" | Range: 0 (min) - 30 (max) 
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
  
 +
===GetReplyByte===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetEQ'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetReplyByte'''
 
|-
 
|-
| colspan="2" | Sets the equaliser mode for the module 
+
| colspan="2" | Reads a single byte from the last reply. Each reply contains 4 bytes starting with the command code. 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | EQMode
+
| width="90%" | Index
|-
 
| colspan="2" | Range: 0-5 0=Normal, 1=Pop, 2=Rock, 3=Jazz, 4=Classic, 5=Bass 
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
 
 
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetError'''
 
|-
 
| colspan="2" | Checks for any errors and returns the error code. 1=ModuleBusy, 2=SleepMode, 3=SerialError, 4=ChecksumError, 5=TrackOutOfScope, 6=TrackNotFound, 7=InsertionError, 8=SDFail, 10=Sleep 
 
 
|-
 
|-
 +
| colspan="2" | Range: 0-3 / 0=Command, 1=Feedback, 2=Data MSB, 3=Data LSB 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
Line 145: Line 114:
  
  
 +
===Initialise===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WhilePlaying'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 
|-
 
|-
| colspan="2" | Blocking function that waits for module to stop being busy. Returns true if the module is still busy and the timeout period has passed. 
+
| colspan="2" | Sets up the UART and does some housekeeping. Must be called before calling any of the other component macros. 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" | Timeout
 
|-
 
| colspan="2" | Number of milliseconds to wait, 0=WaitForever 
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -  
 
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
  
 +
===IsPlaying===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 171: Line 137:
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -  
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-bool-icon.png]] - BOOL
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
  
 +
===IsReplyAvailable===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetReplyByte'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''IsReplyAvailable'''
 
|-
 
|-
| colspan="2" | Reads a single byte from the last reply. Each reply contains 4 bytes starting with the command code. 
+
| colspan="2" | Checks to see if new data has been received from the module. Returns true when new data is available. Collect the data using the GetReplyByte macro. 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Index
 
 
|-
 
|-
| colspan="2" | Range: 0-3 / 0=Command, 1=Feedback, 2=Data MSB, 3=Data LSB 
 
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-bool-icon.png]] - BOOL
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
  
 +
===PausePlayResetStop===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SkipTrack'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PausePlayResetStop'''
 
|-
 
|-
| colspan="2" | Jump to the next or previous track 
+
| colspan="2" | Allows the current playing track to be paused, restarted or reset 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:]] -  
+
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Direction
+
| width="90%" | Mode
 
|-
 
|-
| colspan="2" | 0=Next, 1=Previous 
+
| colspan="2" | 0=Pause, 1=Play, 2=Reset, 3=Stop 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 212: Line 175:
  
  
 +
===PlayTrack===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 235: Line 199:
  
  
 +
===SendCommand===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendCommand'''
 
|-
 
|-
| colspan="2" | Sets up the UART and does some housekeeping. Must be called before calling any of the other component macros. 
+
| colspan="2" | Sends a command to the DFPlayer module 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
+
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
+
| width="90%" | Command
|}
 
 
 
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
 
|-
 
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
+
| colspan="2" | Command code byte 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadAnalogAsInt'''
 
 
|-
 
|-
| colspan="2" | Reads one of the analogue components as an Integer value 
+
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
 +
| width="90%" | Feedback
 
|-
 
|-
 +
| colspan="2" | Collect feedback byte: Range 0-1 
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
+
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Channel
+
| width="90%" | Parameter
 
|-
 
|-
| colspan="2" | 0 = LDR, 1 = POT 
+
| colspan="2" | 16-bit Parameter 
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -  
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
  
  
 +
===SetEQ===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RemapCharacter'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetEQ'''
 
|-
 
|-
| colspan="2" | Assigns a remap character allowing the PrintString function to automatically swap between pre-defined characters.  The characters can be custom (in the range 0-9) or can point to an existing character in the LCD character map. 
+
| colspan="2" | Sets the equaliser mode for the module 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | RemapIdx
+
| width="90%" | EQMode
 
|-
 
|-
| colspan="2" | Remap Index, Range: 0 to (Remap Characters - 1) 
+
| colspan="2" | Range: 0-5 0=Normal, 1=Pop, 2=Rock, 3=Jazz, 4=Classic, 5=Bass 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | SearchCharacter
 
|-
 
| colspan="2" | Character to look for a replace 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | ReplacementCharacter
 
|-
 
| colspan="2" | New character value to use in place of the search character. 
 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 294: Line 247:
  
  
 +
===SetVolume===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Start'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetVolume'''
 +
|-
 +
| colspan="2" | Sets the volume level for the module 
 
|-
 
|-
| colspan="2" | Startup routine required by the hardware device. Automatically clears the display after initialising. 
 
 
|-
 
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Volume
 +
|-
 +
| colspan="2" | Range: 0 (min) - 30 (max) 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 307: Line 266:
  
  
 +
===SkipTrack===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetLEDState'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SkipTrack'''
 
|-
 
|-
| colspan="2" | Sets the state of a single LED 
+
| colspan="2" | Jump to the next or previous track 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
+
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | Port
+
| width="90%" | Direction
 
|-
 
|-
| colspan="2" | 0 = PortA, 1 = PortB 
+
| colspan="2" | 0=Next, 1=Previous 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | LED
 
|-
 
| colspan="2" | 0 = LED0, 7 = LED7 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | State
 
|-
 
| colspan="2" |  
 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 335: Line 285:
  
  
 +
===WhilePlaying===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetRxIdent'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WhilePlaying'''
 
|-
 
|-
| colspan="2" | Gets the Rx ID as a Integer Standard and Extended IDs. 
+
| colspan="2" | Blocking function that waits for module to stop being busy. Returns true if the module is still busy and the timeout period has passed. 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
+
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Buffer
+
| width="90%" | Timeout
 
|-
 
|-
| colspan="2" |  
+
| colspan="2" | Number of milliseconds to wait, 0=WaitForever 
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u32-icon.png]] - ULONG
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-bool-icon.png]] - BOOL
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 
|-
 
| colspan="2" | Must be called before any other CAN component macros to enable and initialise the CAN peripheral.  
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
 
 
  
  
Line 376: Line 312:
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
+
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Connections'''
+
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Connections
 
|-
 
|-
 
|-
 
|-
Line 410: Line 346:
 
| colspan="2" | Controls if we are monitoring the busy pin or not. Used by the IfBusy component macro. 
 
| colspan="2" | Controls if we are monitoring the busy pin or not. Used by the IfBusy component macro. 
 
|-
 
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
+
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Simulations'''
+
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation
 
|-
 
|-
 
|-
 
|-

Latest revision as of 13:09, 7 February 2023

Author Matrix TSL
Version 1.0
Category Audio Output


DFPlayer (MP3 / WAV) component

A small module capable of streaming MP3 and WAV audio files from a micro SD card. Controlled via a serial UART connection to the microcontroller.

Component Source Code

Please click here to download the component source project: FC_Comp_Source_DFPlayer.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_DFPlayer.fcfx

Detailed description

No detailed description exists yet for this component

Examples

No Examples here yet






Macro reference

GetError

Fc9-comp-macro.png GetError
Checks for any errors and returns the error code. 1=ModuleBusy, 2=SleepMode, 3=SerialError, 4=ChecksumError, 5=TrackOutOfScope, 6=TrackNotFound, 7=InsertionError, 8=SDFail, 10=Sleep 
Fc9-u8-icon.png - BYTE Return


GetReplyByte

Fc9-comp-macro.png GetReplyByte
Reads a single byte from the last reply. Each reply contains 4 bytes starting with the command code. 
Fc9-u8-icon.png - BYTE Index
Range: 0-3 / 0=Command, 1=Feedback, 2=Data MSB, 3=Data LSB 
Fc9-u8-icon.png - BYTE Return


Initialise

Fc9-comp-macro.png Initialise
Sets up the UART and does some housekeeping. Must be called before calling any of the other component macros. 
Fc9-void-icon.png - VOID Return


IsPlaying

Fc9-comp-macro.png IsPlaying
Checks to see if the last played track is still playing 
Fc9-bool-icon.png - BOOL Return


IsReplyAvailable

Fc9-comp-macro.png IsReplyAvailable
Checks to see if new data has been received from the module. Returns true when new data is available. Collect the data using the GetReplyByte macro. 
Fc9-bool-icon.png - BOOL Return


PausePlayResetStop

Fc9-comp-macro.png PausePlayResetStop
Allows the current playing track to be paused, restarted or reset 
Fc9-u16-icon.png - UINT Mode
0=Pause, 1=Play, 2=Reset, 3=Stop 
Fc9-void-icon.png - VOID Return


PlayTrack

Fc9-comp-macro.png PlayTrack
Plays track from the selected folder. MP3 & Advert folder track numbers should be 4 characters long e.g. 0001 any name.mp3, Other folder track numbers should be 3 characters long e.g. 001 Any name.mp3, Root the Track played in placement order. 
Fc9-u8-icon.png - BYTE Directory
0=Root, 1=Folder "01" - 99=Folder "99", 100=MP3, 101=Advert 
Fc9-u16-icon.png - UINT Track
Track number 1="001*.MP3" / "0001*.MP3", 100="100*.MP3" / "0100*.MP3" 
Fc9-void-icon.png - VOID Return


SendCommand

Fc9-comp-macro.png SendCommand
Sends a command to the DFPlayer module 
Fc9-u8-icon.png - BYTE Command
Command code byte 
Fc9-bool-icon.png - BOOL Feedback
Collect feedback byte: Range 0-1 
Fc9-u16-icon.png - UINT Parameter
16-bit Parameter 
Fc9-void-icon.png - VOID Return


SetEQ

Fc9-comp-macro.png SetEQ
Sets the equaliser mode for the module 
Fc9-u8-icon.png - BYTE EQMode
Range: 0-5 0=Normal, 1=Pop, 2=Rock, 3=Jazz, 4=Classic, 5=Bass 
Fc9-void-icon.png - VOID Return


SetVolume

Fc9-comp-macro.png SetVolume
Sets the volume level for the module 
Fc9-u8-icon.png - BYTE Volume
Range: 0 (min) - 30 (max) 
Fc9-void-icon.png - VOID Return


SkipTrack

Fc9-comp-macro.png SkipTrack
Jump to the next or previous track 
Fc9-bool-icon.png - BOOL Direction
0=Next, 1=Previous 
Fc9-void-icon.png - VOID Return


WhilePlaying

Fc9-comp-macro.png WhilePlaying
Blocking function that waits for module to stop being busy. Returns true if the module is still busy and the timeout period has passed. 
Fc9-u16-icon.png - UINT Timeout
Number of milliseconds to wait, 0=WaitForever 
Fc9-bool-icon.png - BOOL Return


Property reference

Fc9-prop-icon.png Properties
Fc9-conn-icon.png Connections
Fc9-type-16-icon.png Channel
UART Channel selector Software channels are bit banged using generic I/O pins but are not as reliable as hardware channels. Hardware channels use the selected peripheral on-board the target microcontroller. 
Fc9-type-16-icon.png Baud Options
Baud rate option selector 
Fc9-type-14-icon.png Baud Rate
 
Fc9-type-5-icon.png TX
Pin to be used for Transmit data 
Fc9-type-5-icon.png RX
Pin to be used for Receive data 
Fc9-type-7-icon.png Use Busy Pin
Controls if we are monitoring the busy pin or not. Used by the IfBusy component macro. 
Fc9-conn-icon.png Simulation
Fc9-type-7-icon.png Scope Traces
Selects if the scope traces are automatically added to the data recorder window or not. Simulation - draws an approximation of the UART data onto the scope trace. ICT - sets up the scope trace for incoming data and adds UART packet decoding at the correct BAUD. 
Fc9-type-7-icon.png Console Data
Selects if the console data is automatically generated or not 
Fc9-type-16-icon.png Console Format
Controls if the data is shown as a log with time and date stamps or just as raw data 
Fc9-type-21-icon.png Console Columns
Number of characters that can be displayed on a single line of the console. 
Fc9-type-16-icon.png Data Source
Simulation data source used to allow the component to connect to various remote devices Nothing - Simulation data is ignored COM port - Routes the communication data to and from a physical or virtual COM port API - Routes the communication data via a data API component on the Panel. 
Fc9-type-16-icon.png API
Selects which API component to route the communication data via. Add API components to the panel before they will be available in this list. API components are available from the Comms component category.