INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Buttons + Serieller MP3-Player
09.12.2019, 15:33 (Dieser Beitrag wurde zuletzt bearbeitet: 09.12.2019 16:24 von schaarva.)
Beitrag #1
Buttons + Serieller MP3-Player
Hallo alle zusammen,

ein Bekannter von mir möchte, dass ich ihm ein Gerät baue/programmiere, dass auf verschiedenen Knöpfen verschiedene Sounds abspielt. Aber nachdem ich das Programm hochgeladen habe und den Knopf betätigte, geschah nichts. Mit Serieller Kommunikation habe ich mich noch nicht tiefgründig beschäftigt. Kann mir jemand helfen?

Arduino: UNO R3
MP3-Player: siehe Anhang

Mein Programm besteht aus vier Teilen (Als ".zip" auch im Anhang):

Hauptdatei.ino
Code:
#include <SoftwareSerial.h>
#include "ReadButton.h"
#include "Pinbelegung.h"

SoftwareSerial mp3(ARDUINO_RX, ARDUINO_TX);

static int8_t play[8] = {0};
byte song;

void setup() {
  Serial.begin(9600);
  mp3.begin(9600);
  delay(20);

  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  pinMode(button3, INPUT);
  pinMode(button4, INPUT);
  pinMode(button5, INPUT);
  pinMode(button6, INPUT);
  pinMode(button7, INPUT);
  pinMode(button8, INPUT);
}

void loop() {
  ReadButton();
  SwitchCase();
}

void SwitchCase() {

  switch (button) {
    case 0:
      break;
    case 1:
      song= 0x01;
      break;
    case 2:
    song= 0x02;
      break;
    case 3:
      song= 0x03;
      break;
    case 4:
      song= 0x04;
      break;
    case 5:
      song= 0x05;
      break;
    case 6:
      song= 0x06;
      break;
    case 7:
      song= 0x07;
      break;
    case 8:
      song= 0x08;
      break;
  }
  delay(1);
}

void Play(){
delay(20);
  play[0] = 0x7E;
  play[1] = 0xFF;
  play[2] = 0x06;
  play[3] = 0x03;
  play[4] = 0x01;
  play[5] = 0x00;
  play[6] = song;
  play[7] = 0xEF;
  Serial.print("Sending: ");
  for (uint8_t i = 0; i < 8; i++)
  {
    mp3.write(play[i]) ;
  }
}

Pinbelegung.h

Code:
#ifndef PINBELEGUNG_H
#define PINBELEGUNG_H

#define button1 2
#define button2 3
#define button3 4
#define button4 7
#define button5 8
#define button6 9
#define button7 10
#define button8 11

#define ARDUINO_RX 5  //should connect to TX of the Serial MP3 Player module
#define ARDUINO_TX 6  //connect to RX of the module

#endif

ReadButton.cpp

Code:
#include <Arduino.h>
#include "ReadButton.h"
#include "Pinbelegung.h"

int button;

void ReadButton() {
  if (digitalRead(button1) == 1) {
    button = 1;
  }
  if (digitalRead(button2) == 1) {
    button = 2;
  }
  if (digitalRead(button3) == 1) {
    button = 3;
  }
  if (digitalRead(button4) == 1) {
    button = 4;
  }
  if (digitalRead(button5) == 1) {
    button = 5;
  }
  if (digitalRead(button6) == 1) {
    button = 6;
  }
  if (digitalRead(button7) == 1) {
    button = 7;
  }
  if (digitalRead(button8) == 1) {
    button = 8;
  }
}

ReadButton.h

Code:
#ifndef ReadButton_H
#define ReadButton_H

extern void ReadButton();
extern int button;

#endif


Angehängte Datei(en)
.zip  Soundbuttons.zip (Größe: 1,66 KB / Downloads: 30)
.pdf  Serial MP3 Player v1.0 Manual.pdf (Größe: 547,65 KB / Downloads: 74)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2019, 16:04
Beitrag #2
RE: Buttons + Serieller MP3-Player
Wäre doch toll, wenn du uns auch mitteilst, welchen Arduino und MP3-Player du verwendest.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2019, 16:16
Beitrag #3
RE: Buttons + Serieller MP3-Player
(09.12.2019 16:04)hotsystems schrieb:  Wäre doch toll, wenn du uns auch mitteilst, welchen Arduino und MP3-Player du verwendest.

Arduino: UNO R3
MP3-Player: siehe Anhang


Angehängte Datei(en)
.pdf  Serial MP3 Player v1.0 Manual.pdf (Größe: 547,65 KB / Downloads: 39)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2019, 16:30
Beitrag #4
RE: Buttons + Serieller MP3-Player
Warum machst du das so umständlich und packst es in verschiedene Dateien ?

Ich steig da auch nicht durch, es fehlen jegliche Kommentare, die uns helfen könnten, den Sketch zu verstehen.

Leider kenne ich den MP3Player nicht, daher ist es schwer zu helfen.
Warum dieser Exot und nicht den üblichen DFPlayer mini ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2019, 16:36
Beitrag #5
RE: Buttons + Serieller MP3-Player
Nach langem suchen, ich finde nicht den Punkt, wo du die Funktion "Play()" aufrufst.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2019, 16:39
Beitrag #6
RE: Buttons + Serieller MP3-Player
(09.12.2019 16:36)hotsystems schrieb:  Nach langem suchen, ich finde nicht den Punkt, wo du die Funktion "Play()" aufrufst.

Smile Oh, stimmt... das wird wohl der Fehler sein.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2019, 16:42
Beitrag #7
RE: Buttons + Serieller MP3-Player
(09.12.2019 16:39)schaarva schrieb:  
(09.12.2019 16:36)hotsystems schrieb:  Nach langem suchen, ich finde nicht den Punkt, wo du die Funktion "Play()" aufrufst.

Smile Oh, stimmt... das wird wohl der Fehler sein.

Schön, wenn ich helfen konnte.

Du kannst es uns aber def. leichter machen.
Sorry, aber dein Sketch ist einfach blöde zu lesen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.12.2019, 17:29 (Dieser Beitrag wurde zuletzt bearbeitet: 09.12.2019 17:29 von Tommy56.)
Beitrag #8
RE: Buttons + Serieller MP3-Player
(09.12.2019 15:33)schaarva schrieb:  void ReadButton() {
if (digitalRead(button1) == 1) {
button = 1;
}
if (digitalRead(button2) == 1) {
button = 2;
}
if (digitalRead(button3) == 1) {
button = 3;
}
if (digitalRead(button4) == 1) {
button = 4;
}
if (digitalRead(button5) == 1) {
button = 5;
}
if (digitalRead(button6) == 1) {
button = 6;
}
if (digitalRead(button7) == 1) {
button = 7;
}
if (digitalRead(button8) == 1) {
button = 8;
}
}
[/code]
Du solltest zur Vereinfachung im 1. Schritt über die Verwendung eines Arrays für die Pins nachdenken. Der 2. Schritt könnte dann noch ein struct aus Pin und Songnummer sein.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ESP32 Web Radio VS1053 - touch-"buttons" funktionieren nur so halb crazysky 4 272 14.06.2020 22:43
Letzter Beitrag: crazysky
  Verzögerung bei Serieller Kommunikation dl3ad 15 1.872 27.05.2020 21:57
Letzter Beitrag: GuaAck
  Zeichendarstellung Serieller Monitor Ver. 1.8.12 Retian 3 315 17.05.2020 20:07
Letzter Beitrag: Tommy56
  Serieller Monitor allogenes 2 455 17.03.2020 09:47
Letzter Beitrag: allogenes
  Ausgabe serieller Monitor matschbirne 3 1.024 29.07.2019 18:14
Letzter Beitrag: Hilgi
  [Vorstellung] Serieller Sender ohne 2. MC Tommy56 2 786 13.04.2019 22:03
Letzter Beitrag: Tommy56
  Serieller Monitor BluPxl 13 3.482 28.05.2018 16:21
Letzter Beitrag: BluPxl
  Serieller Eingang sendet alles per SMS weiter Timmae3000 2 1.259 08.03.2018 09:30
Letzter Beitrag: hotsystems
  Serieller string zwischenspeichern und wieder ausgeben. Matt 15 4.423 03.03.2018 20:23
Letzter Beitrag: Tommy56
  Arduino Serieller Plotter Nextero 4 2.766 13.12.2017 14:48
Letzter Beitrag: Nextero

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste