——
#DonLucElectronics #DonLuc #Sound #Arduino #MicroOLED #ProtoShield #SparkFunQwiicMP3 #SparkFunRedBoardQwiic #Project #Programming #Electronics #Microcontrollers #Consultant
——
——
——
——
SparkFun ProtoShield Kit
The SparkFun ProtoShield Kit lets you customize your own Arduino shield using whatever circuit you can come up with and then test it to make sure everything is working the way it should. The SparkFun ProtoShield Kit is based off the Arduino R3’s footprint that allows you to easily incorporate it with favorite Arduino-based device.
One of our favorite features with this version of the ProtoShield Kit is the solderable-like breadboard prototyping area. Half of this area was designed with a breadboard in mind. On the underside of the shield you will be able to see open jumper pads between each through hole to make a connection like a breadboard. Once you add a component, simply add a solder jumper between holes to make a connection. For those that prefer the standard prototyping pads.
DL2301Mk04
1 x SparkFun RedBoard Qwiic
1 x SparkFun ProtoShield Kit
1 x SparkFun Micro OLED Breakout (Qwiic)
1 x SparkFun Qwiic MP3 Trigger
1 x microSD Card – 2GB
1 x Panel Mount 10K potentiometer
1 x Knob
2 x Rocker Switch – SPST (Round)
1 x Qwiic Cable – 50mm
1 x Qwiic Cable – 100mm
1 x Dayton Audio Reference 3″ Full-Range Drive
1 x SparkFun Cerberus USB Cable
——
SparkFun RedBoard Qwiic
PO1 – Analog A0
SDA – Analog A4
SCL – Analog A5
SW0 – Digital 8
SW1 – Digital 7
VIN – +5V
VIN – +3.3V
GND – GND
——
DL2301Mk04p.ino
/* ***** Don Luc Electronics © *****
Software Version Information
#16 - Sound - SparkFun ProtoShield Kit - Mk23
16-04
DL2301Mk04p.ino
1 x SparkFun RedBoard Qwiic
1 x SparkFun ProtoShield Kit
1 x SparkFun Micro OLED Breakout (Qwiic)
1 x SparkFun Qwiic MP3 Trigger
1 x microSD Card - 2GB
1 x Panel Mount 10K potentiometer
1 x Knob
2 x Rocker Switch - SPST (Round)
1 x Qwiic Cable - 50mm
1 x Qwiic Cable - 100mm
1 x Dayton Audio Reference 3" Full-Range Drive
1 x SparkFun Cerberus USB Cable
*/
// Include the Library Code
// Wire communicate with I2C / TWI devices
#include <Wire.h>
// SparkFun MP3 Trigger
#include "SparkFun_Qwiic_MP3_Trigger_Arduino_Library.h"
// SparkFun Micro OLED
#include <SFE_MicroOLED.h>
// SparkFun MP3 Trigger
MP3TRIGGER mp3;
int iSongCount = 0;
int x = 0;
// Volume
int iVolume = A0;
int iVolumeLevel = 0;
// EQ Setting Normal
byte bEQSetting = 0;
// Play Next
const int iPlayNext = 8;
// Variable for reading the iPlayNext status
int iPlayNextState = 0;
// Play Previous
const int iPlayPrevious = 7;
// Variable for reading the iPlayPrevious status
int iPlayPreviousState = 0;
// SparkFun Micro OLED
#define PIN_RESET 9
#define DC_JUMPER 1
// I2C declaration
MicroOLED oled(PIN_RESET, DC_JUMPER);
// iLED ProtoShield
int iLED = 13;
// Software Version Information
String sver = "16-23";
void loop()
{
// SparkFun MP3 Trigger
if (mp3.isPlaying() == false) {
if ( x > iSongCount ) {
x = 0;
} else {
x = x + 1;
}
// Play Track
mp3.playTrack( x );
} else {
// Volume
isVolume();
// Play Next
isPlayNext();
// Play Previous
isPlayPrevious();
}
// Micro OLED
isMicroOLED();
}
getMP3.ino
// MP3
// Setup MP3
void isSetupMP3(){
// Check to see if Qwiic MP3 is present on the bus
if (mp3.begin() == false)
{
// Qwiic MP3 failed to respond. Please check wiring and possibly the I2C address. Freezing...
while (1);
}
if (mp3.hasCard() == false)
{
// Qwiic MP3 is missing its SD card. Freezing...
while (1);
}
// Song Count
iSongCount = mp3.getSongCount();
// EQ Setting
// 0 Normal
// 1 Pop
// 2 Rock
// 3 Jazz
// 4 Classic
// 5 Bass
bEQSetting = 5;
bEQSetting = mp3.getEQ();
// Initialize the iPlayNext
pinMode( iPlayNext, INPUT);
// Initialize the iPlayPrevious
pinMode( iPlayPrevious, INPUT);
}
// Volume
void isVolume() {
// Volume
iVolumeLevel = analogRead( iVolume );
// (0-1023 for 10 bits or 0-4095 for 12 bits)
iVolumeLevel = map(iVolumeLevel, 0, 1023, 0, 10);
// Volume can be 0 (off) to 31 (max)
// Volume can be 0 (off) to 10 (Breakfast)
mp3.setVolume( iVolumeLevel );
}
// Play Next
void isPlayNext() {
// Read the state of the iPlayNext value
iPlayNextState = digitalRead( iPlayNext );
if ( iPlayNextState == HIGH ) {
mp3.stop();
if ( x > iSongCount ) {
x = 0;
} else {
x = x + 1;
}
// Play Track
mp3.playTrack( x );
}
}
// Play Previous
void isPlayPrevious() {
// Read the state of the iPlayPrevious value
iPlayPreviousState = digitalRead( iPlayPrevious );
if ( iPlayPreviousState == HIGH ) {
mp3.stop();
if ( x > iSongCount ) {
x = 0;
} else {
x = x - 1;
}
// Play Track
mp3.playTrack( x );
}
}
getMicroOLED.ino
// SparkFun Micro OLED
// Setup Micro OLED
void isSetupMicroOLED() {
// Initialize the OLED
oled.begin();
// Clear the display's internal memory
oled.clear(ALL);
// Display what's in the buffer (splashscreen)
oled.display();
// Delay 1000 ms
delay(1000);
// Clear the buffer.
oled.clear(PAGE);
}
// Micro OLED
void isMicroOLED() {
// Text Display FreeIMU
// Clear the display
oled.clear(PAGE);
// Set cursor to top-left
oled.setCursor(0, 0);
// Set font to type 0
oled.setFontType(0);
// Song
oled.print("Song");
// Song Name
oled.setCursor(0, 13);
String songName = mp3.getSongName();
oled.print( songName );
// Song Count
oled.setCursor(0, 24);
oled.print("Song Count");
// Song Count
oled.setCursor(0, 37);
iSongCount = mp3.getSongCount();
oled.print( iSongCount );
oled.display();
}
setup.ino
// Setup
void setup()
{
// Initialize digital pin iLED ProtoShield as an output
pinMode(iLED, OUTPUT);
// Turn the LED on (HIGH is the voltage level)
digitalWrite(iLED, HIGH);
// Wire communicate with I2C / TWI devices
Wire.begin();
// SparkFun MP3 Trigger Setup
isSetupMP3();
// Setup Micro OLED
isSetupMicroOLED();
}
——
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Programming Language
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- IoT
- Wireless (Radio Frequency, Bluetooth, WiFi, Etc…)
- Robotics
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Machine Learning
- RTOS
- Research & Development (R & D)
Instructor, E-Mentor, STEAM, and Arts-Based Training
- Programming Language
- IoT
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
Follow Us
Luc Paquin – Curriculum Vitae – 2023
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc





























