|
Projekte
|
|
Hier stelle ich ein - aus einer Not heraus geborenes - Selbstbau-Projekt vor:
Einen fernbedienbaren Quellenwahlschalter/Quellenumschalter mit Relais + Motorpoti für meinen alten Kenwood-Hifi-Verstärker KA-990V aus den 80ern. Eigentlich ein edles Teil,
aber leider sind so ziemlich alle Schalter völlig verfrittet. Mal sind auf einem Kanal die Bässe weg, mal
kratzt es, mal ist links leiser als rechts, mal.... Wenn man den Verstärker eh schon zerlegt, könnte man auch das Poti durch ein
Motorpoti ersetzen und die ganze Sache fernsteuerbar machen... Das schreit nach einem PIC oder so, den man bequem zu Hause programmieren kann und der nicht
viel Peripherie braucht. Die Software ist in C geschrieben und daher nach Anpassung der Hardwarebezüge auch auf ATMega usw. portierbar.
Wer mal in den Kenwood 'reinsehen will... Der Bauraum für das Motorpoti ist
etwas Bastelei, auf die Loudness-Funktion werde ich verzichten müssen - aber ansonsten steht dem Umbau nichts im Wege. Wenn
man den Verstärker geöffnet hat, kann man auch gleich ein paar weitere Verbesserungen einbringen.
Projektstatus:
Status: Fertiggestellt (Betrieb seit April 2006)
Letzte Änderung Hardware: 03.05.2006
Letzte Änderung Software: 25.05.2006
Letzte Änderung Dokumentation: 06.03.2007
|
PICSEL - PIC Source Selector
|
|

Das "Quellenumschalter-Evaluation-Board" noch mit Mabuchi-Motor statt Motorpoti und cooler Tchibo-Fernbedienung
Features Picsel 1 (das "Original", abgeschlossen seit 25.05.06, zugeschnitten auf den KA-990V):
- Fernbedienung: IR-Decodierung Tasten 1-8 für die Quellen, Vol+ und Vol- (RC5-Code)
- Ansteuerung eines ALPS-Motorpotis als Lautsärkesteller
- Umschalten der Audiosignale mit Relais
- Zwei Gruppen mit 4 bzw. 3 Quellen mit gegenseitiger Auslösung: Tape A/B/C und Phono/CD/Tuner/Aux
- 1 Taste mit Rastfunktion: Tape/Monitor
- 8 LEDs für Anzeige des aktuellen Schaltzustandes
- Abspeichern/Restaurieren des letzten Schaltzustandes ins/aus EEPROM
- Tastenentprellzeit 30ms (Funktioniert sogar mit den Originaltasten einwandfrei!!!)
- Schaltzustand dreifach im EEPROM ablegen und fehlertolerant mit 2 aus 3 lesen
|
PICSEL 1 -das Original-
|
|

Teil 1: Schaltplan "Picsel 1" Microcontroller und Relais-Ansteuerung (Klicken für Großbild)
Teil 1: Die Steuerung
Zentrales Bauelement ist der PIC-Controller: Er liest die Taster ein, steuert die LEDs, Relais und das Motorpoti an und speichert die
Einstellungen in seinem internem EEPROM. Der 16F628 ist so konfiguriert, dass er sich seinen 4MHz-Takt intern erzeugt, was für den
Empfang der IR-Fernbedienung an Präzision ausreicht. Auch den Reset erzeugt sich der PIC selbst - damit sind volle 16 Pins für I/O
nutzbar. :-)
Tricky ist das Einlesen der Taster (T1-T8) und Ansteuern der LEDs (D 1-8) über den gleichen Port: Der Controller (IC1) programmiert alle Ports auf
Eingang, nur die aktuell gewählte Quelle als Ausgang und Low. Drückt man diese Taste nochmal passiert
nichts, drückt man eine andere Taste, liest der Controller dort ein neues "Low", schaltet die "alte" LED aus, programmiert den neuen Port auf "Ausgang" und
"Low" und den alten auf "Eingang". Einzige Ausnahme ist die Taste Tape/Monitor: sie hat eine "Rastfunktion", d.h. 1x drücken = ein, nochmal drücken = aus: hier muss
auch bei eingeschalteter LED erkannt werden, dass die Taste betätigt wurde, daher sind LED und Taste einzeln angeschlossen. Da passt auch der Port RA5 gut ins Konzept, denn er kann nicht als
Output geschaltet werden. Da der Port PA Schmitt-Trigger-Eingänge hat, muss man extern noch Pull-Ups (RN1) anflanschen, um ein sauberes "High" zu bekommen. Netter Nebeneffekt der Doppelnutzung der Taster:
der LED-Strom "brennt" manche Kontaktbeläge weg.
Zur der Relais-Schaltung: Das Schieberegister (IC 2) sorgt dafür, daß wir nur 3 Pins des PIC für die acht Relais verbrauchen, die Relais-Platine mit einem 5-Adrigem Kabel anschließen und direkt an den
Eingängen an der Gehäuserückwand anbringen könnten - und noch Reservepins für das Motorpoti und den IR-Empfänger übrig bleiben.
Die Freilaufdioden (im IC 3, ULN2803) plus Zenerdiode (ZD 1) sorgen für kürzere Abfallzeiten als eine Freilaufdiode allein (siehe Linkliste).
Die Relais sind übrigens keine Feld-Wald-und-Wiesen-Typen sondern aus der High-End-Szene bekannte Bauteile. Das RC-Glied an Pin 10 des Schieberegisters sorgt für eine Art PowerOn-Reset, ohne
daß wir einen Controller-Pin dafür verbrauchen.
Der IR-Empfänger (IC 4) TSOP1736 von Vishay filtert das 36kHz-Trägersignal schon aus und liefert an seinem Ausgang das
invertierte Datensignal fertig zum Decodieren (siehe Linkliste unten). Die Versorgungsspannung soll man laut Vishay-Datenblatt nochmal mit
einem RC-Glied filtern (R5, C8). Sinnvoll ist es, IC4 mit dem RC-Glied auf einer separaten kleinen Leiterplatte anzubringen, die man irgendwo
an der Gehäusefront nach draußen blicken lassen kann. Die Tchibo-Fernbedienung (TCM Artikel-Nr. 225926) habe ich mit dem Code 043 aus der Sparte "AUX" programmiert, sie liefert dann astreinen RC5-Code.
Die Ansteuerung des Motors aus dem ALPS-Motorpoti geschieht mit zwei der vier Halbbrücken im IC5. Der verwendete Typ hat L293D auch schon integrierte Freilaufdioden, man muss nur
noch auf große Masseflächen achten, die der Kühlung dienen, wenn man das IC Dauerlastfest machen will: Der Motor des Potis zieht maximal 200mA, das IC kann 600mA dauerhaft (Kühlung!!!). Zur Erläuterung der Funktionsweise
einfach mal nach "H-Brücke" googeln. Kurze Zusammenfassung: Erster Zweig auf L, der andere auf H = Motor dreht, Erster Zweig auf H, der andere auf L = Motor dreht anders herum, beide Zweige gleiches
Signal = Motor steht/bremst. GANZ WICHTIG: C9 direkt in der Nähe des ICs, damit der Anlaufstrom niederohmig bezogen werden kann.
Den Motor selber sollte man direkt an den Motoranschlüssen durch zwei Induktivitäten in Serie, einen Kondensator parallel und ggfs. je einen Kondensator zwischen Motorpol
und Gehäuse entstören.

Entstörung des Motors direkt an den Anschlüssen
Stückliste Steuerung Picsel 1:
IC 1 PIC16F628(A) Microcontroller Microchip mit EEPROM
IC 2 74HCT595 Schieberegister seriell in parallel out
IC 3 ULN2803 8 x Lowside Switch als Relaistreiber
IC 4 TSOP1736 Vishay IR-Empfänger (z.B. bei Reichelt)
IC 5 L293D Vierfach-H-Brückentreiber (z.B. bei Reichelt)
R 1-3 220R Widerstand 220 Ohm 1/4W
R 4 4k7 Widerstand 4k7 1/8W
R 5 100R Widerstand 100Ohm 1/4W
RN 1 8x4k7 Widerstandsnetzwerk 8x4k7
C 1-6 100nF Block-Kondensatoren
C 7 100µF/10V Elko
C 8 4.7µF/10V Elko
C 9 470µF/10V Elko
D 1-5 LED rot 3mm rot LEDs (bei mir schon auf der Verstärker-LP)
D 6-8 LED gruen 3mm gruene LEDs (bei mir schon auf der Verstärker-LP)
ZD 1 ZPD4.7 Zener-Diode 4,7V
T 1-8 Taster Einpolige Taster (Teilweise bereits im Verstärker vorhanden)
Rel 1-8 Relais Relais 2xUm, 5V, Takamisawa RY05W-K, (z.B. bei Schuro Elektronik)
M Motorpoti Motor des ALPS Potentiometers 4-6V, max. 200mA
C1-3 100nF Entstörkondensatoren
L1,L2 1µH Entstörinduktivitäten

Teil2: Schaltplan der Stromversorgung (Klicken für Großbild)
Teil 2: Die Stromversorgung
Die Stromversorgung ist recht klassisch: Brückengleichrichter, Siebung, Längsregler. Wenn man einen eigenen
Kleintrafo spendiert, sollte man 7V 400mA vorsehen. Ich habe einfach eine Hilfsspannung direkt im Verstärker angezapft,
allerdings mit dem Nachteil, das man IC6 auf jeden Fall kühlen muss.
Stückliste Versorgung:
IC 6 7805 Spannungsregler 5V, 1A
C 10 470µF/40V Siebelko
C 11 22µF/10V Elkos
GL1 B80C400 Brückengleichrichter
Software:
Hier die Picsel 1 - Quellen und Hexfile als ZIP. Version 1.5
...und das C-File zum Lesen
Funktionen:
init() Initialisierung von Hardware und Variablen
write_eeprom(..) Schreiben eines Bytes ins interne EEPROM
read_eeprom(.) Lesen eines Bytes aus dem internen EEPROM
debounce() Einlesen der Taster, Entprellen und Änderungdetektion (Link dazu siehe unten)
auswerten() Auswerten der Tasten, Setzen der LEDs
collect() Zusammenfassen des aktuellen Schaltzustandes
restore_state() Alten Status aus EEPROM lesen, Plausibilitätscheck, LEDs setzen
set_relais() Ausgeben des Status ans serielle Schieberegister + die Relais (rd. 57kHz seriell per SW)
do_remote() Auswertung des RC5-Fernbedienungscodes
main() Hauptschleife
int_server() Interruptroutine für IR-Decoder am INT-Pin
tmr0wait() Warteschleife mit Stoppuhr
ir_bogus() Fehlerbehandlungsroutine
ir_philips_rc5() RC5-Decodierung über Impulsbreite des Manchester-Codes
get_ir() Pulsbreitenkontrolle
Weitere Links:

Die Umbauanleitung für den KA-990V
Messungen:

Debouncing: gut 30ms zwischen fallender Flanke (TASTE) und Ausgabe ans Schieberegister (SRCLK)

IR-Empfang und Motorspannung (schön zu sehen: der Nachlauf nach dem letzen Fernbedienungscode)
|
PICSEL 2 -projektiert-
|
|
Hier wird es bald den Schaltplan zu Picsel 2 geben (... so gross sind die Unterschiede zu Version 1 nicht)
...und die SW dazu natürlich auch!
Features Picsel 2 (- projektiert für einen Verstärker-Eigenbau -):
- Ein Umschalter von 6 Quellen mit gegenseitiger Auslösung: Quellen A...F
- 2 Tasten mit Rastfunktion: Mute und On/Standby
- Das On/Standby-Relais mit separatem Transistor geschaltet (zur Trennung von den Audiorelais)
- Alle LEDs werden ausgeschaltet, wenn Standby aktiv ist
- Auswertung der Tasten On/Off und Mute auf der Fernbedienung
|
|
|
|