Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Code gesucht der Incrementalgeber Eingang auf BCD Ausgang generiert » Themenansicht

Autor Thread - Seiten: -1-
000
21.06.2013, 08:44 Uhr
Buebchen



Hallo!
Ich möchte ein Incrementalgeber Signal mit 2-Bit Graycode auf einen Einchiprechner (PIC oder AVR) schicken der mir am Ausgang des Einchiprechners einen BCD Code erzeugt.
Durch drehen des Incrementalgebers will ich so BCD Zahlen von 0-F erzeugen.
Hat so etwas jemand zu liegen?
Ich habe ein VHDL File das ich nicht bearbeiten kann mangels Ahnung und Software. Kann mir das jemand in ein Jedec-File verwandeln für einen Gal?
Buebchen

Dieser Beitrag wurde am 21.06.2013 um 09:32 Uhr von Buebchen editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
21.06.2013, 12:03 Uhr
holm

Avatar von holm

Schaue mal bei mikrocontroller.net nach und suche nach "Drehgeber" evtl. "auswerten".
Dort findest Du längliche Threads darüber, auch in der Codesammlung.

Freilich wird kein BCD Code rauskommen, ein Bisschen Hand anlegen wirst Du schon müssen.
Willst Du einen EKD100 aufpeppen?

Ahnung von VHDL habe ich auch nicht, bin mir aber rect sicher das Du dieses Problem wegen Mangel an Flipflops in kein GAL bekommst, das wird schon ein CPLD werden müssen..
Zeig mal den Code.


Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 21.06.2013 um 12:07 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
21.06.2013, 12:53 Uhr
Rolli



Soll nun ein EMR oder ein GAL/CPLD die Wandlung vornehmen?

Gruß
Rolli
--
Wer Phantasie hat, ist noch lange kein Phantast
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
21.06.2013, 12:56 Uhr
gubby



Hallo Bübchen,

es gibt verschiedene Drehgeber bezüglich Anzahl der Rastungen und Impulse pro Umdrehung.
Welches Verhältnis zwischen Rastungen und Impulsen hat dein Drehgeber?

Möchtest du nach erreichen von 0xF stoppen oder soll es mit 0 weitergehen?

Wäre ein ATtiny2313A aktzeptabel?

Gruß
Uwe
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
21.06.2013, 13:15 Uhr
Rolli



Wie sollen aus zwei bit 16 Zustände decodiert werden? Das ist nicht mehr eindeutig.
Was anderes ist es, wenn die zwei bits als Zählimpuls mit Richtunginformationl interpretiert werden. Dann ist aber der Stellung des Gebers keine eindeutige BCD-Zahl zugeordnet.

Gruß
Rolli
--
Wer Phantasie hat, ist noch lange kein Phantast
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
21.06.2013, 13:47 Uhr
PIC18F2550

Avatar von PIC18F2550

INC-Geber liefern zwei Signale die sin/cos vom Drehwinkel voneinander verschoben sind.
Aus den 2 Phasen wird die Drehrichtung bestimmt.
Des weiteren benötigt ein INC immer eine referenz von der aus +/- gezält wird.

Aus den Nulldurchgängen der phasenfolge wird mit einem zähler +/- gezählt und das entspricht seiner position.
dadurch können auch winkel >380° gezählt werden ( Motoren zur Steuerung von Verschiebeeinheiten)

Der Zählumfang ist damit mehr als nur 2 Bit

Es gibt analoge und digitale INC
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
21.06.2013, 14:20 Uhr
Buebchen



Hallo!
Vielen Dank für die vielen Meldungen.
Mir ist das zu verwendende Bauelement ziemlich egal. Ich habe im Microcontroller Forum allerdings einen Vorschlag in VHDL gefunden.
Ein Attiny 2313A in dieser Verwendung für ein Musikprojekt habe ich allerdings auch gefunden. Mit den Atmels tue ich mich aber schwer. Ich hätte sonst versucht das Problem mit einem PIC zu lösen.
Es ist vieleicht für die Anwendung mit Kanonen nach Spatzen geschossen. Ich möchte für ein Eprommer Zusatzmodul eine Vorwhl von Blockadressen vornehmen und zur besseren Übersichtlichkeit anzeigen. Ich kann natürlich auch mit einem Up/Down Zähler und Tasten arbeiten. Da bin ich mir aber noch nicht so ganz klar.
Wenn Blöcke zwischendurch aufgerufen werden sollen ist ein Incrementalgeber sicher schneller. Billiger ist die Zählervariante.
Buebchen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
21.06.2013, 14:37 Uhr
holm

Avatar von holm

:-)

Du findest Atmels schwer? ..und PICs einfach?

ROTFL...

Bei Atmel helfe ich Dir gerne, PIC von mir aus irgend Jemand anderes, zumindest 16xxx,
ich quäle mich doch nicht selber..


BTW: Habt Ihr ne drahtlose Maus?

Guckstdu Spiegel Online: http://cdn2.spiegel.de/images/image-511529-panoV9free-wfuv.jpg

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
21.06.2013, 15:50 Uhr
hjs




Zitat:
Buebchen schrieb
Ich kann natürlich auch mit einem Up/Down Zähler und Tasten arbeiten. Da bin ich mir aber noch nicht so ganz klar.

Einen Encoder abzufragen ist schon eine ziemliche Herausforderung. Die Firma Siemens scheitert regelmäßig daran. So zu sehen bei der LOGO!.

Jetzt mal im Ernst: Manche Hersteller bieten einen Programmablaufplan an. Guck mal, ob Du damit was anfangen kannst:
http://www.hopt-schuler.de/bausteine.net/f/8249/427.pdf
Und einen 16er PIC braucht man dafür auch nicht, ein 12er macht's.

MfG
hjs
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
21.06.2013, 16:08 Uhr
gubby




Zitat:
Buebchen schrieb

Durch drehen des Incrementalgebers will ich so BCD Zahlen von 0-F erzeugen.

Buebchen

Sehe ich das richtig, dass du nur einen 4 bit Ausgang brauchst und mit dem Drehgeber die 16 Zustände duchschalten willst?

Dann würde sich ein ATtiny13A (8 Beinchen, 1,15 Euro bei Reichelt) anbieten, den kannst du mit deinem GALEP bequem programmieren.
Ich habe mich mal für einen XPressnet-Regler (Modellbahn, DCC) mit Drehencodern befasst. Eines meiner Trainingsobjekte war in etwa das was du suchst. Wenn Du möchtest kann ich es am Wochende mal raussuchen und das bischen anpassen und compilieren mache ich auch noch.

Falls du die Leute bei mikrocontroller.net mal aktivieren möchtest, dann Frage nach einer Routine für Drehencoder und verwende die Worte "Entprellung" und "Interrupt" in einem Satz - da kannst du auch gleich "Jehova" sagen ;-)

Gruß
Uwe
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
21.06.2013, 17:30 Uhr
holm

Avatar von holm

Ja, deswegen verwies ich auch auf mikrocontroller.net, das Thema ist da sehr häufig diskutiert worden und es wird davor gewarnt die Flanken des Encoders auswerten zu wollen. Statt dessen ist eine Statusmaschine zu verwenden. Der Dort in der Codesammlung verfügbare Quelltext ist mittlerweile erwachsen.

Es wäre aber cool wenn Bübchen mal erzählen würde was er überhaupt machen will, momentan ist das noch ziemlich verschwommen, daraus kann man weder ein Programm noch eine programmierte Hardware machen.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
21.06.2013, 19:36 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

google mal nach bcd switch. Vielleicht ist es das, was du brauchst?

z.B. sowas : http://www.ebay.com/itm/2pc-Rotary-Dip-Switch-BCD-code-RS30014-0-F-Scale-10x10x4-7mm-Hampolt-Taiwan-/140720329120
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
21.06.2013, 19:42 Uhr
Micha

Avatar von Micha

@Buebchen:
nur mal aus Neugier - was genau hast du vor? So wie ich es mir aus dem Thread zusammenreime hat das Gerät was dir vorschwebt ein Drehrad, mit dem man eine anzuwählende Nummer durch Links/Rechts-Drehen hoch oder runter schrauben kann?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
21.06.2013, 19:51 Uhr
Buebchen



@Holm
Hallo!
In der 006 habe ich meiner Meinung deutlich gesagt wozu ich das brauche.
Ich habe keine Ahnung von Assemblerprogramierung. Für PICs habe ich aber den grafischen Compiler "Parsic" der leider nicht mehr weiter gepflegt wird. Damit habe ich schon vieles gemacht.
Weil ich aber gelesen habe das eine Statusmaschine besser geeignet ist und der VHDL Text dazu stand, habe ich nach der Möglichkeit den Quelltext zu Compilieren gefragt. Ich hatte vor zwanzig Jahren für die Auswertung eines Incrementalencoders eine Hardwarelösung die mir inzwischen zu aufwendig ist.
Ich suche eine Einfache Lösung um schnell eine 4bit Hexzahl zu erzeugen die einen Block aus 16 adressieren soll. Damit soll ein 16KB-Block in einem 512 KB Eprom, 27C040, ausgewählt werden. Der kann damit auf einem Brenner der eigentlich nur bis zum 27256 brennen kann an der gwünschten Adresse einen 16KB Block brennen.
Wie gesagt ist das mit dem Incrementalencoder eventuell nur eine teure Spielerei und mit einem Up-Down-Zähler billiger zu lösen. Warscheinlich ist es auch sinnvoller die Blöcke in der Reihenfolge hintereinander zu brennen. Seht es als öffentliches Brainstorming an. Dabei auf eine Lösung zu stossen ist nicht unerwünscht und auch möglich.
Vielen Dank!
Buebchen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
21.06.2013, 20:35 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Willst du die Adresse softwaremäßig setzen oder manuell? Manuell tuts ein BCD Switch, über Software lässt sich etwa ein 4 Bit-Counter ansteuern. Einen Microcontroller dafür zu nehmen ist schon mehr als eine Kanaone; da kann der PIC gleich den kompletten Brenner enthalten.
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
21.06.2013, 21:09 Uhr
holm

Avatar von holm

@Bübchen: Nein, hast du nicht, was Du willst hast Du erst in 013 geschrieben.. :-)
Im Ernst aus Deinem vorhergehenden Posting ging nicht hervor wie weit Du z.B. zählen willst.

Der Aufwand ist heute zu Tage mit einem Controller meist geringer als eine diskrete Lösung. Die Dinger sind einfach zu billig geworden.
Mit der grafischen Programmiererei habe ich meist ein Problem, weil das immer nur auf genau einer Architektur verfügbar ist. Es macht aber für mich keinen großen Unterschied unter Unix auf was der Teufel für einem Prozessor, auf einem Atmel, einem MSP430, einem Z80 oder aber einem ARM zu programmieren so lange es da einen C Compiler gibt. Klar kann ich auch Assembler vom z.B: Z80, Atmel habe ich auch schon mal gemacht 8053 auch, Rest eher weniger.

Ich werde erst nach dem WE Zeit haben mal da reinzugucken..

Gruß,
Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
21.06.2013, 22:09 Uhr
Buebchen



@volkerp
Hallo!
Es soll eine Hardwarelösung sein um nur über die Brennerfassung ohne weitere Verbindungen kontaktieren zu müssen.
An einen BCD-Switch dachte ich auch erst. Die sind aber nur für wenige Schaltzyklen gemacht. Auch die Tiptasten mit denen zum Beispiel SCSI-Baugruppen adressiert werden sind wegen der nur vorhandenen zehn Stellungen und der geringen Stabilität nicht geeignet.
Inzwischen weis ich das die billigen increment Encoder mechanische Kontakte haben deren Stabilität mir auch fraglich vorkommt. Ich werde wohl eine Lösung mit Up-Down-Zähler realisieren. U40511 für eine Anzeige 0-F habe ich erstmal ausreichend. das wäre ein 8 Beiniger AVR oder PIC und der U40511. Das halte ich im Aufwand und Preis für vertretbar. Reine Hardware-Lösungen sind natürlich auch möglich aber nehmen eventuell zuviel Platz ein. Bis auf die Anzeige und die Schaltmittel will ich die Elektronik unter der Programierfassung des Zusatzmoduls unterbringen.
Es ist mein Bestreben möglichst Platzsparend aber ohne SMD zu entwickeln.
Buebchen

Dieser Beitrag wurde am 21.06.2013 um 22:10 Uhr von Buebchen editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
21.06.2013, 23:29 Uhr
holm

Avatar von holm

Den 40511 kannst Du einsparen wenn Du z.B. einen Atmega8 o.ä. mit ausreichend Pins verwendest. Den Decoder kann man auch in SW machen. Du brauchst also nur den Atmega und einen Quarz für den Takt. (wenn Du das willst, es kann vom internen RC Oszillator erledigt werden)
Es reicht also ein Prozessor, und ein paar Cs..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
22.06.2013, 10:10 Uhr
Buebchen



@Holm
Hallo!
Interner Oszillator und Decoder im Chip, das wäre natürlich die optimale Lösung.
Hättest Du Zeit Dich damit zu beschäftigen?
Mein Ding sind mehr die Leiterplatten.
Buebchen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
22.06.2013, 12:52 Uhr
gubby



Würde dir diese Schaltung gefallen?

Wenn du mir jetzt noch sagst ob deine 7-Segmentanzeige eine gemeinsame Anode oder Katode hat und du noch die Fragen aus 003 beantwortest, bekommst du auch noch ein massgeschneidertes Programm (Assembler) und das fertige hex-File zum brennen.

Gruß Uwe
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
22.06.2013, 19:22 Uhr
Buebchen



@gubby
Hallo Uwe!
Das sieht sehr gut aus. Allerdings habe ich mir überlegt das vernünftige Incremental Encoder den Preis des ganzen warscheinlich unnötig hochtreiben würden. Es soll ja nur eine kleine preiswerte Zusatzplatine für an 8-Bit Rechnern eingesetzt Eprommer werden. Wäre es Dir auch möglich statt der beiden Incremental Geber Eingänge Tasten vorzusehen die einen 4bit Vor- Rückwärts Zähler ansteuern und eine weitere Taste den Zählerwert gültig für den Hexausgang und die Anzeige macht.
Die Siebensgmentanzeigen können so sein das es den einfacheren Code ergibt. Mit gemeinsamer Kathode wie in Deiner Schaltung ist aber in Ordnung.
Ich will da nichts vorgeben. Die Preise sind ja ähnlich und es wird nur eine Einzelanzeige benötigt. Zum testen habe ich beide Sorten Anzeigen und den AVR zu liegen und würde erst bei der Layouterstellung den Typ heraussuchen.
Brennen kann ich den AVR ebenfalls.
Vielen Dank für Deine Mühe!
Buebchen

Dieser Beitrag wurde am 22.06.2013 um 19:46 Uhr von Buebchen editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
23.06.2013, 10:29 Uhr
Germaniumröhre



Hallo Zusammen,

da ich weiß, das es für den Bübchenbrenner sein soll und auch die Baugröße und Bübchens Anliegen kenne, da ich ja auch so einen Brenner habe, interessiert mich das auch.
Vom ATTiny habe ich zwar keine Ahnung, aber von der Funktion her würde es doch reichen, wenn der Tiny per einfacher Taste mit jedem Tastendruck einfach einen Schritt weiterschaltet und die Hexzahl per kleiner LED angezeigt wird.
Wenn die Tinyausgänge 10mA treiben können , wären die kleinen altenVQB37(gemeinsame Katode) sehr platzsparend. Falls die nicht mehr verfügbar sind, müßte man nach anderen möglicht kleinen stromsparenden Typen suchen.
Mit diesen Bauteilen wäre es möglich alle Bauteile und Brennerfassung auf einer Seite zu bestücken.

Was meint ihr dazu ?

Viele Grüße
Bernd
--
Kombjuder sorgen für Arbeit, die man ohne Diesem sicherlich nicht hätte.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
23.06.2013, 10:59 Uhr
gubby




Zitat:
Buebchen schrieb
... und eine weitere Taste den Zählerwert gültig für den Hexausgang und die Anzeige macht.

@bübchen
Das mit den Tasten ist natürlich möglich, wobei der Preis sicherlich nicht den Ausschlag geben sollte. Bei Reichelt kostet ein Drehgeber von Alps (STEC12E07) 1,50 Euro - ob man da mit Tasten billiger kommt?
Allerdings habe ich dein Anliegen mit der dritten Taste noch nicht richtig verstanden. Wenn die Anzeige erst bei drücken dieser Taste erscheinen soll musst du blind Tasten und dich dann irgendwann von dem Ergebnis überraschen lassen.
Wenn die Anzeige mitläuft und erst bei betätigen der dritten Taste die BCD Ausgänge aktiviert werden kann es dazu kommen das der Wert der Anzeige von dem Wert am BCD-Ausgang abweicht - eine Fehlerquelle welche man bei einem Brenner sicherlich nicht brauchen kann. Ist es denn problematisch wenn sich der Wert am BCD Ausgang direkt mit dem Tastendrücken ändert, in dem Moment wenn man etwas einstellt wird man ja nicht gleichzeitig brennen?

@Germainiumröhre
Sicherlich mag es seinen Reiz haben ne alte VQE37 dafür zu verwenden, wenn die Schaltung allerdings nachgebaut werden soll, ist das Problem mit der Beschaffung nicht ganz zu vernachlässigen. Dem ATtiny ist es egal, er treibt locker 20mA in beiden Richtungen (40mA aboluter Grenzwert laut Datenblatt).

Gruß
Uwe
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
23.06.2013, 11:12 Uhr
Germaniumröhre



Hallo Uwe,

die Drehgeber sind mechanisch nicht besonders stabil.

Als LED geht auch die hier:
http://www.reichelt.de/Siebensegment-Anzeigen/SA-39-11-GN/3/index.html?;ACTION=3;LA=2;ARTICLE=6920;GROUPID=3002;artnr=SA+39-11+GN

Die Ausgänge als Stromquelle schalten kannst Du bei men Tiny wohl nicht - Widerstände sparen , wäre Platz sparen .

Viele Grüße
Bernd
--
Kombjuder sorgen für Arbeit, die man ohne Diesem sicherlich nicht hätte.

Dieser Beitrag wurde am 23.06.2013 um 11:16 Uhr von Germaniumröhre editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
23.06.2013, 11:49 Uhr
gubby




Zitat:
Germaniumröhre schrieb

die Drehgeber sind mechanisch nicht besonders stabil.

hier muss ich mal eine Lanze für die ALPS-Drehgeber brechen.
Ich habe mehrere dieser Teile in Handreglern für eine Modellbahn verbaut, wo sie bestimmt mehr beansprucht werden als in einem Brenner. Bis jetzt habe keinerlei Ausfälle.

Ausgänge als Stromquelle sind meines Wissens bei einem ATtiny nicht möglich, aber Platz für einen einzelnen Widerstand sollte wohl zu finden sein.
Da kann man dann auch die Helligkeit beeinflussen ohne das Programm ändern zu müssen.

Übrigens die von dir herausgesuchten Anzeigen haben eine gemeinsame Anode - auch kein Problem, man muss es halt nur beachten.

Gruß
Uwe
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
23.06.2013, 18:28 Uhr
Buebchen



@gubby
Hallo Uwe!
Ich habe keine Erfahrungen mit den Drehreglern egal von welcher Firma. Nur das die Signalabnahme über mechanische Kontakte erfolgt gab mir zu denken. Was würde solch ein Incremental Encoder von Alps kosten und woher bekomme ich die?
Ich habe nur mal einen von Pollin bezogen aber noch nicht eingesetzt.
Bei der Firma Reich gibt es auch 10 mm Anzeigen mit gemeinsamer Kathode um 65 cent das Stück. Bei den Segmentwiederständen würde ich die Baureihe 0204 nehmen mit 7,5mm Rastermass, das ist dann unterzukriegen. Ich denke zweiseitige Bestückung sollte in dem Fall ausnahmsweise erlaubt sein um das Modul klein zu bekommen.
Das der Attiny keine Stromqellenausgänge hat ist klar.
Buebchen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
026
23.06.2013, 21:14 Uhr
gubby



@bübchen
keine Angst vor Drehimpulsgebern, selbst die billigen für 1,50 Euro sind für 30000 Umdrehungen spezifiziert. siehe
http://www.reichelt.de/Drehimpulsgeber/STEC12E07/3/index.html?;ACTION=3;LA=446;ARTICLE=73922;GROUPID=3714;artnr=STEC12E07
Auch Schalter sind letztendlich Mechanische Kontakte...
Wenn Du bis jetzt allerdings nur den Panasonic-Drehencoder von Pollin in die Finger gebekommen hast vestehe ich deine Abneigung.
Bei Reichelt findest du auch Siebensegmentanzeigen, z.B:
http://www.reichelt.de/Siebensegment-Anzeigen/SC-39-11-RT/3/index.html?;ACTION=3;LA=2;ARTICLE=6917;GROUPID=3002;artnr=SC+39-11+RT



Zitat:
Buebchen schrieb
Bei den Segmentwiederständen würde ich die Baureihe 0204 nehmen mit 7,5mm Rastermass, das ist dann unterzukriegen.

Wieso machst du dir wegen dem EINEN(!) Widerstand solche Gedanken, dafür findet sich doch bestimmt irgendwo ein Plätzchen.

Gruß
Uwe
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
027
24.06.2013, 07:52 Uhr
Buebchen



@Gubby
Hallo Uwe!
Weil es mit einem Widerstand zu stark schwankender Helligkeit der Anzeige kommt!
Es wird schon pro Segment ein Widerstand gebraucht. Bei einer grünen Anzeige fallen ungefähr 3 V ab. Wenn der Vorwiederstand 200 Ohm beträgt fliessen bei einem Segment 10 mA. Bei sieben Segmenten fliessen bloss noch rund 1,4 mA pro Segment. Das würde schon eine stark schwankende Helligkeit der einzelnen Segmente je nach angezeigtem Zeichen geben. Das finde ich unschön!. Die sieben Widerstände sind aber problemlos unterzubringen. Damit fliesst bei allen Anzeigen der gleiche Segmentstrom.
Von den SC3911 habe ich welche zum testen zu liegen.
Buebchen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
028
24.06.2013, 08:59 Uhr
holm

Avatar von holm

..ja, genau so hatte ich mir das etwa vorgestellt, Bübchen hat Recht mit dem Einzelwiderstand, das sieht beschissen aus.
Da Noch Ports frei sind, macht das Ding doch mit einer Lötbrücke konfigurierbar auf Drehgeber oder Einzeltasten für up/down oder aber auch gem. Anode/Kathode..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 24.06.2013 um 09:08 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
029
24.06.2013, 09:51 Uhr
gubby



Ihr Schlaumeier!!

Das mit dem Widerstand geht schon so in Ordnung. Die Segmente werden werden im Multiplex-Betrieb angesteuert, d.h. es leuchtet zu jedem Zeitpunkt maximal ein Segment - und alle werden gleich hell leuchten! VERTRAUT MIR!! Deswegen übrigens auch der relativ geringe Widerstandswert.
Falls dir das mit dem Multiplexen zu hektisch ist, kannst du natürlich auch eine statische Ansteuerung bekommen, dann kannst du die ganzen Widerstände verbauen

@buebchen
Ich habe die Schaltung übrigens noch etwas modifiziert:

So ähnlich wie Holm schon angeregt hat: Zwei Jumper, einer für die Auswahl des Impuls-Rastungs-Verhältnis des Drehencoders, der andere zur Auswahl gemeinsame Anode oder Kathode.
Die Taster werden ebenfalls realisiert und können gleichzeitig zu einem Drehgeber angeschlossen werden - und natürlich auch gleichzeitig benutzt werden. Da kannst du nach Herzenslust erstmal pobieren und testen. Auf meinen Steckbrett funtioniert das schon, ich hoffe ich werde im Laufe des späten Abends das Programm bereitstellen können.
Diese ganze Schaltung solltest du bequem auf eine einlagige Platine bekommen. Die Anschlüsse der Siebensegmentanzeige können untereinander beliebig getauscht werden, ich würde dann einfach die Tabelle im Programm anpassen. Übrigens könnte man auch die anderen Schalter und Jumper ohne großen Aufwand untereinander tauschen, nur die BCD-Ausgänge sollten da bleiben wo sie sind.
Die ATtinys sind für meine Begriffe geniale Chips und extrem flexibel.

Gruß
Uwe

Dieser Beitrag wurde am 24.06.2013 um 09:57 Uhr von gubby editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
030
24.06.2013, 10:01 Uhr
Buebchen



@gubby
Hallo!
Wenn das Multipexen mit ausreichender Frequenz erfolgt kann ich mir vorstellen das es so wie Du das vorgeschlagen hast funktioniert.
Das Layout habe ich im Prinzip auch fertig. Ich mache es jetzt bloss noch schick!
Steht Deine Mailadresse im Forum? Meine findest Du!
Dann schicke ich Dir das Layout im laufe des Tages zum anpassen der Ausgänge an den Chip wie Du es vorgeschlagen hast.
Buebchen

Dieser Beitrag wurde am 24.06.2013 um 10:02 Uhr von Buebchen editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
031
24.06.2013, 10:19 Uhr
gubby



@buebchen

das Multiplexen erfolgt mit 1Khz, bei 120 Ohm kommt man auf einen Strom von ca. 22 mA (rote Anzeige, angenehme Helligkeit). Wenn du es heller haben möchtest kannst du locker noch etwas mit dem Widerstandwert heruntergehen.
Das Programm ist weitestgehend fertig, nur noch etwas entschlacken und kommentieren - also etwas Feintuning. Ich komme aber erst heute Abend dazu.
Meine Mailadresse steht im Profil.

Gruß
Uwe

Dieser Beitrag wurde am 24.06.2013 um 10:19 Uhr von gubby editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
032
24.06.2013, 12:57 Uhr
holm

Avatar von holm

Ist ja schräg die Segmente zu muxen, aber freilich geht das ...

>Die ATtinys sind für meine Begriffe geniale Chips und extrem flexibel.

...auch andere Mütter haben schöne Töchter, z.B. MSP430 in extremer Vielfalt auch R8/M16
sind nicht zu verachten.
Aber Vorsicht, Chinesinnen haben die M*se quer ..

*grin*


Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
033
24.06.2013, 16:09 Uhr
Germaniumröhre



Hallo,

sehr schön.
Aber seht bitte wegen der Muxerei noch einen Tantalelko zur Abblockung der Betriebsspannung vor - nicht daß es Probleme mit dem zu progammierenden EPROM kommt.
Auch eine softwaremäßige Tastenentprellung ist mehr als wünschenswert.

Viele Grüße
Bernd
--
Kombjuder sorgen für Arbeit, die man ohne Diesem sicherlich nicht hätte.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
034
24.06.2013, 17:03 Uhr
Buebchen



Hallo Bernd!
Auf der kleinen Platine habe ich eine Tantalperle und einen 100nF Mehrschichtkondensator vorgesehen. Es ist allerdings erst ein Entwurf da ich die Grössen einiger Bauelemente nicht hier in Greifswald habe.
Die Platine ist wegen der 40 Poligen Programierfassung 80x23 mm gross und wird in die Programierfassung des Brenners platziert.
buebchen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
035
24.06.2013, 19:00 Uhr
Germaniumröhre



Hallo Bübchen,

wäre es, wegen der mechanischen Stabilität, nicht besser als zweite Programmierfassungseinheit mit Pfostenfeldbuchsen zum direkten Aufstecken auf dem Brenner auszulegen ?

Viele Grüße
Bernd
--
Kombjuder sorgen für Arbeit, die man ohne Diesem sicherlich nicht hätte.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
036
24.06.2013, 20:57 Uhr
gubby



Hier nun wie versprochen die Files passend zum Schaltplan in 029
http://www.loaditup.de/files/776093_5sgh2c5xsd.zip
Erstellt mit AVR-Studio 4.19, ein fertiges hex-File zum Brennen findet sich auch im Archiv.
Hier noch die Fuses für den ATtiny:
Extended: 0xFF
High: 0xD9
Low: 0xE2

Nicht wundern - die Formatierung der asm-Files sieht im normalen Editor total verwürgt aus...
Ist die Version zum Testen, z.B. auf dem Steckbrett.
Wenn Buebchen noch mit einer geänderten Belegung der Anschlüsse für die Siebensegmentanzeige auf seiner Leiterplatte rausrückt, werde ich die Tabelle im Quellcode noch entsprechend anpassen.

Bei mir funktioniert die ganze Sache bis jetzt einwandfrei, falls jemand doch noch Fehler findet bitte melden.
Getestet mit ALPS-Drehencodern - bitte nicht die scheusslichen Panasonic-Encoder von Pollin benutzen!

Gruß
Uwe

@Germaniumröhre
Ja, die Taster sind entprellt!

@alle
Ja, es ist nur der eine Widerstand notwendig!

Dieser Beitrag wurde am 24.06.2013 um 21:03 Uhr von gubby editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
037
25.06.2013, 07:08 Uhr
Buebchen



@gubby
Hallo!
Ich habe an Deine im Forum hinterlegte Mailadresse das Layout geschickt.
Dort kannst Du die Belegung des Atiny sehen.
@Germaniumröhre
Die Leiterplatte ist stabil genug! Dein Vorschlag würde den Einsatz begrenzen. Aber Du machst ja Deine Leiterplatten sowieso gerne selber. Mit den Pfostenfeldbuchsen ist ja auch Platz für ein eigenes Layout.
Wenn ich mein Layout mit den verwendeten Bauteilen abgeglichen habe stelle ich es auf meine Homepage.
Buebchen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
038
25.06.2013, 07:47 Uhr
gubby



@buebchen
Ich habe Deine Mail bekommen und beantwortet, ist vielleicht ganz gut das Dich die Antwort anscheinend nicht erreicht hat.
Hier nochmal etwas weniger emotional: Ich habe mir den Viewer heruntergeladen und dein Layout angezeigt. Ich sehe nur die reinen Leiterzüge und keinerlei Bauteil- bzw. Anschlussbezeichnungen. Es wäre extrem fehlerträchtig und würde für mich einen riesigen Aufwand bedeuten wenn ich das Layout sozusagen "reverse engineeren" müsste. Ich bin mir keiner Schuld bewusst, dass ich eine derartige Strafarbeit ableisten sollte.
Ich bin jederzeit bereit die Tabelle im Programm anzupassen wenn ich von Dir die Daten in dieser Form bekomme:

Pin12 Segment a
Pin13 Segment b
Pin14 Segment c
Pin14 Segment d
Pin16 Segment e
Pin17 Segment f
Pin18 Segment g

Gruß
Uwe

Dieser Beitrag wurde am 25.06.2013 um 08:08 Uhr von gubby editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
039
25.06.2013, 08:10 Uhr
Buebchen



@gubby!
Hallo!
Hier die Zuordnung:
Segment a= Pin 16
Segment b= Pin 17
Segment c= Pin 18
Segment d= Pin 12
Segment e= Pin 13
Segment f= Pin 14
Segment g= Pin 15
Damit ergibt sich die einfachste Leiterführung und der geringste Platzbedarf.
Alles andere wie in Deiner Schaltung!
Buebchen

Dieser Beitrag wurde am 25.06.2013 um 08:12 Uhr von Buebchen editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
040
25.06.2013, 08:29 Uhr
gubby



@buebchen
Anpassung kommt heute Abend, ich will erst testen bevor ich Software herausgebe.

Gruß
Uwe
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
041
25.06.2013, 09:05 Uhr
Buebchen



Hallo!
Wen es interessiert der kann den noch nicht in allem fertigen Layoutentwurf auf meiner Homepage unter 8-Bit-Selbstbau - Buebchenbrenner ansehen.
<http://buebchen.jimdo.com>
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
042
25.06.2013, 13:06 Uhr
Buebchen



Hallo!
Ich habe die aktuelle Schaltung nach dem Vorschlag von Uwe auf meine Homepage gestellt.
Buebchen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
043
25.06.2013, 21:24 Uhr
gubby



So da werde ich mal liefern, hier die an Buebchens Layout angepasste Programmvariante:
http://www.loaditup.de/files/776197_6mkdp8vdea.zip
Die Fuses für den ATtiny2313:
Extended: 0xFF
High: 0xD9
Low: 0xE2

Ich habe heute nochmal ausgiebig getestet und natürlich noch eine kleine Änderung zu der gestrigen Variante gemacht, betrifft die Funtion von JP1.
Es gibt keine ALPS Encoder mit 2:1 Impuls/Rastung Verhältnis - mein Fehler!
Deswegen jetzt:
JP2: offen 1:1 Impuls/Rastungen Verhältnis z.B: STEC12E07 (24/24)
JP2: geschlossen 1:2 Impuls/Rastungen Verhältnis z.B: STEC11B04 (15/30)

Ich habe es mit beiden o.g. Drehimpulsgebern getestet.

@buebchen
wärst Du bitte so nett Deine Grafik auf deiner Homepage nochmal bezüglich JP2 zu ändern und bitte ergänze bei der Gelegenheit noch der Vollständigkeit halber ein A an Pin 2 und ein B an Pin 3 (wegen der Drehrichtung).

Gruß
Uwe

Dieser Beitrag wurde am 26.06.2013 um 05:32 Uhr von gubby editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
044
26.06.2013, 11:30 Uhr
Buebchen



Hallo!
Dank gubby konnte ich die Leiterplatte für die Programierfassungsplatine des Buebchenbrenners mit dem Eprommererweiterungsmodul zum brennen des 27C040
kombinieren.
Es besteht zwar noch die Moglichkeit beim brennen des 27512 einen Jumper von Low nach High umzustecken, um die unteren oder oberen 32 KB des mit Adresse 15 ausgewählten Bereichs zu selektieren. Er kann aber auch in der Stellung M wie Megarom stecken und dann über Drehencoder und Tasten zwischen Block 0 und 1 gewählt werden.
In dieser Stellung ist es auch möglich den 27C040 in Blöcken zu 32 KB zu brennen.
Buebchen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek