Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
4in2 AMP-Umschalter mit Arduino
#1
Hallo,
dann will ich mal mein erstes Posting machen....

Ich habe in meiner Bastelbude oft bis zu 4 (leider manchmal mehr) Verstärker/Receiver stehen. Teils zu sammeln, teils zum ausprobieren.

Für ein anderes Projekt habe ich den Arduino Nano entdeckt und passende Relais waren für einen Umschalter auch schnell in china gefunden. ein OLED Display soll das ganze abrunden.

Hier der Versuchsaufbau:

[Bild: IMG_0214.jpg]

[Bild: IMG_0215.jpg]


Ich möchte später am Gehäuse nur drei Schalter/Taster und das Display haben. Keine LED und kein schnickschnack.

Es gibt also einen Taster für "vor" und einen Taster für "zurück" um die Amps umzuschalten. Der dritte Schalter (rastender Taster) schaltet zwischen Lautsprecher-Ausgang 1 und 2 um.

Hier mal das Schaltbild:
[Bild: LS-_Umsch4in2.png]

Zum Code für den Arduino später mehr.
Zitieren

#2
Hi EoA,

GENIAL!
Genau soetwas steht auch noch auf meiner ToDo liste.
Ich denke, man kann das Teil auch "rückwärts" verwenden und 4 Paar Lautsprecher an zwei Amps verwalten!?
Die gaanz motivierten Bastler könnten die Relais "doppelt auslegen" und die Quelle gleich mitumschalten - so könnte man auch Für jeden der 4 Kanäle ein eigenes Poti mit einschleifen und wirkungsgradbedingte Pegelunterschiede ausgleichen.
Das Teil wäre dann perfekt für Direkt- / Blindvergleiche geeignet.

Ich lese auf jeden Fall schon mal interessiert mit! =)

Gruß
M
PS: Willkommen im Forum
Zitieren

#3
Hi,
Hast du bedacht, das alle! Ausgangsleitungen der amps gegeneinander potential frei sein muessen, du also alle plus und minus leitungen getrennt schalten musst?
Die blauen relais wuerde ich fuer diese Anwendung nochmal ueberdenken.
Idee finde ich aber sehr gut.
In Hamburg sagt man, Moin , LG Olaf_HH
Meine aktuellen Projekte auf IGDH:
Kondensatoren, gibt es klangliche Unterschiede ? - [B] M-L-W-R --Sherwood PM9800 --
[/B]Magnat MA900 Röhrentuning -- DynaLigth-MK2

Zitieren

#4
Olaf_HH schrieb:Hi,
Hast du bedacht, das alle! Ausgangsleitungen der amps gegeneinander potential frei sein muessen, du also alle plus und minus leitungen getrennt schalten musst?
Die blauen relais wuerde ich fuer diese Anwendung nochmal ueberdenken.
Idee finde ich aber sehr gut.

Der Blick auf den Schaltplan beantwortet deine Frage. Es wird IMMER plus und minus geschaltet.

Die blauen Relais haben sich bei anderen bisher bewährt.
VG

Sascha

Lange Tage und angenehme Nächte.
P.S. Früher war nicht alles besser. Wir waren nur jünger. Ging aber auch vorbei. - Uwe Schleifenbaum
Zitieren

#5
Hi, danke. Hab ich aufm tablet wohl falsch gesehen.
Bei kleinleistungen sind die auch gut. Setzt n freund in industriellen schaltungen ein. Bei hoeheren schaltstroemen hat er die wegen der Langzeitqualitaet diese dann nicht mehr fuer lastschaltungen verwendet. Die kontakte haben nach 2 Jahen einen hoeheren wiederstand gehabt.
In Hamburg sagt man, Moin , LG Olaf_HH
Meine aktuellen Projekte auf IGDH:
Kondensatoren, gibt es klangliche Unterschiede ? - [B] M-L-W-R --Sherwood PM9800 --
[/B]Magnat MA900 Röhrentuning -- DynaLigth-MK2

Zitieren

#6
Olaf_HH schrieb:Hi, danke. Hab ich aufm tablet wohl falsch gesehen.
Bei kleinleistungen sind die auch gut. Setzt n freund in industriellen schaltungen ein. Bei hoeheren schaltstroemen hat er die wegen der Langzeitqualitaet diese dann nicht mehr fuer lastschaltungen verwendet. Die kontakte haben nach 2 Jahen einen hoeheren wiederstand gehabt.

Ja das mag sein, werde ich dann mal messtechnisch begleiten. Zum Glück kostet so eine 8-Relais-Platine in China nur ca. 8-10€, was einen Austausch nach 2 Jahren problemlos macht. :prost:

Ich persönlich würde nicht unter hoher Last den Verstärker umschalten, schon meinen Boxen zu liebe...
VG

Sascha

Lange Tage und angenehme Nächte.
P.S. Früher war nicht alles besser. Wir waren nur jünger. Ging aber auch vorbei. - Uwe Schleifenbaum
Zitieren

#7
Hi Jungs,
Ich hab mit genau solch einer Relaisplatine (allerdings mit nur einem Relais) mal einen "Mühlentimer" für meine Espressomühle gebaut. Das Relais schaltet dort seit gut zwei Jahren jeden Tag zwischen 5 und 10 Mal einen 800W Elektromotor (der jedes Mal gegen "verklemmte" Kaffeebohnen anläuft) ein und nach vorberechneten 2-4 Sekunden wieder aus.
Bislang tut das Chinabrett dies nach bestimmt dreitausend Schaltzyklen noch immer ohne einen Mucks.
Ich war zunächst auch skeptisch, hab es dann aber bei den lächerlichen Preisen einfach mal probiert ("Es steht ja 10A druff") und ein zweites Board auf Vorrat gekauft (mit dem ich dann nen Schütz geschalten hätte).


Wenn wir mal großzügig mit 10W in 4 Ohm rechnen, kommen wir auf grob eineinhalb Ampere. Darüber lacht selbst das Billigrelais ;-)

Du steuerst die Relais über ein IC an, oder? Mit dem Arduino Mega müsste das ja auch noch "direkt" gehen, der hat ja >30 Digitalausgänge.

Edit: Was vielleicht nicht ganz verkehrt wäre, gerade wenn du viele Amps testest: In den "Sternpunkt" könnte man zentral noch einen Lautsprecherschutz zwischenschalten...

Gruß
Zitieren

#8
Ich steuer die Relais direkt über den Arduino. Sieht man doch schön im Schaltplan, der den Arduino beinhaltet Big Grin

Lautsprecherschutz? Was genau meinst du damit? Es wird immer erst freigeschaltet und dann die andere Quelle zugeschaltet - sieht man später im Code.

Nicht benutzte Eingänge werden über einen Lastwiderstand (8 Ohm 50W oder 100W) abgeschlossen um auch Röhrenverstärker zu schützen.

Zur Haltbarkeit der Relais habe ich ähnliche Aussagen. Danke für die Bestätigung.
VG

Sascha

Lange Tage und angenehme Nächte.
P.S. Früher war nicht alles besser. Wir waren nur jünger. Ging aber auch vorbei. - Uwe Schleifenbaum
Zitieren

#9
Big Grin Wer die Augen auf macht sieht mehr.

Mit Lautsprecherschutz mein ich ein Modul wie dieses hier - das trennt die Verbindung wenn der Amp Probleme macht und Gleichspannung anliegt.
Einschaltverzögerung wäre jetzt weniger relevant, das ist bei ner Arduino-Lösung ja nur eine zusätzliche Zeile Code ;-)
Zitieren

#10
Hier mal ein Teil des Code:

Code:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2


#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif


int buttonstatevor = 0;
int buttonstaterueck = 0;
int buttonstateoutput = 0;
int amp1 = 6; //digital output pin6
int amp2 = 7; //digital output pin7
int amp3 = 8; //digital output pin8
int amp4 = 9; //digital output pin9
int output1 = 10; //digital output pin 10
int counter =0; //counter auf 0 setzen
//int out =0;
String LS1,ampdisplay;

void setup()

{
Serial.begin(9600);

  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
  display.clearDisplay();  
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println("No Amp!");
  display.println("Push Btn!");
  display.display();
  pinMode(amp1, OUTPUT);
  pinMode(amp2, OUTPUT);
  pinMode(amp3, OUTPUT);
  pinMode(amp4, OUTPUT);
  pinMode(output1, OUTPUT);
  pinMode (2, INPUT); //Taster vorwärts
  pinMode (3, INPUT); // Taster rückwärts
  pinMode (4, INPUT); // Taster Lautsprecherumschalter
  digitalWrite(amp1,HIGH); //Relais abgefallen
  digitalWrite(amp2,HIGH); //Relais abgefallen
  digitalWrite(amp3,HIGH); //Relais abgefallen
  digitalWrite(amp4,HIGH); //Relais abgefallen
  digitalWrite(output1,HIGH); //Ausgang Relais abgefallen
  LS1 = String("LS1");
  ampdisplay = String("No Amp!");

}

ausserhalb des Loops die Funktion um etwas in das Display zu schreiben:

Code:
void displaywrite (String ampdisplay, String LS1) {
     display.clearDisplay();  
     display.setCursor(0,0);
     display.println(ampdisplay);
     display.println(LS1);
     display.display();
}

Und noch der Code für den "Vorwärtstaster" im Loop

Code:
void loop()

{
  
buttonstatevor = digitalRead(2); //Taster einlesen (vor)
buttonstaterueck = digitalRead(3); //Taste einlesen (zurück)
buttonstateoutput = digitalRead(4); //Lautsprecher Auswahltaste einlesen

if (buttonstateoutput == HIGH) {
  
   LS1=String("LS2");
   digitalWrite(output1, LOW);
   displaywrite (ampdisplay,LS1);
   delay(100);
  }
  else
  {
    digitalWrite(output1, HIGH);
    LS1=String("LS1");
    displaywrite (ampdisplay,LS1);
    delay(100);
    
   } //Auf ampdisplay umschalten


if (buttonstatevor == HIGH) {

    if (counter == 0)
    {
     digitalWrite(amp4, HIGH); //amp4 ausschalten
     digitalWrite(amp3, HIGH); //amp3 ausschalten
     digitalWrite(amp2, HIGH); //amp4 ausschalten
     delay(300);
     digitalWrite(amp1, LOW); //amp1 einschalten
     Serial.println("AMP1 eingeschaltet");//Serielle Debugmeldung
     ampdisplay=String("Amp 1");
     displaywrite (ampdisplay,LS1);
     exit;
    }

    if (counter == 1)
    {
     digitalWrite(amp4, HIGH); //amp4 ausschalten
     digitalWrite(amp3, HIGH); //amp3 ausschalten
     digitalWrite(amp1, HIGH); //amp1 ausschalten
     delay (300);
     digitalWrite(amp2, LOW); //AMP2 einschalten
     Serial.println("AMP2 eingeschaltet");
     ampdisplay=String("Amp 2");
     displaywrite (ampdisplay,LS1);
     exit;
    }

if (counter == 2)
    {
     digitalWrite(amp4, HIGH); //amp4 auschalten
     digitalWrite(amp1, HIGH); //amp1 auschalten
     digitalWrite(amp2, HIGH); //amp2 auschalten
     delay(300);
     digitalWrite(amp3, LOW); //amp3 einschalten
     Serial.println("AMP3 eingeschaltet");
     ampdisplay=String("Amp 3");
     displaywrite (ampdisplay,LS1);
     exit;
    }

    if (counter == 3)
    {
     digitalWrite(amp3, HIGH); //amp3 auschalten
     digitalWrite(amp1, HIGH); //amp1 auschalten
     digitalWrite(amp2, HIGH); //amp2 auschalten
     delay(300);
     digitalWrite(amp4, LOW); //amp4 einschalten
     Serial.println("AMP4 eingeschaltet");
     ampdisplay=String("Amp 4");
     displaywrite (ampdisplay,LS1);
     exit;
    }
    
    if (counter == 4)
    {
     digitalWrite(amp1, HIGH); //amp1 auschalten
     digitalWrite(amp2, HIGH); //amp2 auschalten
     digitalWrite(amp3, HIGH); //amp3 auschalten
     digitalWrite(amp4, HIGH); //amp4 auschalten  
     Serial.println("alles aus");
     ampdisplay=String("No Amp!");
     displaywrite (ampdisplay,LS1);
     exit;
    }
   delay (1900);
   counter++;
   if (counter > 4) counter = 0;
   Serial.println(counter); //Debug counter state
}

Rückwärts kann man sich dann vielleicht denken - falls nicht einfach nachfragen.

Viel Spaß beim Nachbauen oder Weiterentwickeln.
VG

Sascha

Lange Tage und angenehme Nächte.
P.S. Früher war nicht alles besser. Wir waren nur jünger. Ging aber auch vorbei. - Uwe Schleifenbaum
Zitieren

#11
Hallo zusammen,

da klinke ich mich mal in die Diskussion ein.
Sowas liegt auch auf meinem Basteltisch.

Hab mir extra einen analogen Sat-Receiver dafür gekauft.
Nur als Gehäuse. Da ist genügend Platz drin, nicht so klein wie die aktuellen Gehäuse. Vor allem an der Rückwand des Gehäuses ist genug Platz für vieeele Anschlüsse.

Mein Plan:
Eine Quelle (Cinch-Eingang), 4 Ausgänge (Cinch), an diese werden bis zu 4 DUTs angeschlossen (Endstufen), Endstufenausgänge dann wieder über Polklemmen zurück in dieses Gerät und dann werden diese Ausgänge auf den einen Lautsprecher geschaltet.
Oder Eine Endstufe, deren Ausgang wieder hier herein und auf bis zu 4 Lautsprecher geschaltet.

Das ganze fernbedienbar, Arduino-Beispiel code gibt es ja für sowas.
Mit LC-Display. Auch einfach über Arduino machbar.

Und vor Allem:
Ein PGA2311 als Vorverstärker ist mit dabei. Damit können einzelnen DUTs korrekt ausgepegelt werden, damit ja keiner lauter ist als der Andere, sonst gewinnt der lauteste.
Lautstärke wird dann immer beim Umschalten automatisch angepasst.
2311 hat auch den Vorteil, dass der "bis zu 660 Ohm Impedanz" ansteuern kann, der kann also alle 4 Endstufen treiben, das muss nicht extra umgeschaltet werden.

Und mit zufälliger Zuordnung der Probanden. Der Arduino merkt sich in jeder Runde, welches Gerät aktiv war und nach Abschluss des Tests wird das Protokoll über das Display durchgescrollt oder per seriellem Interface an einen Rechner gesendet.

D.h. man kann alleine einen Blindtest durchführen.
Arduino Code hab ich mir aus Beispielen zusammengesucht. Ist gerade eine große Baustelle.

EoA, mit welchem Tool hast du denn das Schaltbild gezeichnet?

Viele Grüße

Ulf
Stuttgarter Audio-Gruppe
Zitieren

#12
Hi Ulf,

mit Eagle von Autodesk - für den privaten Einzelanwender kostenlos. Libaries für den Arduino findest du im Internet.
VG

Sascha

Lange Tage und angenehme Nächte.
P.S. Früher war nicht alles besser. Wir waren nur jünger. Ging aber auch vorbei. - Uwe Schleifenbaum
Zitieren

#13
Ah, DAS ist Eagle.
Ja, damit sollte ich mich endlich mal beschäftigen.

Ok, danke.
Stuttgarter Audio-Gruppe
Zitieren

#14
So fertig... Projektende. Falls noch jemand am Quellcode interessiert ist kann ich ihn hier posten. Bis neulich.

[Bild: 3tjRuIYh.jpg]

[Bild: ombxx5Nh.jpg]

[Bild: x3fW85Yh.jpg]

[Bild: 0UoVRgih.jpg]

[Bild: toWEbXLh.jpg]

[Bild: ilm1YDoh.jpg]

[Bild: U6G8UmMh.jpg]
VG

Sascha

Lange Tage und angenehme Nächte.
P.S. Früher war nicht alles besser. Wir waren nur jünger. Ging aber auch vorbei. - Uwe Schleifenbaum
Zitieren

#15
Ich bin begeistert und möchte auch so etwas bauen.
Code wäre super
Viele Grüße und viel Freude damit
Claus
Zitieren

#16
Noch ein paar Bilder vom Projekt

[ATTACH=CONFIG]42632[/ATTACH][ATTACH=CONFIG]42633[/ATTACH][ATTACH=CONFIG]42634[/ATTACH][ATTACH=CONFIG]42635[/ATTACH][ATTACH=CONFIG]42636[/ATTACH]


Angehängte Dateien Thumbnail(s)
                   
VG

Sascha

Lange Tage und angenehme Nächte.
P.S. Früher war nicht alles besser. Wir waren nur jünger. Ging aber auch vorbei. - Uwe Schleifenbaum
Zitieren

#17
Und noch ein paar....

[ATTACH=CONFIG]42637[/ATTACH][ATTACH=CONFIG]42638[/ATTACH][ATTACH=CONFIG]42639[/ATTACH][ATTACH=CONFIG]42640[/ATTACH]


Angehängte Dateien Thumbnail(s)
               
VG

Sascha

Lange Tage und angenehme Nächte.
P.S. Früher war nicht alles besser. Wir waren nur jünger. Ging aber auch vorbei. - Uwe Schleifenbaum
Zitieren



Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  CheckAmp - Umschalter für Verstärkervergleiche mechanic 21 2.112 13.08.2025, 08:41
Letzter Beitrag: timo
  Frage zu Cinch Umschalter Tomax 14 8.397 09.01.2023, 23:37
Letzter Beitrag: Tomax

Gehe zu:


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

Deutsche Übersetzung: MyBB.de, Powered by MyBB, © 2002-2025 Melroy van den Berg.