Hallo Zusammen, ich plane gerade eine Audio Vorstufe die möglichst eine abgedrehte Anzeige für die Eingänge und Statusanzeige besitzen soll. Mit ein bisschen glück bin ich günstig an Varisymbol Röhren vom Typ ZM1350 (funktionieren fast gleich wie eine Nixie) gekommen die das übernehmen sollen und mir bald zugeschickt werden, die Ansteuerung ist aber leider nicht so einfach... Jede der Röhren besitzt 16 Kathoden die jeweils einzeln angesteuert werden müssen, deshalb bekommt jede Röhre 16 Transistoren an die Kathoden damit ich mit normalem TTL Pegel die Zeichen anfahren kann. Nun ist das Problem das ich 5 Röhren habe also 80 Zeichen die einzeln ansteuerbar sein müssen. Mein Gedanke war das mit BCD zu Dezimal Dekodern zu machen, dann könnte ich mit 8Bit alle Zeichen darstellen. Was ich nicht bedacht habe ist das ich jeweils nur ein Zeichen damit anzeigen kann, für mehr müsste ich mit multiplexen arbeiten was auch laut Datenblatt erlaubt ist aber Lebensdauer kostet, keine Option also. Habt Ihr eine Idee was ich machen könnte? Wenn es geht würde ich gerne auf einem µC verzichten, hatten wir zwar in der Schule so fit bin ich allerdings nichtmehr zumal mir die Programmierumgebung fehlt. Ich denke aber mit normalen ICs wird das ein Bauteilgrab wenn ich gleich noch an die Ansteuerung denke x: Danke schonmal! Gruß Jan
Ich werfe mal den 74HC595 via SPI in den Raum... 10 Stück a 8 Ausgänge = 80 Ports + Ansteuerung über Transistor. Mirko
...es handelt sich um ein alphanumerisches Anzeigedisplay, in welchen Ziffern und Buchstaben aus Strichen zusammengebaut werden können...sehr retro und oldschool... ;) Soweit ich das sehe (ZM1350) hat die pro Stück 14 "Leuchtelemente". Bei 5 Stück also 70 "Leuchtelemente" + 5 Stellenanzeigen =75. Ich würde das ganze per kaskadiertem Schieberegister an einem µC machen. Mirko
Hallo zusammen, Danke schonmal für die Antworten. =D den 74HC595 Schau ich mir mal an, danke! Mit Dezimalausgängen war einfach gemeint das ich 80 voneinander unabhängige Ausgänge brauche, natürlich sollen auch mehrere gleichzeitig geschaltet werden können (macht ja sonst keinen Sinn) Ich wollte dafür eine Logikschaltung basteln, denke aber wie gesagt ohne µC geht das leider nicht. ALternative wäre ein PLD damit habe ich aber immernoch das Problem keine 80 Ausgänge zu besitzen, Programmierumgebung müsste ich auch erst kaufen. Ziel ist das ich ca. 11 Eingänge habe, Drücke ich z.B. den "AUX" Schalter bekommt Eingang 1 einen High Pegel und das Display Zeigt "--AUX--". Ich hoffe ich konnte das einigermaßen verständlich erklären..... Gruß Jan
"Ich würde das ganze per kaskadiertem Schieberegister an einem µC machen." Kannst Du mir ein bisschen auf die Sprünge helfen wie Du das meinst? Ich bin zwar seit einem Jahr Elektroniker habs aber eher mit Analogtechnik^^
Am beschaffbarsten/preiswertesten wohl mit 10x 80x Kathode +-------+ | |75HC595|--1k--|< BF420 +-------+ |E GND mit weniger Bauteilaufwand 10x Kathode +---------+ | |TPIC6B595|---+ (hält immerhin 50V aus, ein 74141 konnte auch nur 60V) +---------+
Hallo Jan, rein theoretisch würde das was du vorhast auch ohne IC's gehen. Für jeden Eingang verschaltest du je eine Diode an die entsprechenden Segmente die leuchten sollen - braucht halt eine 'gewisse' Anzahl an Dioden. Sascha
Gut das ich kein Elektroniker bin. Aber mit kaskadierten Schieberegister meint er wohl meherere hintereinander geschaltete Seriel zu- Parallel Wandler IC's, die über einen einzigen Pin ansteuerbar sind. Deine 75 Ausgänge könnten mit 8 IC's realisiert werden...das kannst du googlen. Gruß Jonas
Dafür gibts hier ein Wiki: http://www.mikrocontroller.net/articles/Porterweiterung_mit_SPI http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister Schnell gesagt: Die Daten werden seriell ins Schieberegister geschoben und parallel ausgegeben. Als Einstieg dürfte ein Adurino reichen. Mit dem könnte man dann auch die Signalpfade über Relais schalten. Wenn es allerdings nur um die Anzeige geht... Vielleicht geht das auch über eine hardcodierte Diodenmatrix? Mirko
Hallo Zusammen, MaWin schrieb: > Am beschaffbarsten/preiswertesten wohl mit > > 10x 80x > > Kathode > +-------+ | > |75HC595|--1k--|< BF420 > +-------+ |E > GND > > mit weniger Bauteilaufwand > > 10x Kathode > +---------+ | > |TPIC6B595|---+ (hält immerhin 50V aus, ein 74141 konnte auch nur 60V) > +---------+ So hatte ich das auch Gedacht mit dem Treiben der Röhre, was mir noch nicht klar ist ist wieso das mit Schieberegistern ohne multiplexen funktioniert, da steh ich auf dem Schlauch.... Ich Google aber mal danach. (= Sascha Weber schrieb: > Hallo Jan, > > rein theoretisch würde das was du vorhast auch ohne IC's gehen. > Für jeden Eingang verschaltest du je eine Diode an die entsprechenden > Segmente die leuchten sollen - braucht halt eine 'gewisse' Anzahl an > Dioden. > > Sascha Das hab ich mir auch schon überlegt, der Aufwand wäre allerdings wirklich sehr hoch. Ich denke da ist der µC oder PLD besser geeignet? Gruß Jan
@ Jonas und Mirko, Danke, ich lese mich mal ein! =D Gruß Jan
Jan schrieb: > Hallo zusammen, > > Danke schonmal für die Antworten. =D > > den 74HC595 Schau ich mir mal an, danke! > > > Mit Dezimalausgängen war einfach gemeint das ich 80 voneinander > unabhängige Ausgänge brauche, natürlich sollen auch mehrere gleichzeitig > geschaltet werden können (macht ja sonst keinen Sinn) Ich wollte dafür > eine Logikschaltung basteln, denke aber wie gesagt ohne µC geht das > leider nicht. ALternative wäre ein PLD damit habe ich aber immernoch das > Problem keine 80 Ausgänge zu besitzen, Programmierumgebung müsste ich > auch erst kaufen. > > > Ziel ist das ich ca. 11 Eingänge habe, Drücke ich z.B. den "AUX" > Schalter bekommt Eingang 1 einen High Pegel und das Display Zeigt > "--AUX--". Ich hoffe ich konnte das einigermaßen verständlich > erklären..... > > Gruß > > Jan Guck dir Arduino an. Normalpreis 25€, beim Chinamann teilweise für 10. Da hast du alles, was du brauchst, um deine Schieberegisterkaskade anzuklemmen und zu programmieren. Programmiergerät(Bootloader) ist eingebaut, Software gibt es zum runterladen. mfg.
Jan schrieb: > was mir noch > nicht klar ist ist wieso das mit Schieberegistern ohne multiplexen > funktioniert, da steh ich auf dem Schlauch.... Eigentlich ganz einfach. Erstmal schaltest Du die Ausgänge des Schieberegisters aus (dafür haben die meist einen Pin). Dann legst Du das erste Bit am Eingang an, und togglest die Taktleitung. Damit schiebst Du Dein Bit in das Schieberegister. Mit jedem Togglen der Taktleitung schiebst Du das angelegte Bit rein, und die anderen Bits werden jeweils um eines weiter geschoben. Würdest Du die Ausgänge nicht ausschalten, so würdest Du das Schieben sogar sehen, das ist für den Anfang vielleicht nicht schlecht. Idealerweise schaust Du im Datenblatt nach bei welcher Flanke des Taktsignals geschoben wird und optimierst dann das Bit-Setzen und Schieben. Der SPI-Baustein macht das sogar für Dich, wenn Du willst. Du kannst sogar wenn Du das wirklich optimieren willst, mehrere Ketten an Schieberegistern parallel haben. Zum Beispiel hier 8. Da hättest Du dann jeweils 2 Schieberegister in die Du 10 Bits reinschiebst. (die letzten Ausgänge sind dann unbenutzt. Wenn Du die 10 Bitwerte in den Registern r0-r9 stehen hast, kannst Du das in wenigen Taktzyklen ausgeben.
1 | LDI r16,(bitkombination für Ausgang aus, clock high) |
2 | LDI r17,(bitkombination für Ausgang aus, clock low) |
3 | OUT PORTB,r16 //Port B hat die Clockleitung und die Output Enable Leitung |
4 | OUT PORTA,r0 //PortA ist wo die 8 Schieberegister dran sind |
5 | OUT PORTB,r17 |
6 | NOP //nicht unbedingt notwendig |
7 | OUT PORTB,r16 |
8 | OUT PORTA,r1 |
9 | ... |
10 | OUT PORTA,r9 |
11 | OUT PORTB,r17 |
12 | NOP |
13 | OUT PORTB,r16 |
14 | LDI r16,bitcombination für Ausgang ein, clock high) |
15 | OUT PORTB,r16 |
Das macht 44 Taktzyklen zum Schieben.
Thomas Eckmann schrieb: > Guck dir Arduino an. Normalpreis 25€, beim Chinamann teilweise für 10. > Da hast du alles, was du brauchst, um deine Schieberegisterkaskade > anzuklemmen und zu programmieren. Programmiergerät(Bootloader) ist > eingebaut, Software gibt es zum runterladen. Werde ich machen, Meine Programmier Kenntnisse sollte ich sowieso mal wieder Auffrischen.... Eine Sache ist mir gerade noch eingefallen, wäre nicht wirklich das aller einfachste ein PLD mit 16 Ausgängen / >11 Eingängen? Ich könnte Jeder Anzeige einen eigenen verpassen, die Beschaltung um den Baustein ist nicht komplex und alle Schaltungsblöcke sind Exakt gleich aufgebaut. Wir hatten in der Schule eine Zeit lange PLDs als Thema die mit ABEL Programmiert werden. Müsste ich hinbekommen, Diodenlogik habe ich gerade versucht und das wird ein Bauteilgrab (-;
Da man bei dieser "Röhre" im Gegensatz zu normalen Nixies auch mehrere Kathoden unabhängig betromen können muß, unterscheidet sich die Schaltung auch ein bisschen. Alles Wissenswerte findet man hier: http://www.die-wuestens.de/r5.htm nach "ZM-1350" suchen oder so runterscrollen. XL
PLD warum nicht? Wenn du dich damit auskennst. Schau halt das deine Kosten irgendwie im Rahmen hälst, vom Gefühl würd ich denken das die MC+Schiebekaskade Kombi günstiger ist. Gruß Jonas
Nochmals danke für Eure Antworten, hab mich jetzt entschieden mein Berufsschulwissen aufzufrischen und das ganze über einen Atmega32 zu steuern, Vorteil ist das ich auch die komplette Eingangswahl damit einfach realisieren kann. (= Gruß Jan
Richtig Oldschool wärs mit (E)EPROM und einem 8 Bit Bus an dem 8 Bit D-Flipflops (74HC273) hängen. Die Adresspins des EEPROM sind bekommen die Adresse für welche Röhre sind die Daten sind und den Eingang binär codiert (Aux, CD, etc). Dann taktet das durch und die Röhren bekommen ihre Daten. 80 Ausgänge ergibt ja dann 10 ICs mit den Flipflops drinne, deren CLK Eingang kommt von einem 4017 und an den Adresspins des EEPROm wird auch nur bis 10 gezählt. Musste nur Bitmuster ins EEPROM schreiben.
Oldschool muss nicht sein nur weil es alte Röhren sind =D Da ist der Mega32 genau richtig denke ich^^ Eine Frage hätte ich noch, wenn das ganze schon per µC gemacht wird würde ich gerne über einen Drehgeber die Quellenwahl machen: http://www.reichelt.de/Drehimpulsgeber/STEC11B03/3/index.html?&ACTION=3&LA=2&ARTICLE=73913&GROUPID=3714&artnr=STEC11B03 Leider bin ich dazu zu dämlich, kann mir jemand (Möglichst einfach) sagen wie man das am besten auswerten kann? Das Tutorial: http://www.mikrocontroller.net/articles/Drehgeber Hab ich schon gelesen, muss aber gestehen das ich den Beispielcode in C nicht wirklich verstehe, eventuell bekomme ich das hin wenn ich Grundlegend verstehen würde wie die Auswertung abläuft. -_- Danke schonmal =D
Hier mal ein Text aus einem Projekt in dem das Auswerten vorkommt. Dieser bezieht sich auf "Dekoder für Drehgeber mit wackeligen Rastpunkten". Da der Codesparender ist und mit einer anders coderiten tabelle ist auch wieder volle Schrittauflösung möglich. Tabelle: static const int8_t dreh_table[16] = {0,1,-1,0,-1,0,0,1,1,0,0,-1,0,-1,1,0}; Text: Um den Graycode auswerten zu können wird jeder Graycode zwischen 0 und 3 als Zustand eines Automaten aufgefasst. Aus den Übergängen zwischen 2 Zuständen wird der Drehsinn des Drehgebers berechnet. Von jedem Zustand gibt es 4 Übergänge zu einem neuen Zustand, also insgesamt 16 Zustandsübergänge. Von den 4 möglichen Übergängen pro Zustand sind aber nur 2 zulässig und ergeben den Drehsinn, die anderen beiden sind nicht zulässig und entstehen durch prellen der Kontakte oder zu schnelles drehen des Drehgebers (Unterabtastung). Bei einem unzulässigen Übergang ändert sich nicht nur 1 Bit sondern 2. In einer Zustandsübergangtabelle kann nun der Drehsinn des Drehgebers gespeichert werden, dies ist dreh_table[16]. In der Interruptroutine muss also nur noch der neue Zustand detektiert und mit dem alten verglichen werden. Der daraus resultierende Drehsinn wird dann in einer Variable aufsummiert. ENDE Der erste Code in dme LInk berehcnet eben die Zustandsübergänge und der 2. guckt in einer Tabelle nach.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.