Seite 1 von 2

Berechnete Zahlen und deren Anzeige ausserhalb vom PC

Verfasst: 09.02.2008 23:38
von HemSA
Hallole Ihr!
Ich habe eine Frage bezüglich der Zahlendarstellung von berechneten Werten.

Zum Beispiel habe ich berechnete Zahlenwerte ( - 50 .... + 50 ) und möchte diese ausserhalb vom PC auf "Zahlentafeln" oder so etwas - können auch nur Ansteuerungen vom Lampen sein, die dann eben hinter den Zahlen aufleuchten sein.

Hat da jemand eine Idee wie man das ansteuern kann?

Verfasst: 10.02.2008 00:29
von Laurin
Entweder du bastelst dir nen LED-Display mit einem Microcontroller zusammen oder du kaufst dir ein Display (30+ €). Die kann man dann üblicherweise am Serial-, Paralell- oder USB-Port anschließen.

Verfasst: 10.02.2008 19:32
von Thomas
oder noch ne Variante:

da du am COM-Port ja nur 3 ansteuerbare Ausgänge hast, nimmst du einen oder mehrere Expander, die du einfach seriell ansteuerst.
Dann kannst du schon mal ein LCD oder sowas ansteuern (weil die, die schon auf serielle Ansteuerung vorbereitet sind, sind Schweineteuer!!!)

Zum Proggen nimmst du dann z.B. die MVCOM-Lib, ...

Verfasst: 10.02.2008 21:07
von HemSA
Danke schon mal - gibt es diesbezüglich auch eine Internetadresse wo man sich die Sachen anschauen kann? Das Ansteuern wird dann wohl einfach sein denke ich mal - habe noch nie so etwas gemacht - wenn ich dann noch Fragen habe melde ich mich einfach nochmal - oder gibt es einen Beispielkode hier?

Tschüssle

Verfasst: 10.02.2008 21:21
von Thomas
Wenn du noch allgemein nicht viel Ahnung auf dem Gebiet der Elektronik hast, ist das immer schlecht ...

Das Wichtigste ist halt, dass du die Ausgangssignale auf den TTL-Pegel bringst. Dann kannst du einfach mit nem Expander arbeiten ... das ist nicht schweer.

Verfasst: 10.02.2008 21:44
von Falko
Ein günstiges 8-Bit-Schieberegister (4094) von Reichelt.de tuts auch.
Einige Beispiele sowie Sources sind auf meiner HP vorhanden.

Gruß Falko

Verfasst: 11.02.2008 23:49
von HemSA
Hallole und Danke erst mal für die Beiträge.

Aber mit dem Bild vom Schieberegister bin ich nicht schlau geworden. Die Werte können ja eine Reihenfolge von z.B. 3-4-5-4-3-4-5-6-7-8-9-10 ( je nach berechnetem Wert ) haben.

Was den Expanter angeht habe ich auch nicht verstanden. Habe früher mal selbst Radios gebastelt - aber das waren wohl noch andere Zeiten.

In Qbasic gab es ja mal den Befehl OUT - das gibt es wohl bei PureBasic nicht mehr?!

Ich dachte eben an so etwas:

Ich steuere den COM oder Paralellausgang ( oder noch besser USB Ausgang ) über PureBasic an, und die berechnete Zahl wird im 3 ( wegen der Minusanzeige ) stelligem 7 Segment-Display angezeigt. Klang so einfach wie es Laurin geschrieben hat. Da es ja bei 2 stelligen Anzeigen nur Werte von - 99 bis 99 gibt hätte ich das "Bitmuster" für jede mögliche Zahl mit Kopieren und Einfügen gemacht. Ohne dazwischen mit Mikroprozessoren noch programmieren zu müssen.

Aber so etwas gibt es wohl nicht.

Verfasst: 12.02.2008 03:21
von Falko
Naja, so kompliziert braucht man nun nicht denken. Wenn man z.B.
USB nutzen will gibt es schöne USB2Seriell-Adapter, welche prima
für die serielle Ansteuerung in PB genutzt werden können.

Wegen LPT ist die Inpout32.DLL sehr praktisch, was dein Out oder Inp unter
PB wiederbelebt :lol:

Das mit den Schieberegistern ist einfach und günstig. Du hast acht Bits, die du
je nach Zahl, die gewünscht wird, setzen kannst. Mittels BCD-Treiber-ICS
werden nur über vier Bits eine Siebensegmentanzeige angesteuert. Über die
anderen vier Bits die Zweite. Ich habe mit meinem Simulator mal ein
Beispiel gemacht, wo man sehr schön sehen kann, wie diese
BCD-Codierung arbeitet.
Anstelle der zwei HEXeingabeelemente benutzt du dann über deinen Rechner
dann eben dieses Schieberegister. Programmieren musst du aber selbst in PB.

Die Schaltung sieht für das folgende Testprogramm so aus:
Bild

Hier die lauffähige Schalttafel. Leider kann ich die Schaltung dabei nicht
sichtbar machen. Aber im I-Net gibt es genug Beschreibungen über die
BCD-Codierung der vier Bits wie hier:

http://de.wikipedia.org/wiki/BCD-Code


www.falko-pure.de/Tests/Digital/BCD_Steuerung.zip

Über Reichelt.de bekommst du diese Sachen sehr günstig und man braucht
dazu nicht viel. Den einen Schaltplan für das Schieberegisteric 4094
hast du ja schon auf meiner HP gesehen.
Ein Beispielprogramm ist auch unter Purebasicprogramme
vorhanden, wie man mit der Seriellen Schnittstelle in PB das nutzen kann.
Musst eben nur noch das BCD im Schieberegister über zweimal vier Bits
verwalten, was eigentlich auch nicht so schwer sein sollte.
Falko über Reichelt.de hat geschrieben:74HC4543 Sieben Segment/Dekoder/Treiber (4-Bit BCD-Code)

SA 56-11 GN Sieben Segment-Anzeige

MOS 4094 8-Bit Schieberegister

3 x Z-Diode ZD4,7 (4,7V) und 3 Schutzwiderstände min. 1KOhm um eine 5V-Spannung von Seriell an die IC-Logik zu nutzen.
Um an USB das ganze zu nutzen nimmt man einfach einen USB2Seriell-Adapter. Das ist alles.
[Edit] Das Verständnis für BCD-Zahlensysteme hier nochmal als PB-Source.
Damit kannst du dann für das Schieberegister die erforderlichen acht Bits
erzeugen, die dann im Dekoder die richtigen Werte übermitteln.

Code: Alles auswählen

;Das BCD-System in ein Byte für zwei Ziffern
;4Bit - Werte einzelner Ziffern
Debug %0000 ;0
Debug %0001 ;1
Debug %0010 ;2
Debug %0011 ;3
Debug %0100 ;4
Debug %0101 ;5
Debug %0110 ;6
Debug %0111 ;7
Debug %1000 ;8
Debug %1001 ;9

Ausgabe.l = 19 ; Deine Zahl gleich 19, die nun in einzelne Zahlen aufgesplittet wird

BinVar.l=Val(Left(Str(Ausgabe),1)) ;Erste Zahl für Zehner
BinVar1.l=Val(Right(Str(Ausgabe),1));Zweite Zahl für Einer

;Binvar << 4  ; Schiebt erste Zahl auf Zehnerposition
;BinVar | BinVar1 ; Schreibt zweite Zahl auf Einerposition

BinVar << 4 | BinVar1 ; Abgekürzt sieht das ganze dann so aus

Debug RSet(Bin(Binvar),8,"0") ; hier wird nur die 0 auch auf dem 8. Bit angezeigt

;Fertig ist der Wert fürs Schieberegister in Verbindung mit dem 7SegDecoder :)

Gruß Falko

Verfasst: 13.02.2008 20:34
von HemSA
Vielen Dank mal an alle für eure Mühe und Zeit die ihr aufgewendet habt.

Verfasst: 20.02.2008 00:19
von Falko
Ich weiß nun nicht, ob du noch Interesse hast. Aus Spass habe ich
mir mal folgende Schaltungen aufgebaut um eine zweistellige
Zahl von 0-99 plus Minuszeichen anzuzeigen. Ein einfaches Testprogramm
für das Lesen und Schreiben von USB2RS232 bzw. nur RS232 hatte ich
schon programmiert. Wenn du nun lust hast kannst du es ja selbst
löten und testen. Die BCD-Codebeschreibung hatte ich ja schon gepostet.
Ich werde dann mal ein kleines Progrämmchen schreiben um die Zahlen
direkt darzustellen. Nun habe ich ja die passende Hardware dazu :wink:

Wichtig. Bei dieser Schaltung brauchst du eine 7-Segment-Anzeige mit
gemeinsamer Kathode. Ansonsten müsste Pin 6 mit 5V verbunden werden.

Hier einige Bilder von der erstellten Hardware als Lochmaster-Bild. Ich habe
erstmal die Bilder der Vorderseite mit Durchsicht dargestellt.

Die Schaltung zum Steuern
Bild

Die Schaltung für die Digitalanzeige (Um es genauer zeigen zu können,
habe ich die 2 vorderen 7-Seg_Anzeigen, sowie das IC 74HC4543 weg gelassen).

Bild

Und hier ein kleines Programm zum lesen und setzen der 8Bits der beiden
IC's

www.falko-pure.de/Programme/ReadWrite_USB_RS232.exe

Die Bauteile hierzu erhältst du z.B. günstig bei www.Reichelt.de

Grüße, Falko