PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kein Roboter, nur Unsinn: Scrolltext auf 7-Segmentanzeige



Goblin
01.03.2006, 15:37
Mini-Projekt zum Zeitvertreib:

Da ich gerade mal für keine Prüfung lernen muss, plagt mich die Langeweile. Ich hatte noch zwei 3-fach-7-Segmentanzeigen aus 2 Satellitenreceivern rumliegen. Erst war der Plan, ein kleines Modul zu machen, dem ich Zahlen schicken kann und das die dann anzeigt. Nur um I²C mal auszuprobieren. Aber wo ich so am Programmieren war hab ich noch ein paar Buchstaben gemacht und eben bin ich beim Scolltext angekommen. Man kann fast alle Buchstaben anzeigen. Teilweise sogar Groß-und Kleinschreibung. Ich hab jetzt vor, die anzuzeigenden Strings über RS232 zu übertragen.
Das Ganze hab ich (recht ineffizient und dreckig) in Bascom geschrieben. Momentan funktionieren nur 5 Segmente, weil mir ein Transistor fehlt. Elektronisch siehts so aus dass ich als Controller nen Atmega8 nehme, an PortC (6 bit) die gemeinsamen Anoden der Segmentanzeigen über Transistoren steuere und über PortD die Binärkombination für die Zahl + Punkt anlege. Ganz einfach also.

Hier noch Bilder und ein Video. Das Video ist mit nem Nokiahandy gemacht, um es abzuspielen braucht man den Nokia Multimedia-Player (http://www.miworld.com.sg/mplayer/index.jsp) oder den VLC (Video-Lan-Client).

http://img211.imageshack.us/img211/4599/scroller15pz.jpg

http://img394.imageshack.us/img394/7673/scroller27kj.jpg

Video (http://wwwhomes.uni-bielefeld.de/jhartmann2/avr-testplatine/scroller.3gp)

PicNick
01.03.2006, 15:55
Ist lustig. Bevor auf jedem Kugelschreiber ein graphisches dotmatrix -display war, haben wir das auch probiert. Es sind halt ein paar Zeichen, die schwierig sind. Aber im Kontext, wo man eh' weiß, ob es ein "S" oder eine "5" sein soll, kann man sich schon damit helfen.

Goblin
02.03.2006, 12:23
ja nur k, m, w, x sind halt ned machbar.

HannoHupmann
02.03.2006, 12:45
Trozdem lustig, muss man halt andere Wörter verwenden.

PicNick
02.03.2006, 13:07
Haben wir so gemacht:

K
|_
|

M immer gross
__
| |
| |

N dagegen klein

__
| |

X
__|
|

Wie gesagt, in einem Wort (im Kontext) geht das halbwegs, naja.

Baumschubser
02.03.2006, 16:45
Moin Moin,

kannst du vielleicht deinen Quellcode zeigen?

Goblin
02.03.2006, 22:42
ist aber nicht sooo schön:



$regfile = "m8def.dat"
$crystal = 1000000
Config Portd = Output
Config Portc = Output
Dim Zahl As String * 1
Dim Eingabe As String * 255
Dim Ausgabe As String * 6
Dim X As Byte
Dim Waittime As Byte
Dim Scroller As Byte
Dim Timervar As Word
Dim Len6 As Byte


Eingabe = " dies ist ein eingabestring "
Len6 = Len(eingabe) - 6
Scroller = 1
Ausgabe = Mid(eingabe , Scroller , 5)
Timervar = 0
Waittime = 2

Cycle:


Incr Timervar
If Timervar > 6 Then Gosub Timeroverflow

Let X = 5 'Len(eingabe)
Portc = &B11111110 'Stelle 1
Gosub Zahlenauswahl
Waitms Waittime
Gosub Clear
Decr X
Portc = &B11111101 'Stelle 2
Gosub Zahlenauswahl
Waitms Waittime
Gosub Clear
Decr X
Portc = &B11111011 'Stelle 3
Gosub Zahlenauswahl
Waitms Waittime
Gosub Clear
Decr X
Portc = &B11110111 'Stelle 4
Gosub Zahlenauswahl
Waitms Waittime
Gosub Clear
Decr X
Portc = &B11101111 'Stelle 5
Gosub Zahlenauswahl
Waitms Waittime
Gosub Clear
Decr X
Portc = &B11011111 'Stelle 6
Gosub Zahlenauswahl
Waitms Waittime
Gosub Clear
Goto Cycle

Clear:
Portd = 255
Waitms 1
Return

Timeroverflow:
Timervar = 0
Incr Scroller
Ausgabe = Mid(eingabe , Scroller , 5)
If Scroller > Len6 Then Scroller = 1
Return

Zahlenauswahl:
Zahl = Mid(ausgabe , X , 1)
Select Case Zahl
Case " " : Portd = &B11111111
Case "0" : Portd = &B00101000
Case "1" : Portd = &B11101110
Case "2" : Portd = &B00110010
Case "3" : Portd = &B10100010
Case "4" : Portd = &B11100100
Case "5" : Portd = &B10100001
Case "6" : Portd = &B00100001
Case "7" : Portd = &B11101010
Case "8" : Portd = &B00100000
Case "9" : Portd = &B10100000
Case "A" : Portd = &B01100000
Case "a" : Portd = &B01100000
Case "B" : Portd = &B00100101
Case "b" : Portd = &B00100101
Case "C" : Portd = &B00111001
Case "c" : Portd = &B00110111
Case "D" : Portd = &B00100110
Case "d" : Portd = &B00100110
Case "E" : Portd = &B00110001
Case "e" : Portd = &B00110000
Case "F" : Portd = &B01110001
Case "f" : Portd = &B01110001
Case "G" : Portd = &B10100000
Case "g" : Portd = &B10100000
Case "H" : Portd = &B01100100
Case "h" : Portd = &B01100101
Case "I" : Portd = &B11101110
Case "i" : Portd = &B11101110
Case "J" : Portd = &B00101010
Case "j" : Portd = &B00101110
Case "L" : Portd = &B00111101
Case "l" : Portd = &B00111101
Case "N" : Portd = &B01100111
Case "n" : Portd = &B01100111
Case "O" : Portd = &B00100111
Case "o" : Portd = &B00100111
Case "P" : Portd = &B01110000
Case "p" : Portd = &B01110000
Case "Q" : Portd = &B11100000
Case "q" : Portd = &B11100000
Case "R" : Portd = &B01110111
Case "r" : Portd = &B01110111
Case "S" : Portd = &B10100001
Case "s" : Portd = &B10100001
Case "T" : Portd = &B00110101
Case "t" : Portd = &B00110101
Case "U" : Portd = &B00101100
Case "u" : Portd = &B00101111
Case "Y" : Portd = &B10100100
Case "y" : Portd = &B10100100
Case "Z" : Portd = &B00110010
Case "z" : Portd = &B00110010
Case Else : Portd = &B11011111
End Select

Return

NumberFive
03.03.2006, 06:34
Nur zu deine Info der Quicktime player kann das Video auch wieder geben.

Gruß

Goblin
03.03.2006, 08:03
oh, klasse. :) seit ich den vlc hab hab ich gar keinen qt-player mehr drauf.

SeveQ
09.03.2006, 07:28
Ist lustig. Bevor auf jedem Kugelschreiber ein graphisches dotmatrix -display war, haben wir das auch probiert. Es sind halt ein paar Zeichen, die schwierig sind. Aber im Kontext, wo man eh' weiß, ob es ein "S" oder eine "5" sein soll, kann man sich schon damit helfen.


Haha, da fällt mir das "alte" Telefon bei der Bundeswehr (für den Laden schon richtig modern) damals wieder ein. Das hatte auch ein 7Segment-Display als Status-Anzeige. Eine der ersten Fragen unseres Ausbilders war dann:

"Was bedeutet auf dem Telefondisplay die Fehlermeldung A-U-5?"

Eine Weile hat's gedauert, aber dann war das Gelächter groß. :)

Felixx87
09.03.2006, 10:33
ach der Realplyer schafft des mit nem update auch ;)

sieht net schlecht aus :)

Goblin
10.03.2006, 18:00
die sechste stelle ist jetzt auch in betrieb. ich überleg nen modul für die parallele schnittstelle zu machen, das sich mit den gängigen lcd-progs ansteuern lässt und das dann daten vom winamp oder so anzeigt. ist mal was anderes :)