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:
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:
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
Das is mal ein Projekt. Mit meinen 2^n Gerätekombinationen und immer zu wenig E/A ist es das...
Super Sache
Ideen:
- nicht nur vorwärts, sondern auch zurückschaltbar ('hin und her' zw. 2 Geräten mgl.)
- Fernbedienung
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.
(18.02.2018, 00:11)hal-9.000 schrieb: [ -> ]Super Sache
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:
Das habe ich jetzt auch schon im Code und Experimentalaufbau verwirklicht.
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.
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.
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)
(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.
Ahhhh
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
(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.
Nö, alles hier schon als Projekt gemacht
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.
Ein paar erklärende Worte wären sicher nicht uninteressant.
-gehören quasi dazu, denn ohne den Code funktioniert der ganze Aufbau nicht.
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.
(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.
Hier noch die Bilder vom letzten Versuchsaufbau:
(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.
(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 ?
(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.
(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
okidoki, dan lass ich mal die hände davon !
(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
.
Hab noch nie den Arduino Compiler angefasst.
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)
(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.
Wer lesen kann ... da macht ein Poti zugegebener Maßen keinen Sinn.
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.
(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?