Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Projekt Lautsprecherumschalter Arduino
#1
Worum geht es?
  • Ich brauche für meine Bastelbude einen Umschalter der bis zu 4 Verstärker/Receiver auf 2 auswählbare Lautsprecher umschaltet.
  • Ich habe noch etwa 3-4 Arduino Uno rumliegen
  • Ich habe Lust mal wieder was zu programmieren
  • Ich habe noch ein Gehäuse in standard Hifi-Breite
  • Ich mag eine Front ohne tausend Schahlter und Leuchten möglicht clean
Worum geht es nicht
  • Irgendwelcher Ideen anderer Leute umzusetzen oder zu "stehlen"
  • Ein kommerzielles Projekt ins Leben zu rufen
  • Sonstige abstruse Ideen
Stand der Dinge, ein Schaltplan ist fertig:


[Bild: LS-_Umschalter-_V3.png]


Nicht benutzte Eingänge werden mit einem 8 Ohm/25W Widerstand abgeschlossen um ggf. angeschlossene Röhrenverstärker zu schützen.

Umgeschaltet zwischen den Quellen wird mit einem Taster.
Nach dem Einschalten ist keine Quelle gewählt, 1 X tasten gleich Input(Amp)1, jeder weiter Tastendruck schaltet zur nächsten Quelle bis Input(Amp)4 erreicht ist. Danach wird wieder keine Quelle ausgewählt und alles beginnt von vorne.
Der Taster ist mit 2 Sekunden entprellt. Es wird immer erst die aktuelle Quelle abgewählt und dan die neue Quelle aktiviert (Verzögerung 500ms).
Die aktuelle Quelle wird auf einem Display angezeigt.

Versuchsaufbau:

[Bild: IMG_0206.jpg]

[Bild: IMG_0207.jpg]

[Bild: IMG_0208.jpg]

Zur Zeit noch offen:
Die Umschaltung des Ausgangs bezüglich der Anzeige auf dem gleichen Display oder auf einem weiteren Display (Software).
Verkabelung. Gehäuseausschnitte. Spannungsversorgung.

Fortsetzung folgt.... ggf mit Ausschnitten aus der Software.


Ideen, Kritik etc. ist natürlich immer gerne gesehen - solange sie sachlich ist und dem Thema dient Drinks
[-] 26 Mitglieder sagen Danke an für diesen Beitrag:
  • Pionier, hörtnix, hal-9.000, xs500, applecitronaut, philbluesky, Gorm, Frunobulax, Ralph, dingle, Rainer F, bikehomero, hadieho, Hummel601, HaiEnd Verweigerer, peugeot.505, d_e_n_n_i_s, awr13, dedefr, spocintosh, franky64, , LastV8, Caspar67, HiFi1991, gasmann
Zitieren
#2
Drinks Das is mal ein Projekt. Mit meinen 2^n Gerätekombinationen und immer zu wenig E/A ist es das...
Es war egal. Ich hatte meins. Und... es war gut. So hat alles seine Zeit.
Zitieren
#3
Super Sache Drinks

Ideen:
- nicht nur vorwärts, sondern auch zurückschaltbar ('hin und her' zw. 2 Geräten mgl.)
- Fernbedienung
Zitieren
#4
Schaut interessant aus.
Wie sicher schalten die Relais? Wäre ne Überwachung der abgefallenen Kontakte, evtl. über den Lastwiderstand möglich?

OT: Die Tischplatte schaut aus, wie meine bevor der Abtreter kam.
[Bild: icon_e_sad.gif]
Zitieren
#5
(18.02.2018, 00:11)hal-9.000 schrieb: Super Sache Drinks

Ideen:
- nicht nur vorwärts, sondern auch zurückschaltbar ('hin und her' zw. 2 Geräten mgl.)
- Fernbedienung

zu 1: Das macht Sinn, benötigt zwar einen zweiten Taster, da ich diese hier verwenden will:
[Bild: druckschalter-48-vdc-3-a-1-x-einein-tru-...=520&y=520]

Das habe ich jetzt auch schon im Code und Experimentalaufbau verwirklicht.


[Bild: IMG_0210.jpg]



Zu 2: Ich mag keine Fernbedienungen....

(18.02.2018, 09:02)Gorm schrieb: Schaut interessant aus.
Wie sicher schalten die Relais? Wäre ne Überwachung der abgefallenen Kontakte, evtl. über den Lastwiderstand möglich?

OT: Die Tischplatte schaut aus, wie meine bevor der Abtreter kam.

Abtreter?

Wie sicher schalten die Relais? Gute Frage. Meinst du das logisch oder physikalisch? Logisch schalten die sicher, da ich dafür Sicherheitsabfragen eringebaut habe.
[-] 4 Mitglieder sagen Danke an für diesen Beitrag:
  • HaiEnd Verweigerer, dedefr, , hal-9.000
Zitieren
#6
Wenn mal ein Relaiskontakt kleben sollte, weil vielleicht zuviel Strom beim Abschalten floß ...

Auf meinem Abtreter gelandet zeigt das erste Bild schon den drehbaren Abtreter auf dem zerkratzten Tisch.

Drinks
[Bild: icon_e_sad.gif]
[-] 2 Mitglieder sagen Danke an Gorm für diesen Beitrag:
  • winix,
Zitieren
#7
Nimm einen Drehgeber. Bei denen entfällt je nach Version die Entprellung. Vorwärts, rückwärts - alles kein Problem und teilweise haben diese noch einen Taster mit dabei (z.B. für die Selektion)
Zitieren
#8
(18.02.2018, 16:33)willi_vintage schrieb: Nimm einen Drehgeber. Bei denen entfällt je nach Version die Entprellung. Vorwärts, rückwärts - alles kein Problem und teilweise haben diese noch einen Taster mit dabei (z.B. für die Selektion)

Danke, aber ich bleibe bei den Relais.

(18.02.2018, 15:29)Gorm schrieb: Auf meinem Abtreter gelandet zeigt das erste Bild schon den drehbaren Abtreter auf dem zerkratzten Tisch.

Drinks

Ahhhh Drinks Thumbsup
Zitieren
#9
Die Relais bleiben natürlich. Der Drehgeber soll die Taster ersetzen. Mit den Tastern fängt man sich bei solchen Anwendungen schnell viel Ärger ein. Hier hast du absolut sichere Zustände, Polling kann frei gestaltet werden. Ich möchte für derartige Anwendungen heute keine Taster mehr verwenden
Zitieren
#10
(18.02.2018, 20:28)willi_vintage schrieb: Die Relais bleiben natürlich. Der Drehgeber soll die Taster ersetzen. Mit den Tastern fängt man sich bei solchen Anwendungen schnell viel Ärger ein. Hier hast du absolut sichere Zustände, Polling kann frei gestaltet werden. Ich möchte für derartige Anwendungen heute keine Taster mehr verwenden

Ich glaube du hast das mit dem Arduino überlesen/übersehen. Die Taster schalten nur +5V an den digitalen Input des Arduino und sind softwaremäßig entprellt und über einen pull up Widerstand angeschlossen.
Zitieren
#11
Nö, alles hier schon als Projekt gemacht Wink3
Zitieren
#12
So, Versuchsaufbau und Software haben den finalen Status erreicht.

Ist hier jemand ernsthaft an dem Code interessiert? Ein copy/paste werde ich nicht machen. Aber ich kann an Hand von Auszügen erklären was ich gemacht habe, aber halt nur wenn es von Interesse ist. Hier mal die ersten gut 30 Zeilen, damit man sieht mit welchen Bibliotheken ich arbeite und welche Variablen ich benutze.


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
String LS1,ampdisplay;

void setup()

Bilder vom finalen Testaufbau später.
[-] 6 Mitglieder sagen Danke an für diesen Beitrag:
  • HaiEnd Verweigerer, , xs500, , winix, LastV8
Zitieren
#13
Ein paar erklärende Worte wären sicher nicht uninteressant.
-gehören quasi dazu, denn ohne den Code funktioniert der ganze Aufbau nicht.
[Bild: logohev2u4jv7.jpg] [Bild: ls2x8jno.jpg]
Wenn Millionen von Menschen etwas Dummes sagen, bleibt es dennoch eine Dummheit. Floet
Zitieren
#14
Es sind, wenn ich das im Flussbild richtig sehe, noch einige Ein-/Ausgänge unbenutzt.
So richtig einen Sinn ergäbe es, ein digitales Poti mit zu integrieren, um damit die Pegelunterschiede der Eingänge zu kompensieren, also jeder Eingang seinen eigenen Pegelmerker hätte.
Aber auch so macht das mit der Anzeige schon was her, nur die Vandal-Ex-Taster sind nicht meine Sache.
Zitieren
#15
(19.02.2018, 14:50)EoA schrieb: Ist hier jemand ernsthaft an dem Code interessiert? 

ja, ich.
Da ich auch in c unterwegs bin, ist es natürlich interessant.
[-] 1 Mitglied sagt Danke an für diesen Beitrag:
  • winix
Zitieren
#16
Hier noch die Bilder vom letzten Versuchsaufbau:


[Bild: IMG_0214.jpg]

[Bild: IMG_0215.jpg]

(19.02.2018, 15:34)Silomin schrieb: Es sind, wenn ich das im Flussbild richtig sehe, noch einige Ein-/Ausgänge unbenutzt.
So richtig einen Sinn ergäbe es, ein digitales Poti mit zu integrieren, um damit die Pegelunterschiede der Eingänge zu kompensieren, also jeder Eingang seinen eigenen Pegelmerker hätte.
Aber auch so macht das mit der Anzeige schon was her, nur die Vandal-Ex-Taster sind nicht meine Sache.

Wozu die Potis? Die sind doch an den Verstärkern.... Lautstärkeregler. Pegelausgleich würde bei Phono/Line - Eingängen Sinn machen.

Auf der Front will ich später nur 2 Taster (vor/zurück) und einen Schalter für Lautprecher 1/2 haben, und natürlich das Display.
[-] 5 Mitglieder sagen Danke an für diesen Beitrag:
  • vectra800, , HaiEnd Verweigerer, winix, LastV8
Zitieren
#17
(19.02.2018, 14:50)EoA schrieb: Ist hier jemand ernsthaft an dem Code interessiert ?

Hallo

ich hätte auch interesse, man müsste mir nur erklären wie ich dan den code in den Arduino bekomme !

eine frage : den aufbau kann man den auch für andere geräte benutzen, ZB cd, k7 ?
Zitieren
#18
(19.02.2018, 15:43)DIYLAB schrieb: Da ich auch in c unterwegs bin, ist es natürlich interessant.
Das ist doch Arduino. Das ist ne Sammlung von c++ Makros die mit plain c wenig zu tun hat. Du wirst dich höchstens fragen was das für komische Schlüsselwörter sind.
Zitieren
#19
(19.02.2018, 16:38)dedefr schrieb:
(19.02.2018, 14:50)EoA schrieb: Ist hier jemand ernsthaft an dem Code interessiert ?

Hallo

ich hätte auch interesse, man müsste mir nur erklären wie ich dan den code in den Arduino bekomme !

eine frage : den aufbau kann man den auch für andere geräte benutzen, ZB cd, k7 ?

Hmm nimm es mir nicht übel, aber wenn du keine Ahnung hast wie du das in den Arduino bekommst wird dir der code nicht viel nutzen. Es muss auch noch die Adafruit-Bibiliothek installiert werden sonst kannst das nicht Kompilieren.

Lies dich mal hier ein und entscheide dann ob du das willst:
https://www.arduino.cc/
https://learn.adafruit.com/monochrome-ol...d-examples

Guck dir das mal an und falls du Fragen hast, immer raus damit.

Für eine Quellenwahl von CD etc. kann man das nicht 1:1 übernehmen, die Widerstände wären z.B. zu entfernen
[-] 1 Mitglied sagt Danke an für diesen Beitrag:
  •
Zitieren
#20
okidoki, dan lass ich mal die hände davon !
Zitieren
#21
(19.02.2018, 16:53)sing sing schrieb:
(19.02.2018, 15:43)DIYLAB schrieb: Da ich auch in c unterwegs bin, ist es natürlich interessant.
Das ist doch Arduino. Das ist ne Sammlung von c++ Makros die mit plain c wenig zu tun hat. Du wirst dich höchstens fragen was das für komische Schlüsselwörter sind.

Oops, ich dachte, das wäre mit arv-c kompatibel  Denker .
Hab noch nie den Arduino Compiler angefasst.
Zitieren
#22
die include- Anweisungen sagen doch schon, was implementiert werden soll. Man kann dann ganz einfach die Mehtoden nutzen, um z.B. Text auf das Display zu übertragen. SPI.h ist der Bussystemtreiber (ermöglicht Kommunikation via SPI). Hier zwischen Display und Controller. Wire.h. wird wahrscheinlich nicht gebraucht (keine Ahnung ob da meine Glaskugel richtig liegt). Adafruit_GFX.h ist die Bibliothek um eben Text etc. auf das Display zu bringen und SSD1306 ist der Displaycontroller (quasi sowas wie der Treiber). Sonst kommen halt einige int- Variablen. Anmerkung: uint8_t belegt deutlich weniger Platz. Der kleine AVR stößt sonst schnell an seine Grenzen.
Ich persönlich nutze die Arduino IDE gar nicht. Wennschon Bits schieben und Register direkt ansprechen. Man kann so dann auch wenigstens das gesamte Potential des AVR ausnutzen (Stichwort Timer)
Zitieren
#23
(17.02.2018, 23:52)EoA schrieb: Worum geht es?
  • Ich brauche für mein Soundlabor einen Umschalter, der die Lautsprecherausgänge von bis zu 4 Verstärkern/Receivern auf 2 auswählbare Lautsprecher umschaltet.
Drinks

Wer lesen kann ... da macht ein Poti zugegebener Maßen keinen Sinn. Floet
Zitieren
#24
Doch die Wire.h wird gebraucht, damit steuerst du das Display an, das hängt am I2C-Bus und verbraucht somit nur 2 PINs.
SPI habe ich für die serielle Ausgabe zum Debuggen benutzt.

Und auf AVR ganz tief drinnen proggen hatte ich wirklich keine Lust, klar man kann sowas auch in Assembler machen. Aber das habe ich zum Glück alles vergessen.

Für mich ist das pseudo C++ schon ne Umstellung - Ich komme vom Delphi....und das ist auch schon lange her.
[-] 1 Mitglied sagt Danke an für diesen Beitrag:
  • willi_vintage
Zitieren
#25
(19.02.2018, 18:01)willi_vintage schrieb: die include- Anweisungen sagen doch schon, was implementiert werden soll. Man kann dann ganz einfach die Mehtoden nutzen, um z.B. Text auf das Display zu übertragen. SPI.h ist der Bussystemtreiber (ermöglicht Kommunikation via SPI). Hier zwischen Display und Controller. Wire.h. wird wahrscheinlich nicht gebraucht (keine Ahnung ob da meine Glaskugel richtig liegt). Adafruit_GFX.h ist die Bibliothek um eben Text etc. auf das Display zu bringen und SSD1306 ist der Displaycontroller (quasi sowas wie der Treiber). Sonst kommen halt einige int- Variablen.

Das sehe ich auch alles in den paar Zeilen - wozu Dein Pamphlet? Cool
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
Lightbulb Digitales Zählwerk (universal, Arduino nano, OLED) für Bandmaschinen und Tapedecks DIYLAB 439 111.875 01.05.2024, 15:31
Letzter Beitrag: havox
  Mein Thorens 135 Projekt Tobifix 0 531 11.09.2023, 19:25
Letzter Beitrag: Tobifix
  Projekt "BoomBox" Rüsselfant 5 2.164 19.09.2022, 15:41
Letzter Beitrag: gyp
  Projekt "BoomBox" fertiggestellt Rüsselfant 6 2.917 19.06.2022, 17:55
Letzter Beitrag: Rüsselfant
  Einfach mal ein kleines Deko Projekt vorstellen... minort 10 4.480 01.05.2022, 13:19
Letzter Beitrag: minort
  Neues Projekt, Luxman PD 284 Gunar 12 4.260 28.12.2021, 10:12
Letzter Beitrag: Georg60



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