Thank you for your answer!
You should post serial output as a code-section not as a screenshot
too less information
As the output was the same for the entire sound I figured to post a screenshot to save you 3 minutes of serial output.
But this code:
// MACRO-START * MACRO-START * MACRO-START * MACRO-START * MACRO-START * MACRO-START *
// a detailed explanation how these macros work is given in this tutorial
// https://forum.arduino.cc/t/comfortable-serial-debug-output-short-to-write-fixed-text-name-and-content-of-any-variable-code-example/888298
#define dbg(myFixedText, variableName) \
Serial.print( F(#myFixedText " " #variableName"=") ); \
Serial.println(variableName);
#define dbgi(myFixedText, variableName,timeInterval) \
{ \
static unsigned long intervalStartTime; \
if ( millis() - intervalStartTime >= timeInterval ){ \
intervalStartTime = millis(); \
Serial.print( F(#myFixedText " " #variableName"=") ); \
Serial.println(variableName); \
} \
}
#define dbgc(myFixedText, variableName) \
{ \
static long lastState; \
if ( lastState != variableName ){ \
Serial.print( F(#myFixedText " " #variableName" changed from ") ); \
Serial.print(lastState); \
Serial.print( F(" to ") ); \
Serial.println(variableName); \
lastState = variableName; \
} \
}
#define dbgcf(myFixedText, variableName) \
{ \
static float lastState; \
if ( lastState != variableName ){ \
Serial.print( F(#myFixedText " " #variableName" changed from ") ); \
Serial.print(lastState); \
Serial.print( F(" to ") ); \
Serial.println(variableName); \
lastState = variableName; \
} \
}
// MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END *
#include <mp3tf16p.h>
#include <Wire.h>
#include <Adafruit_CAP1188.h>
#include <Adafruit_NeoPixel.h>
MP3Player mp3(10, 11);
int volumeLevel;
Adafruit_CAP1188 cap = Adafruit_CAP1188();
#define CAP1188_SENSITIVITY 0x6F
uint8_t prevTouch1 = 0;
uint8_t prevTouch2 = 0;
int x = 1;
#define PIN 6
#define NUMPIXELS 24
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
uint32_t black = pixels.Color(0, 0, 0);
int sound = 2;
void setup(void)
{
Serial.begin(9600);
mp3.initialize();
if (!cap.begin()) {
while (1);
}
pinMode(sound, INPUT);
pixels.begin();
pixels.setBrightness(50);
}
void loop(void)
{
int volumelevel = 12;
int trackCount = mp3.player.readFileCounts();
dbgi("01", trackCount, 1000);
for (int i = 1; i <= trackCount ; i++) {
dbgc("02", i);
mp3.playTrackNumber(i, volumelevel, false);
while (!mp3.playCompleted()) {
int soundStatus = digitalRead(sound);
dbgi("03", soundStatus, 1000);
uint8_t touched = cap.touched();
if (touched != prevTouch1) {
if (touched & 0x01) {
mp3.playTrackNumber((i + 1), volumelevel, false);
i ++;
}
prevTouch1 = touched;
}
if (touched != prevTouch2) {
if (touched & 0x02) {
x ++;
if (x == 3) {
x = 1;
}
}
prevTouch2 = touched;
}
if (x == 1) {
dbgi("x==1", x, 1000);
if (soundStatus == 0) {
dbgi("soundStatus == 0", soundStatus, 1000);
pixels.clear();
pixels.setPixelColor(0, pixels.Color(255, 0, 0));
pixels.setPixelColor(12, pixels.Color(255, 0, 0));
pixels.setPixelColor(1, pixels.Color(255, 127, 0));
pixels.setPixelColor(23, pixels.Color(255, 127, 0));
pixels.setPixelColor(2, pixels.Color(255, 255, 0));
pixels.setPixelColor(22, pixels.Color(255, 255, 0));
pixels.setPixelColor(3, pixels.Color(127, 255, 0));
pixels.setPixelColor(21, pixels.Color(127, 255, 0));
pixels.setPixelColor(4, pixels.Color(0, 255, 0));
pixels.setPixelColor(20, pixels.Color(0, 255, 0));
pixels.setPixelColor(5, pixels.Color(0, 255, 127));
pixels.setPixelColor(19, pixels.Color(0, 255, 127));
pixels.setPixelColor(6, pixels.Color(0, 255, 255));
pixels.setPixelColor(18, pixels.Color(0, 255, 255));
pixels.setPixelColor(7, pixels.Color(0, 127, 255));
pixels.setPixelColor(17, pixels.Color(0, 127, 255));
pixels.setPixelColor(8, pixels.Color(0, 0, 255));
pixels.setPixelColor(16, pixels.Color(0, 0, 255));
pixels.setPixelColor(9, pixels.Color(127, 0, 255));
pixels.setPixelColor(15, pixels.Color(127, 0, 255));
pixels.setPixelColor(10, pixels.Color(255, 0, 255));
pixels.setPixelColor(14, pixels.Color(255, 0, 255));
pixels.setPixelColor(11, pixels.Color(255, 0, 127));
pixels.setPixelColor(13, pixels.Color(255, 0, 127));
pixels.show();
}
else {
dbgi("else soundStatus", soundStatus, 1000);
pixels.clear();
pixels.fill(black, 0, 12);
pixels.show();
}
}
else {
dbgi("else x !=1",x,1000);
pixels.clear();
pixels.fill(black, 0, 12);
pixels.show();
}
}
}
mp3.serialPrintStatus(MP3_ALL_MESSAGE);
}
Generates the serial output below:
21:39:12.772 -> "else soundStatus" soundStatus=1
21:39:13.701 -> "03" soundStatus=1
21:39:13.701 -> "x==1" x=1
21:39:13.748 -> "else soundStatus" soundStatus=1
21:39:14.728 -> "03" soundStatus=1
21:39:14.728 -> "x==1" x=1
21:39:14.774 -> "else soundStatus" soundStatus=1
21:39:15.706 -> "03" soundStatus=1
21:39:15.706 -> "x==1" x=1
21:39:15.753 -> "else soundStatus" soundStatus=1
21:39:16.731 -> "03" soundStatus=1
21:39:16.731 -> "x==1" x=1
21:39:16.778 -> "else soundStatus" soundStatus=1
21:39:17.706 -> "03" soundStatus=1
21:39:17.706 -> "x==1" x=1
21:39:17.752 -> "else soundStatus" soundStatus=1
21:39:18.748 -> "03" soundStatus=1
21:39:18.748 -> "x==1" x=1
21:39:18.748 -> "else soundStatus" soundStatus=1
21:39:19.701 -> "soundStatus == 0" soundStatus=0
21:39:19.747 -> "03" soundStatus=1
21:39:19.747 -> "x==1" x=1
21:39:19.747 -> "else soundStatus" soundStatus=1
21:39:20.750 -> "03" soundStatus=1
21:39:20.750 -> "x==1" x=1
21:39:20.750 -> "else soundStatus" soundStatus=1
21:39:20.978 -> "soundStatus == 0" soundStatus=0
21:39:21.749 -> "03" soundStatus=1
21:39:21.749 -> "x==1" x=1
21:39:21.749 -> "else soundStatus" soundStatus=1
21:39:22.750 -> "03" soundStatus=1
21:39:22.750 -> "x==1" x=1
21:39:22.750 -> "else soundStatus" soundStatus=1
21:39:23.754 -> "03" soundStatus=1
21:39:23.754 -> "x==1" x=1
21:39:23.754 -> "else soundStatus" soundStatus=1
21:39:24.265 -> "soundStatus == 0" soundStatus=0
21:39:24.728 -> "03" soundStatus=1
21:39:24.728 -> "x==1" x=1
21:39:24.775 -> "else soundStatus" soundStatus=1
21:39:25.475 -> "soundStatus == 0" soundStatus=0
21:39:25.754 -> "03" soundStatus=1
21:39:25.754 -> "x==1" x=1
21:39:25.754 -> "else soundStatus" soundStatus=1
21:39:26.684 -> "soundStatus == 0" soundStatus=0
21:39:26.730 -> "03" soundStatus=1
21:39:26.730 -> "x==1" x=1
21:39:26.777 -> "else soundStatus" soundStatus=1
21:39:27.754 -> "03" soundStatus=1
21:39:27.754 -> "x==1" x=1
21:39:27.800 -> "else soundStatus" soundStatus=1
21:39:27.894 -> "soundStatus == 0" soundStatus=0
21:39:28.739 -> "03" soundStatus=1
21:39:28.739 -> "x==1" x=1
21:39:28.786 -> "else soundStatus" soundStatus=1
21:39:29.763 -> "03" soundStatus=1
21:39:29.763 -> "x==1" x=1
21:39:29.763 -> "else soundStatus" soundStatus=1
21:39:29.856 -> "soundStatus == 0" soundStatus=0
21:39:30.742 -> "03" soundStatus=1
21:39:30.742 -> "x==1" x=1
21:39:30.789 -> "else soundStatus" soundStatus=1
21:39:31.765 -> "03" soundStatus=1
21:39:31.765 -> "x==1" x=1
21:39:31.765 -> "else soundStatus" soundStatus=1
21:39:31.859 -> "soundStatus == 0" soundStatus=0
21:39:32.742 -> "03" soundStatus=1
21:39:32.742 -> "x==1" x=1
21:39:32.789 -> "else soundStatus" soundStatus=1
21:39:33.768 -> "03" soundStatus=1
21:39:33.768 -> "x==1" x=1
21:39:33.768 -> "else soundStatus" soundStatus=1
21:39:34.143 -> "soundStatus == 0" soundStatus=0
21:39:34.750 -> "03" soundStatus=1
21:39:34.750 -> "x==1" x=1
21:39:34.796 -> "else soundStatus" soundStatus=1
21:39:35.776 -> "03" soundStatus=1
21:39:35.776 -> "x==1" x=1
21:39:35.776 -> "else soundStatus" soundStatus=1
21:39:36.478 -> "soundStatus == 0" soundStatus=0
21:39:36.756 -> "03" soundStatus=1
21:39:36.756 -> "x==1" x=1
21:39:36.802 -> "else soundStatus" soundStatus=1
21:39:37.781 -> "03" soundStatus=1
21:39:37.781 -> "x==1" x=1
21:39:37.781 -> "else soundStatus" soundStatus=1
21:39:38.756 -> "03" soundStatus=1
21:39:38.756 -> "x==1" x=1
21:39:38.802 -> "else soundStatus" soundStatus=1
21:39:39.785 -> "03" soundStatus=1
21:39:39.785 -> "x==1" x=1
21:39:39.785 -> "else soundStatus" soundStatus=1
21:39:40.160 -> "soundStatus == 0" soundStatus=0
21:39:40.768 -> "03" soundStatus=1
21:39:40.768 -> "x==1" x=1
21:39:40.815 -> "else soundStatus" soundStatus=1
21:39:41.750 -> "03" soundStatus=1
21:39:41.750 -> "x==1" x=1
21:39:41.796 -> "else soundStatus" soundStatus=1
21:39:42.773 -> "03" soundStatus=1
21:39:42.773 -> "x==1" x=1
21:39:42.820 -> "else soundStatus" soundStatus=1
21:39:43.430 -> "soundStatus == 0" soundStatus=0
21:39:43.758 -> "03" soundStatus=1
21:39:43.758 -> "x==1" x=1
21:39:43.805 -> "else soundStatus" soundStatus=1
21:39:44.787 -> "03" soundStatus=1
21:39:44.787 -> "x==1" x=1
21:39:44.787 -> "else soundStatus" soundStatus=1
21:39:45.393 -> "soundStatus == 0" soundStatus=0
21:39:45.765 -> "03" soundStatus=1
21:39:45.765 -> "x==1" x=1
21:39:45.812 -> "else soundStatus" soundStatus=1
21:39:46.788 -> "03" soundStatus=1
21:39:46.788 -> "x==1" x=1
The code with the neopixel commented out:
// MACRO-START * MACRO-START * MACRO-START * MACRO-START * MACRO-START * MACRO-START *
// a detailed explanation how these macros work is given in this tutorial
// https://forum.arduino.cc/t/comfortable-serial-debug-output-short-to-write-fixed-text-name-and-content-of-any-variable-code-example/888298
#define dbg(myFixedText, variableName) \
Serial.print( F(#myFixedText " " #variableName"=") ); \
Serial.println(variableName);
#define dbgi(myFixedText, variableName,timeInterval) \
{ \
static unsigned long intervalStartTime; \
if ( millis() - intervalStartTime >= timeInterval ){ \
intervalStartTime = millis(); \
Serial.print( F(#myFixedText " " #variableName"=") ); \
Serial.println(variableName); \
} \
}
#define dbgc(myFixedText, variableName) \
{ \
static long lastState; \
if ( lastState != variableName ){ \
Serial.print( F(#myFixedText " " #variableName" changed from ") ); \
Serial.print(lastState); \
Serial.print( F(" to ") ); \
Serial.println(variableName); \
lastState = variableName; \
} \
}
#define dbgcf(myFixedText, variableName) \
{ \
static float lastState; \
if ( lastState != variableName ){ \
Serial.print( F(#myFixedText " " #variableName" changed from ") ); \
Serial.print(lastState); \
Serial.print( F(" to ") ); \
Serial.println(variableName); \
lastState = variableName; \
} \
}
// MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END *
#include <mp3tf16p.h>
#include <Wire.h>
#include <Adafruit_CAP1188.h>
#include <Adafruit_NeoPixel.h>
MP3Player mp3(10, 11);
int volumeLevel;
Adafruit_CAP1188 cap = Adafruit_CAP1188();
#define CAP1188_SENSITIVITY 0x6F
uint8_t prevTouch1 = 0;
uint8_t prevTouch2 = 0;
int x = 1;
#define PIN 6
#define NUMPIXELS 24
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
uint32_t black = pixels.Color(0, 0, 0);
int sound = 2;
void setup(void)
{
Serial.begin(9600);
mp3.initialize();
if (!cap.begin()) {
while (1);
}
pinMode(sound, INPUT);
pixels.begin();
pixels.setBrightness(50);
}
void loop(void)
{
int volumelevel = 12;
int trackCount = mp3.player.readFileCounts();
dbgi("01", trackCount, 1000);
for (int i = 1; i <= trackCount ; i++) {
dbgc("02", i);
mp3.playTrackNumber(i, volumelevel, false);
while (!mp3.playCompleted()) {
int soundStatus = digitalRead(sound);
dbgi("03", soundStatus, 1000);
uint8_t touched = cap.touched();
if (touched != prevTouch1) {
if (touched & 0x01) {
mp3.playTrackNumber((i + 1), volumelevel, false);
i ++;
}
prevTouch1 = touched;
}
if (touched != prevTouch2) {
if (touched & 0x02) {
x ++;
if (x == 3) {
x = 1;
}
}
prevTouch2 = touched;
}
/*if (x == 1) {
dbgi("x==1", x, 1000);
if (soundStatus == 0) {
dbgi("soundStatus == 0", soundStatus, 1000);
pixels.clear();
pixels.setPixelColor(0, pixels.Color(255, 0, 0));
pixels.setPixelColor(12, pixels.Color(255, 0, 0));
pixels.setPixelColor(1, pixels.Color(255, 127, 0));
pixels.setPixelColor(23, pixels.Color(255, 127, 0));
pixels.setPixelColor(2, pixels.Color(255, 255, 0));
pixels.setPixelColor(22, pixels.Color(255, 255, 0));
pixels.setPixelColor(3, pixels.Color(127, 255, 0));
pixels.setPixelColor(21, pixels.Color(127, 255, 0));
pixels.setPixelColor(4, pixels.Color(0, 255, 0));
pixels.setPixelColor(20, pixels.Color(0, 255, 0));
pixels.setPixelColor(5, pixels.Color(0, 255, 127));
pixels.setPixelColor(19, pixels.Color(0, 255, 127));
pixels.setPixelColor(6, pixels.Color(0, 255, 255));
pixels.setPixelColor(18, pixels.Color(0, 255, 255));
pixels.setPixelColor(7, pixels.Color(0, 127, 255));
pixels.setPixelColor(17, pixels.Color(0, 127, 255));
pixels.setPixelColor(8, pixels.Color(0, 0, 255));
pixels.setPixelColor(16, pixels.Color(0, 0, 255));
pixels.setPixelColor(9, pixels.Color(127, 0, 255));
pixels.setPixelColor(15, pixels.Color(127, 0, 255));
pixels.setPixelColor(10, pixels.Color(255, 0, 255));
pixels.setPixelColor(14, pixels.Color(255, 0, 255));
pixels.setPixelColor(11, pixels.Color(255, 0, 127));
pixels.setPixelColor(13, pixels.Color(255, 0, 127));
pixels.show();
}
else {
dbgi("else soundStatus", soundStatus, 1000);
pixels.clear();
pixels.fill(black, 0, 12);
pixels.show();
}
}
else {
dbgi("else x !=1",x,1000);
pixels.clear();
pixels.fill(black, 0, 12);
pixels.show();
}*/
}
}
mp3.serialPrintStatus(MP3_ALL_MESSAGE);
}
Gives this serial output:
21:47:06.415 -> Initializing