Guuten Morgen...mein Konto is aber eingestaubt..schande über mich.
Ich bastel grade an einem Soundboard mit 12 Buttons...funzt auch gut...eingentlich...nur das die Powerbank nach 39 Sekunden ausgeht weil zu wenig mA und der DFPlayer beim einschalten knackt...könnte ich theoretisch mit leben..wollte ich aber so erstma nicht.
Laut Beiträgen kann man auf dem DFPlayer was umlöten, dadurch würde das knacken verschwinden und er noch weniger mA verbrauchen...das würde jedoch nicht das 39 Sekunden Problem lösen...
Mit einem Relais das nach definierter Zeit anzieht nachdem der DFPlayer AN is und den Lautsprecher frei gäbe wäre...durch den Strom des Relais...auch das gelöst.
Soundboard Sketch läuft....Relais Sketch läuft...nur zusammen leider nicht...
Ich verstehe leider nicht warum...
Schubst mich einer mal in die Richtung?
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
const int Rel = 17;// Rel Pin
unsigned long currentMillis=0;
const long interval = 5000; //Einschaltverzögerung (milliseconds)
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
int buttonPins[12] = {2,3,4,5,6,7,8,9,12,13,14,15}; // Taster
void setup() {
mySoftwareSerial.begin(9600); // SoftwareSerial Kommunikation
Serial.begin(115200); // Serial Monitor
if (!myDFPlayer.begin(mySoftwareSerial)) { // Verbindung der Software Serial Kommunikation mit dem DFPlayer
Serial.println(F("Unable to begin:"));
Serial.println(F("Verkabelung Falsch"));
Serial.println(F("Keine SD Karte"));
while(true){
delay(0);
}
myDFPlayer.volume(25); // Lautstärke auf 10 ( Werte von 0 – 30 ist möglich)
for (int i=0; i<12; i++){ // wiederhole 16 Mal (für jeden Taster)
pinMode(buttonPins[i], INPUT_PULLUP); // Taster werden mit internen Pullup-Widerständen verwendet
}
pinMode(Rel, OUTPUT); //Relais Pin
// digitalWrite(Rel, LOW); //Setze auf Low
}
}
void loop() {
if (millis() - currentMillis > interval)
{
digitalWrite(Rel, HIGH);
}
for (int i=0; i<12; i++){ // wiederhole 12 Mal (für jeden Taster)
if (digitalRead(buttonPins[i]) == LOW){ // wenn ein Taster gedrückt wird
Serial.println(i);
myDFPlayer.playMp3Folder(i+1); // spiele das MP3 der Nummer des Tasters nach von der SD-Karte
delay(0);
}
}
}
Hier mal zum testen.
Wenn das Relais bereits beim Start EIN ist, dann musst Du oben die Konstante an auf HIGH setzen.
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
const byte Rel = 17;// Rel Pin
const bool an = LOW; // constante ist LOWaktiv oder HIGHaktiv zu setzen
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
const byte buttonNums = 12;
const byte buttonPins[buttonNums] = {2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15}; // Taster
void setup()
{
mySoftwareSerial.begin(9600); // SoftwareSerial Kommunikation
Serial.begin(115200); // Serial Monitor
if (!myDFPlayer.begin(mySoftwareSerial)) // Verbindung der Software Serial Kommunikation mit dem DFPlayer
{
Serial.println(F("Unable to begin:"));
Serial.println(F("Verkabelung Falsch"));
Serial.println(F("Keine SD Karte"));
while (true)
{
delay(0);
}
}
myDFPlayer.volume(25); // Lautstärke auf 10 ( Werte von 0 – 30 ist möglich)
for (int i = 0; i < buttonNums; i++) // wiederhole 16 Mal (für jeden Taster)
{
pinMode(buttonPins[i], INPUT_PULLUP); // Taster werden mit internen Pullup-Widerständen verwendet
}
pinMode(Rel, OUTPUT); //Relais Pin
digitalWrite(Rel, !an); //Setze auf aus
}
void loop()
{
if (digitalRead(Rel) == an &&
millis() > 7000)
{
digitalWrite(Rel, HIGH);
}
for (int i = 0; i < buttonNums; i++) // wiederhole 12 Mal (für jeden Taster)
{
if (digitalRead(buttonPins[i]) == LOW) // wenn ein Taster gedrückt wird
{
Serial.println(i);
myDFPlayer.playMp3Folder(i + 1); // spiele das MP3 der Nummer des Tasters nach von der SD-Karte
delay(0);
}
}
}
Der IOpin soll mit maximal 20 mA belastet werden.
20 mA heisst Spulenwiderstand mindestens
5V / 0.02A = 250 Ohm.
Das 5V Relais hat höchstwahrscheinlich einen kleineren Spulenwiderstand
irgendwie muss bei schlappen 5V genug magnetische Kraft zustande kommen um die Relaismechanik gegen die Rückstellfeder anzuziehen.
Deshalb kleiner Spulenwiderstand ==> hoher Relaisstrom
Wenn du die Spannung abschaltest dann entsteht eine Spannungsspitze viel höher als 5V
die kann den µC zerstören. Deshalb muss da eine sogenannte Freilaufdiode dazu.
Oder ist das ganze ein Relais-Modul dass die entsprechenden Schaltungsdetails auf einer kleinen Platine hat?
Es zeigt sich mal wieder IMMER Datenbläter von den verwendeten Bauteilen posten
vgs
@ StefanL38
Ja das ist eine fertige Platine mit allem was dazu gehört...
Ich ändere jediglich den Sketch auf dem µC...
Bei dem einem Sketch läufts beim anderen nicht... Relais
Da steht nur Operating Voltage 5V. Keine Angabe wie viel mA der Schalteingang zieht.
Das ist kein Datenblatt das ist Papier- bzw. Stromverschwendung ! Grrrr!
Den Spruch der als Werbespruch unten auf dem Datenblatt steht "Time for more"
haben Sie immer noch nicht umgesetzt.
Das ist
natürlich nur der Versuchsaufbau um das Relais zu testen..bei dem zusehenden Relais_Modul ist es anders rum ich weiss...High -> Low / Low -> High...aber das berücksichtige ich dabei.
Der orignal Aufbau ist aber vom Relaisteil gleich..lege ich den IN direkt auf 5 Volt...also simuliere ich das HIGH...zieht es auch an und der der Rest läuft ohne Probleme.
Zum Testen gehe ich momentan aus dem Nano für die 5V...im richtigen Aufbau gehe ich Sternförmig mit Vcc und GND direkt nach der PowerBank raus...auch für den DFPlayer
Btw für einen MidiController zum steuern von virtuellen Musikinstrumente auf dem PC
habe ich seit Jahren 2 Relais über die Nano 5V laufen...nichts passiert
Und mit den Ausgängen habe ich schon hin und her versucht..dachte vielleicht das eine Lib einen Ausgang blockiert und dadurch evtl der A2 oder A1 nicht geht...vielleicht kann man keinen Analog Ausgang nutzen?
Wobei is ja auch nonsens...im RelaisSketch geht der ja auch....
Na ich probiere mal weiter...vielen Dank für eure Anregungen...
Wenn ihr noch Gedanken habt gerne her damit.
Schöne Feiertage euch allen..übertreibt es ein bisschen
Good morning...Jo den hab ich drin...das knacken kommt aber vom Amplifier...wenn der Spannung bekommt, gibt es das typische Ein/Aus Geräusch...is eingentlich auch nicht schlimm...aber mit dem Relais hätte ich einfach verzögert den Lautsprecher frei gegeben und man hätte das nicht wahrgenommen.