Hallo zusammen.
An meiner Hifi-Anlage hängen am analogen Audioeingang verschiedene
QUellen (TV, Raspi, ...). Ich möchte dass die Anlage automatisch
eingeschaltet wird, wenn an einer der QUellen ein Audiosignal für länger
als 1 s anliegt und nach 5 min ohne Signal soll der Verstärker wieder
ausgeschaltet werden.
Realisieren möchte ich das Ganze mit einem Arduino. Geplant ist für jede
Quelle einen eigenen ADC-Eingang zu verwenden. Vorgeschaltet mit Buffer
und OPV dahinter. Mit einem digitalen Ausgang soll über ein Relais der
Verstärker geschaltet werden.
Allerdings wird die Erstellung der Wartezeiten von 5 min glaube ich ein
Problem. Kann man mit einem Arduino UNO solche langen delay-Zeiten
realisieren?
Über weitere Verbesserungsvorschläge bin ich offen. Danke im Vorraus
Chris meier schrieb:> Realisieren möchte ich das Ganze mit einem Arduino. Geplant ist für jede> Quelle einen eigenen ADC-Eingang zu verwenden. Vorgeschaltet mit Buffer> und OPV dahinter. Mit einem digitalen Ausgang soll über ein Relais der> Verstärker geschaltet werden.
So kompliziert würde ich das gar nicht machen.
Es reicht ja mit (hochohmigen) Komparatoren an allen Audioquellen zu
detektieren, ob hier ein Signal eine Schwellen-Lautstärke überschreitet.
Am Arduino ist dann für jede Quelle nur noch ein normaler Digitalinput
nötig.
Prinzipiell könnte mann auch noch alle Detektoren per Hardware (z.B.
Dioden) ver-odern, und kommt mit einem einzigen Input aus.
> Allerdings wird die Erstellung der Wartezeiten von 5 min glaube ich ein> Problem. Kann man mit einem Arduino UNO solche langen delay-Zeiten> realisieren?
Ja. Es muss ja nicht auf die Sekunde genau werden.
Du kannst z.B. einen Timer-Interrupt alle 1s aufrufen, und dort einen
Zähler runterzählen, sobald auf keinem der Eingänge ein Signal anliegt.
Wenn der Zähler von 300 auf 0 runtergezählt hat, schaltest du ab.
Man könnte das ganze auch komplett diskret aufbauen, dazu benötigt man
ein re-triggerbares Monoflop, das bis 5 Minuten "kann".
Klassischerweise hat man hierfür z.B. ein 74HC5555 verwendet.
Der Arduino ist völlig überflüssig und ersetzt gerade mal ein
retriggerbares Monoflop, da der Rest der Schaltung sowieso in Hardware
gebaut werden muss.
Dafür muss er dauernd gespeist werden und ich verwette meinen Hameg
gegen 100 Spammails für Nagelpilz, das der mehr Strom verbraucht als ein
4538.
Joe F. schrieb:> ein 74HC5555
Nachfolger des 555 in TTL kompatibel?
Chris meier schrieb:> Kann man mit einem Arduino UNO solche langen delay-Zeiten realisieren?
Sicher, aber man macht das nicht mit einem delay, sondern millis zählen.
Bloss: Was nützt das Einschalten, er muss auch auf den richtigen Eingang
umschalten. Dazu muss er wohl so etwas wie den Fernbedienungseingang des
Verstärkers nutzen, und dessen Eigenschaften musst du erst mal
rausfinden.
Umschalten wenn 2 Quellen gleichzeitig aktiv sind aber abwechselnd leise
werden kann dann lustig sein.
Joe F. schrieb:> So kompliziert würde ich das gar nicht machen.> Es reicht ja mit (hochohmigen) Komparatoren an allen Audioquellen zu> detektieren, ob hier ein Signal eine Schwellen-Lautstärke überschreitet.
Ja, dann braucht er ja auch nur die dreifache Menge Bauelemente. Sehr
elegant!
Matthias S. schrieb:> Dafür muss er dauernd gespeist werden und ich verwette meinen Hameg> gegen 100 Spammails für Nagelpilz, das der mehr Strom verbraucht als ein> 4538.
Ist doch absolut irrelevant. So ein AVR kann ja einfach nur einmal pro
Sekunde aufwachen, kurz ein paar wenige ADC Samples holen und sich dann
wieder schlafen legen. Im power-down braucht so ein AVR bei 3V Speisung
ganze 5uA, also 15uW. Ich denke damit kann man leben, auch wenn ein 4538
vielleicht noch weniger braucht.
Joe F. schrieb:> Ja. Es muss ja nicht auf die Sekunde genau werden.> Du kannst z.B. einen Timer-Interrupt alle 1s aufrufen, und dort einen> Zähler runterzählen, sobald auf keinem der Eingänge ein Signal anliegt.> Wenn der Zähler von 300 auf 0 runtergezählt hat, schaltest du ab.
Ja klar, da hätte ich selber auch draufkommen können :) Guter Hinweis
Matthias S. schrieb:> Der Arduino ist völlig überflüssig und ersetzt gerade mal ein> retriggerbares Monoflop, da der Rest der Schaltung sowieso in Hardware> gebaut werden muss.> Dafür muss er dauernd gespeist werden und ich verwette meinen Hameg> gegen 100 Spammails für Nagelpilz, das der mehr Strom verbraucht als ein> 4538.
Stromverbrauch ist irrelevant :)
MaWin schrieb:> Bloss: Was nützt das Einschalten, er muss auch auf den richtigen Eingang> umschalten. Dazu muss er wohl so etwas wie den Fernbedienungseingang des> Verstärkers nutzen, und dessen Eigenschaften musst du erst mal> rausfinden.
zu 80% ist der Eingang des TV aktiv, wenn nötig schalte ich per Hand zw
den Quellen um. Das klappt schon.
Guest schrieb:> Ja, dann braucht er ja auch nur die dreifache Menge Bauelemente. Sehr> elegant!
Ob Buffer-OPV oder Komparator, diese Entscheidung erhöht die Anzahl der
externen Bauteile nicht.
Chris meier schrieb:> Allerdings wird die Erstellung der Wartezeiten von 5 min glaube ich ein> Problem.
Nicht glauben, sondern im Manual nachlesen.
Der Systemtimer der Arduino-Lib kann von 1ms bis zu 49,7 Tage.
Ist aber auch kein Hexenwerk auf einem bare metal AVR einen 1ms
Timerinterrupt aufzusetzen und darin eine uint32_t Variable zählen zu
lassen.
Matthias S. schrieb:> Dafür muss er dauernd gespeist werden und ich verwette meinen Hameg> gegen 100 Spammails für Nagelpilz, das der mehr Strom verbraucht als ein> 4538.
Nun, dem Printtrafo wird das völlig schnuppe sein. Sein Eigenverbrauch
wird deutlich höher sein, als ein AVR im Idle zieht.
Chris meier schrieb:> Allerdings wird die Erstellung der Wartezeiten von 5 min glaube ich ein> Problem.
In einer meiner Anwendungen bearbeitet der Arduino sogar mehrere
Stunden. Befasse Dich mit den Grundlagen des Arduino:
MaWin schrieb:> Sicher, aber man macht das nicht mit einem delay, sondern millis zählen.Peter D. schrieb:> Nicht glauben, sondern im Manual nachlesen.> Der Systemtimer der Arduino-Lib kann von 1ms bis zu 49,7 Tage.
Da macht (ms) einen Überlauf. Das ist egal, hier hat es auch nach über
einem Jahr Betrieb keinen Absturz gegeben.
Guest schrieb:> Im power-down braucht so ein AVR bei 3V Speisung ganze 5uA,
Ja, aber dann sitzt er nicht auf einem Arduino-Board mit USB-Interface,
Spannungsregler und LED. Ich habe eine Stromsparanwendung, da kam ein
A*-ProMini zum Einsatz, dem ich Regler und LED abgelötet habe.
Joe F. schrieb:> Ob Buffer-OPV oder Komparator, diese Entscheidung erhöht die Anzahl der> externen Bauteile nicht.
Man kann sich die Buffer-OPVs sparen, indem man einen AVR mit ADC mit
Verstärkung *20 benutzt. Z.B. mit dem ATtiny24 kann man so 7 Quellen
überwachen.
Irgendwie erschließt sich mir der Sinn nicht. Wenn jemand in der Lage
ist, einen Zuspieler in Gang zu setzen, kann er auch den Knopf an der
Fernbedienung für die Anlage betätigen. Die muss unter Strom stehen,
damit sie angeht. Oder sie muss von einer Schaltung ans Netzt, die unter
Spannung steht.
Irgendwas muss permanent in Bereitschaft sein. Die Anlage kann das aber
besser.
Das Allerbeste wäre nach wie vor: Alles an einer Steckdosenleiste.
Es wäre unschön, wenn man erst "Krach" braucht, damit die Anlage an
geht. Insofern ist es angenehmer, wenn der Triggerpegel bei -70 .. -60
dbFS liegt. Bei einem gewöhnlichen Audiosignal von -1V ... +1V bedeutet
dies, der ADC muss ein Signal außerhalb des Bandes von -1mV ... +1mV
detektieren. Eine Verstärkung ist hier sehr angebracht. Für billig und
funktionsschwach mit einem Elko beigebogen. Wer was auf sich hält, baut
symmetrisch. Z.B. AVR-ADC*20, wobei der Tiny als Vorstufe seine
Versorgung von -0.7 ... 4.3V hat.