Hallo zusammen,
ich hänge aktuell bei einem simplen(?) Punkt in meinem Code.
Kurze Erklärung: Es soll am Ende ein Art ArcadePiano werden, wo ich Töne mit dem Buzzer aufnehmen kann (die werden noch hinterlegt), nochmal anhören kann und dann an eine weitere Person schicken kann.
Soweit kommen auch die Button States bei mir im seriellen Monitor an, nun stecke ich fest, wie ich die angeklickten Buttons States in ein Array speichern kann und mir das wiedergeben lassen kann.
Vielen Dank im Voraus
Hier mein Code:
int recordToneArray[10];
int recordCount = 0;
// Ton-Buttons: C,D,E,F,G,A,B
const int buttonToneLength = 7;
int buttonTones[buttonToneLength] = {4, 5, 6, 7, 8, 9, 10};
int buttonTonesMode[buttonToneLength] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
int buttonTonesModePrev[buttonToneLength] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
int buttonPlay = 2;
int buttonRecord = 12;
int buttonRecordPrev = 0;
int startRecord = 0;
boolean playMode = digitalRead(buttonPlay);
void setup() {
// Serial Monitor starten
Serial.begin(9600);
// Button-Mode für Töne auf Input setzen
for (int i = 0; i < buttonToneLength ; i++) {
pinMode(buttonTones[i], INPUT_PULLUP);
}
// Button-Mode für Play- und Record-Button setzen
pinMode(buttonPlay, INPUT_PULLUP);
pinMode(buttonRecord, INPUT_PULLUP);
}
void readToneButtons() {
buttonTonesMode[0] = digitalRead(buttonTones[0]);
buttonTonesMode[1] = digitalRead(buttonTones[1]);
buttonTonesMode[2] = digitalRead(buttonTones[2]);
buttonTonesMode[3] = digitalRead(buttonTones[3]);
buttonTonesMode[4] = digitalRead(buttonTones[4]);
buttonTonesMode[5] = digitalRead(buttonTones[5]);
buttonTonesMode[6] = digitalRead(buttonTones[6]);
}
void savePrevMode() {
buttonTonesModePrev[0] = digitalRead(buttonTones[0]);
buttonTonesModePrev[1] = digitalRead(buttonTones[1]);
buttonTonesModePrev[2] = digitalRead(buttonTones[2]);
buttonTonesModePrev[3] = digitalRead(buttonTones[3]);
buttonTonesModePrev[4] = digitalRead(buttonTones[4]);
buttonTonesModePrev[5] = digitalRead(buttonTones[5]);
buttonTonesModePrev[6] = digitalRead(buttonTones[6]);
}
void loop() {
boolean recordMode = digitalRead(buttonRecord);
boolean playMode = digitalRead(buttonPlay);
if (recordMode == LOW && buttonRecordPrev == 0) {
startRecord = 1;
buttonRecordPrev = 1;
Serial.println("GO");
} if (recordMode == HIGH) {
buttonRecordPrev = 0;
}
if (startRecord == 1) {
Serial.println("Start record!");
while (startRecord == 1) {
readToneButtons();
if ((buttonTonesMode[0] != buttonTonesModePrev[0]) && buttonTonesMode[0] == LOW) {
Serial.println("0");
recordCount++;
delay(50);
Serial.println("Pressed");
savePrevMode();
} else if ((buttonTonesMode[1] != buttonTonesModePrev[1]) && buttonTonesMode[1] == LOW) {
Serial.println("1");
recordCount++;
delay(50);
Serial.println("Pressed");
savePrevMode();
} else if ((buttonTonesMode[2] != buttonTonesModePrev[2]) && buttonTonesMode[2] == LOW) {
Serial.println("2");
recordCount++;
delay(50);
Serial.println("Pressed");
savePrevMode();
} else if ((buttonTonesMode[3] != buttonTonesModePrev[3]) && buttonTonesMode[3] == LOW) {
Serial.println("3");
recordCount++;
delay(50);
Serial.println("Pressed");
savePrevMode();
} else if ((buttonTonesMode[4] != buttonTonesModePrev[4]) && buttonTonesMode[4] == LOW) {
Serial.println("4");
recordCount++;
delay(50);
Serial.println("Pressed");
savePrevMode();
} else if ((buttonTonesMode[5] != buttonTonesModePrev[5]) && buttonTonesMode[5] == LOW) {
Serial.println("5");
recordCount++;
delay(50);
Serial.println("Pressed");
savePrevMode();
} else if ((buttonTonesMode[6] != buttonTonesModePrev[6]) && buttonTonesMode[6] == LOW) {
Serial.println("6");
recordCount++;
delay(50);
Serial.println("Pressed");
savePrevMode();
}
if (recordCount == 9) {
startRecord = 0;
recordCount = 0;
Serial.println("Record finished!");
}
boolean recordMode = digitalRead(buttonRecord);
if (recordMode == LOW && buttonRecordPrev == 0) {
startRecord = 0;
recordCount = 0;
buttonRecordPrev = 1;
Serial.println("Record finished!");
} else if (recordMode == HIGH) {
buttonRecordPrev = 0;
}
}
}
}
void showArray() {
for (int i= 0; i <10; i++) {
if (playMode == LOW && buttonPlay == 0) {
Serial.print("Hallo");
}
Serial.println();
}
}
void playback() {
}```