FRAGE :
Mit diesen beiden Potis an A7 sollte doch die Max Lautstärke im Gehäuse begrenzt und vom Benutzer außen eingestellt werden können.
Da durch die Widerstände ja immer ein Strom fliest müssen sie doch nur ausreichend groß gemacht werden damit die Powerbank weiter automatisch abschaltet.
z.b 5MOhm für MaxVol
Möchtest du das explizit via Drehknopf so haben oder suchst du nur überhaupt eine Möglichkeit die maximale Lautstärke zu begrenzen? Weil das geht ja schon über das Adminmenü. Das stellt man in der Regel 1x ein und dann fasst man das eigentlich eher selten wieder an.
Hallo Stephan, ich habe hier im Forum mehrere Lösungen gesehen bezüglich Begrenzung der Lautstärke aber auch einen Externen Drehregler.
-Software ist ja schon drin, wie du gesagt hast (kein Poti extern)
-Mini Amp. ohne Hardware Begrenzung(Poti)
-Potis aber an Zwei Eingängen. Kidsbox
Deshalb frage ich nach dieser Lösung nur an A7, der ja nur ein Analog Input ist und beide Steller im (Admin) und am Gehäuse (Benutzer). Will A6 frei lassen für weis was. Habe hier leider gerade keine Potis herum liegen zum testen sonst hätte ich das schon gemacht, deshalb Frage ich!!!
Und dann noch eine Frage bezüglich Pin D9 RESET_RFID muss das ein PWM sein, oder würde auch D8 gehen. Sollte doch nur High oder Low auf der Leitung sein?
Die Belegung rührt von der empfohlenen Belegung her:
* -----------------------------------------------------------------------------------------
* MFRC522 Arduino Arduino Arduino Arduino Arduino
* Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro
* Signal Pin Pin Pin Pin Pin Pin
* -----------------------------------------------------------------------------------------
* RST/Reset RST 9 5 D9 RESET/ICSP-5 RST
* SPI SS SDA(SS) 10 53 D10 10 10
* SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16
* SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14
* SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15
Einige Pins davon sind fest (MOSI/MISO z.B.), RST sollte theoretisch auch mit 8 gehen. Müsstest du einfach mal testen.
D8 scheint zu klappen.
Die Schaltung mit den Potis 5MOhm sind verbaut klappt auch und die Abschaltung funktioniert.
Das Setup mit den beiden Potis ist einfach, ich wurde im Forum aber davor gewarnt permanent im Loop die Lautstärke zu setzen. Was ich auch schnell festgestellt habe.
Fehler waren Error 06, Error 255, plötziches stoppen der Musik oder was mich etwas verrückt gemacht hat das in der Konsole das nächste Lied geladen wurde aber nichts mehr kam.
Vielleicht hilft es ja dem ein oder anderen.
Die Umsetzung, der Drehung am Poti, in Lautstärke finde ich relativ direkt. Getestet wurde mit den Sounds 001-020 aus dem mp3 Ordner, da diese schnell hintereinander laden.
Das Poti konnte ich schnell von Laut auf Leise hin und her drehen ohne Probleme und Aufhänger des Players.
Die Lösung war am Ende die Lautstärke nur zu ändern wenn das Lied spielt, aber auch minimal das Poti alle 200ms abgefragt wird.
Ich bin erstmal zufrieden, aber für Vorschläge immer zu haben.
if (Poti==true && (Volume_MERK != Volume_Poti_Set) && isPlaying()==true)
nur dann wird
mp3.setVolume(Volume_Poti_Set); // Lautstärke über POTI
gesetzt.
// Variablen Volume
bool Poti = true; // Hat der Player ein Externes Poti an A7 (true) somit wird auch die Maximale Lautstärke über ein Poti im Gehäuse eingestellt,
// sonst wird die Lautstärke über die Button UP/Down verändert.
int Pin_USER_Volume = A7; // Analog INPUT A7 für das Poti
uint8_t maxVolume = 15; // Maximale Lautstärke wenn kein Poti verwendet wird
uint8_t Volume_Button_Set; // Lautstärke USER über Button UP/Down
uint8_t Volume_Poti_Set; //Lautstärke USER über POTI
uint8_t Volume_MERK;
unsigned long T_Volume; //Zeit Merker Volume Reset (millis())
unsigned long T_Volume_Refresh = 200; // Refresh alle min 0,2 Sekunden.
SETUP()
//Lautstärke
pinMode(Pin_USER_Volume, INPUT); // Pin POTI
if (Poti==true)
mp3.setVolume(Volume_Poti_Set = maxVolume); // Maximale LAutstärke über Admin Menue
else
mp3.setVolume(Volume_Button_Set = maxVolume); // Maximale LAutstärke über Admin Menue
T_Volume = millis();
//Sicherheitsabfrage, damit Serial nicht zu viele Anfragen bekommt.
if (T_Volume_Refresh<200){
T_Volume_Refresh = 200;}
LOOP()
if (millis()>T_Volume + T_Volume_Refresh){
//Lautstärke Begrenzung Abfrage für Poti 1MOhm MAX_Volume Gehäuse und 5MOhm=Lautstärke USER_Volume
int val = analogRead(Pin_USER_Volume); // Lesen Input PIN Poti (A7)
Volume_Poti_Set = map(val, 0, 1023, 1, 30);
Serial.println("Volume_Poti_Set"); // debug value
Serial.println(Volume_Poti_Set); // debug value
if (Poti==true && (Volume_MERK != Volume_Poti_Set) && isPlaying()==true){
mp3.setVolume(Volume_Poti_Set); // Maximale Lautstärke über POTI
Volume_MERK = Volume_Poti_Set;
Serial.println(F("RESET_VOLUME_POTI_SET"));
}
T_Volume = millis();
}