Hallo Microcontrollergemeinde,
habe mich einem kleinen Projekt unseres Vereins übernommen.
Ich möchte eine 7-Segmente Anzeigentafel bauen die eine Ziffer zwischen
0-9999 anzeigt.
Die Daten kommen aus einer Datenbank und sollen über den USB-Port an
einen Microcontroller gesendet werden der die Umwandung auf die LEDs
dann vornehmen soll.
Gekauft habe ich mir bei MyAVR das Controller Board mySmartControl MK2
16K (ATmega168) und das myAVR 7-Segment-Anzeige Projekt für die Ausgabe.
Leider habe ich festgestellt dass meine C-Kenntnisse doch sehr
eingerostet sind und nicht ausreichen um den Controller zu
programmieren.
Gibt es hier jemand der für kleines Geld den Code schreiben würde? Ist
wie gesagt für einen kleinen Verein und damit auch irgendwie für einen
guten Zweck.
So sollte das Moped arbeiten: Ein Numerischer Wert wird per USB an den
Controller gesendet. Der Controller erzeugt die Ausgabe an den 7-Segment
Anzeigen die solange dort angezeigt wird bis ein neuer Wert vom USB-Port
übertragen wird und den Anzeigewert austauscht.
Mit USB wird das nen bissl kompliziert.
Ich würde nen USB-V24 wandler empfehlen, der am Rechner wie eine
Com-Schnittstelle angesprochen wird, und am avr mit nen Pegelwandler
direkt an den V24 Anschluss kommt.
MfG Turbotoni
@ der_Jan (Gast)
>So sollte das Moped arbeiten: Ein Numerischer Wert wird per USB an den>Controller gesendet. Der Controller erzeugt die Ausgabe an den 7-Segment>Anzeigen die solange dort angezeigt wird bis ein neuer Wert vom USB-Port>übertragen wird und den Anzeigewert austauscht.
Also was eher einfaches. Ein kleiner AVR ala ATmega8 und ein FT232 sind
deine Freunde.
MFG
Falk
der_Jan schrieb:> Die Daten kommen aus einer Datenbank und sollen über den USB-Port an> einen Microcontroller gesendet werden der die Umwandung auf die LEDs> dann vornehmen soll.
7-Segment macht Dir jeder Bastler.
Aber hast Du schonmal mit Datenbanken und USB programmiert?
Das ist kein Pappenstiel.
Da wirst Du wohl nen Profi brauchen und einige k€ hinblättern müssen.
Peter
Mensch seit Ihr schnell.
Danke euch beiden erstmal.
@ Mini Float: Das ist schon sehr gut. Allerdings ist dort nur die
Datenausgabe beschrieben.
@ Turbo Toni: Die Problematik mit der USB-Umwandlung habe ich im Vorfeld
auch gesehen. Der mySmartControl MK2 mach die USB Umwandung über den USB
2.0 zu seriell Konverter von SiLabs.
Wie gesagt, sprichst du leider mit einem Menschen, der sein Wissen
überschätzt hat. Kannst du mir weiter helfen?
myavr.de schrieb:
> mySmartControl MK2 16K> [...]> # anschlussfertiges USB-Modul, das sofort> mit dem PC kommunizieren kann> # stellt einen virtuellen COM-Port als> Gerät im PC/Notebook zur Verfügung
myavr.de schrieb:
> my7-Segment Add-On, Bausatz> [...]> Ansteuerung des my7-Segment Add-On erfolgt> über den BCD-to-7-Segment-Decoder und den Demultiplexer
Einfacher gehts echt nicht.
Das kann man sich aus Codeschnipseln usw, zusammendengeln.
mfg mf
Hallo Peter,
hab mich wohl falsch ausgedrückt. Die Werte kommen aus einer Datenbank.
Das ist schon umgesetzt. Als DB-Administrator bin ich darin etwas
geschickter im Bereich Datenbanken als im Bereicht Microcontroller. -)
Hallo Mini Float,
weil es so einfach aussah hab ich mir die Dinger gekauft.
Einfach ist es eben nur wenn man Ahnung hat was man tut (ja, ja wer
keine Ahnung hat soll die Finger davon lassen).
Aber genau aus diesem Grund habe ich mich an das Forum gewendet.
Wie gesagt muss es kein Schaden für die Person sein der mir helfen kann.
@ Jan Nie (der_jan)
>Wie gesagt muss es kein Schaden für die Person sein der mir helfen kann.
Du musst einfach deine Zahl als ASCII oder binär an einen virtuellen
COM-Port senden, die Gegenstelle mit dem Silabs oder FTDI IC macht
daraus eine RS232 Schnittstelle, welche sehr einfach im AVR empfangen
werden kann.
Mein Tipp, nimm ASCII, einfacher geht es nicht.
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART
MfG
Falk
Hallo Falk,
danke für deine Info.
Das versehen ich und kann das nachvollziehen.
Nun aber zu meine Kernproblem. Ich benötige einen Code der von der
ersten Zeile bis zur letzten Zeile den kompletten Ablauf enthält, weil
ich die einzelenen Codestücke nicht wirklich verstehe. Das ist mein
Problem.
Würde das jemand für mich machen?
@ Jan Nie (der_jan)
>ersten Zeile bis zur letzten Zeile den kompletten Ablauf enthält, weil>ich die einzelenen Codestücke nicht wirklich verstehe. Das ist mein>Problem.>Würde das jemand für mich machen?
Dazu braucht man zumindest einen Schaltplan. Wo gibt es den für deine
Hardware?
Der Rest ist trivial, für jemanden der sich auskennt.
MfG
Falk
Ich bekomme dein
1. Controller Board mySmartControl MK2, 16K (ATmega168) und die myAVR
7-Segment-Anzeige.
2. Ein Taschengeld damit ich weiteres Hühnefutter für meine Projekte
Kaufen kann.
3. Du bekommst ein Programm in ASM und ein Schaltplan.
Ist das ein Deal?
@ Mini Float (minifloat)
>Hier mal Schaltpläne zu dem Kram. Gabs auf der myavr Seite. Deren>Projekte-Verzeichnis ist m.E. etwas dürftig. mf
Und im Schaltplan für den AVR ist ein Fehler drin, der berühmte AREF
Fehler. Ist für dein Projekt aber egal.
Und wirklich schön sind die Schaltpläne auch nicht.
OK, dann musst du nur noch sagen, wie du die ICs auf dem Anzeigeboard
mit den Drahtbrücken anschließen willst und los gehts.
Den Rest kann man so programmieren. Die Hardware musst du nicht
verschicken, auch wenn das für das Debugging besser wäre.
MFG
Falk
DeMultiplexer-Funktion ASCII -> BCD:
String number_buffer Zeichenweise von hinten nach vorn abklappern und
auf Siebensegment-Anzeige darstellen.
Dazu wurde schon mit strlen() die Länge festgestellt.
Was die Funktion tut:
# Die Globale Variable number_buffer_count enthält die Position der
Dezimal-Stelle. Das gibt man auf den Multiplexereingang.
# number_buffer[number_buffer_count] enthält den Stellenwert. Dieser
wird um das Zeichen '0' verkleinert, mit 0x0F ver-&-et und auf den
BCD-Dekoder Eingang gegeben.
# number_buffer_count wird dekrementiert. Wenn number_buffer_count =
255(Überlauf) muss man sie wieder auf den Anfangswert setzen:
number_buffer_count = number_buffer_length;
Ergänzung:
Die Port-Inits. Das findest du im AVR-GCC-Tutorial.
mfg mf
Erstmal vielen Dank an alle die sich mein Problem angehört haben und
wirklich konstruktiv informiert haben. Das habe ich in noch keinem
anderen Forum erlebt. Das ist echt super.
Gerne würde ich die Hilfe von Falk beanspruchen.
Hier die Beschreibung der Brücken der my7-Segment Anzeige:
AVR-Pin PIN(74138) / Stellenauswahl
PD4 1 A 0
PD5 2 B 1
PD6 3 C 2
AVR-Pin Pin(74HC4511) Zahlenwert
PB0 7 A0
PB1 1 A1
PB2 2 A2
PB3 6 A3
Ich habe den Testcode von der AVR Seite DL226: Testprogramm für das
my7-Segment Add-On
(http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=testprogramm)
mit dieser Brückeneinstellung laufen lassen. Hier werden die einzelnen
Segmente durchgezählt.
Kann man damit etwas anfangen?
Jan Nie schrieb:> Kann man damit etwas anfangen?
Nicht wirklich.
Das ist einfach nur ein reiner Test. Aber so wie dort im Testprogramm
gezeigt, würde man das in der Realität nicht machen. Ausserdem ist das
in Assembler, was für dich als Einsteiger schon mal eine größere Hürde
darstellt als ein C-Code.
Eine gemultiplexte 7-Segment Anzeige ist nun wirklich keine große
Hexerei. Da du den PC-Teil schon erledigt hast, gehe ich davon aus, dass
du zumindest irgendeine höhere Programmiersprache beherrscht.
OK, wir wollen mal nicht so sein. Im Anhang der Code in BASCOM + Hexfile
zum direkten Programmieren. Probier mal. Läuft mit 1200 Baud am
COM-Port.
MfG
Falk
Hallo Jasmin,
das ist ein tolles Angebot. Vielen Dank.
So etwas ähnliches möchte ich auch entwickeln.
Nehme dein Angebot gerne an.
Bin mir aber nicht sicher ob die Anzeigengröße und Helligkeit ausreicht.
Das was ich entwickeln möchte ist eine Anzeigentafel für ein Reitturnier
eines kleinen ländlichen Reitvereins.
Diese Anzeigentafel zeigt die Pferdenummer an, die als nächstes in den
Parcour einreiten soll. Bisher wird das freiwillige Helfer gemacht, die
an einer Tafel stehen auf der die Pferdenummer in der Reihenfolge wie
sie im Parcour erscheinen zu haben. Der Helfer streicht dann die
Pferdenummer durch die eingeritten ist. Das ist ein etwas langweiliger
Job für die Person an der Startertafel. Besonders weil die doofe Tafel
an drei Tage (Freitag - Sonntag, morgens bis abends) mit freiwillige
Helfer besetzt werden muss.
Zurück zum Thema:
Die gewünschte Größe der Ziffern für die Anzeige habe ich mir bei den
Ziffern der Hindernisse im Parcour abgeschaut.
Diese haben ungefähr die Größe eines DIN A Blattes.
Der Reiter muss problemlos die angezeigte Nummern bis zu 60 Metern
erkennen können. Erschwert kommt dazu, dass wir in der Vergangenheit
glücklicherweise gutes Wetter hatten. D.H. Es gibt viel Umgebungslicht
und die Anzeige muss sehr hell sein. Pro Ziffer habe ich 160 weiße 5mm
Standard LEDs geplant die auf einen schwarzen matten Hintergrund
leuchten.
Den Text hab ich geschrieben, damit die Menschen die hier helfen wollen
wissen wofür das überhaupt ist.
@ Jan Nie (der_jan)
>Diese haben ungefähr die Größe eines DIN A Blattes.>Der Reiter muss problemlos die angezeigte Nummern bis zu 60 Metern>erkennen können. Erschwert kommt dazu, dass wir in der Vergangenheit>glücklicherweise gutes Wetter hatten. D.H. Es gibt viel Umgebungslicht>und die Anzeige muss sehr hell sein.
Das schreit nach elektromechanischen Klappanzeigen, die haben auch kein
Problem mit viel Sonne. Such mal im Forum, da gibt es ein paar Links.
> Pro Ziffer habe ich 160 weiße 5mm>Standard LEDs geplant die auf einen schwarzen matten Hintergrund>leuchten.
Nicht sinnvoll.
MFG
Falk
Danke für die Hinweise. Ich denke aber das es eine elektronische Anzeige
sein muss.
Es dürfen keine unbekannten Geräusche auftreten und auch keine
beweglichen Teile haben, denn Pferde sind Fluchttier.
Wenn 400-500Kg (ein Pferd auf dem du sitzt) der Meinung sind dass sie da
nicht lang wollen weil dort etwas gefährliches gibt weil es unbekannt
ist, sich bewegt oder sogar noch Geräusche macht, dann gibt es wirklich
wenig Gegenargumente.
Noch viel schlimmer ist es in den kleinen Prüfungen, wenn die Mutter der
talentfreien, nennen wir sie mal Chantale(Name frei erfunden) einen
Diskussionsgrund erkennt da das Geräusch der Anzeigentafel das Pferd und
die Reiterin doch so sehr gestört haben und ihr Kind jetzt im
Wassergraben liegt. Du wirst mir sicherlich zustimmen, dass es dann mein
Verschulden ist und nicht an dem Unvermögen der Reiterin liegt. -)
@ Jan Nie (der_jan)
>Danke für die Hinweise. Ich denke aber das es eine elektronische Anzeige>sein muss.>Es dürfen keine unbekannten Geräusche auftreten und auch keine>beweglichen Teile haben, denn Pferde sind Fluchttier.
Deutschland und seine Luxusprobleme. Die Geräusche der Klappanzeigen
sind minimal, wenn die das Pferd nicht aushält darfst du auch nicht
husten.
Und ein riesiger LED-Scheinwerfer irritiert nicht weniger.
Eieieiei
>Der Reiter muss problemlos die angezeigte Nummern> bis zu 60 Metern erkennen können.> Es gibt viel Umgebungslicht und die Anzeige muss sehr hell sein.>Ziffern haben ungefähr die Größe eines DIN A Blattes.>Ich denke aber das es eine elektronische Anzeige sein muss.
Nach Brösel würde Meister Röhrich jetzt sagen: "Das kost teuer Geld!"
Hallo Falk,
ich bin dir noch eine Antwort schuldig.
Dein Code funktioniert einwandfrei. Vielen Dank. Du hast mir wirklich
sehr geholfen.
Kann ich mich bei dir in irgend einer Weise erkenntlich zeigen?
Herzliche Grüße
Jan
@Jan (Gast)
>Dein Code funktioniert einwandfrei.
Schön zu hören, und immer etwas überraschend, dass sowas blind
programmiertes auf Anhieb klappt ;-)
>Kann ich mich bei dir in irgend einer Weise erkenntlich zeigen?
Naja, es gibt ja neben Freeware und Shareware auch Beerware ;-)
Ne, lass mal. Spende bei der nächsten Gelegenheit 5 Euro für einen guten
Zweck.
MfG
Falk
Hallo Jan,
ich hätte da was für Dich:
http://www.alpha-american.com/p-alpha-4160r.html
das 4160R könnte ich Dir für 250€ + Versand verkaufen
es ist gebraucht, aber voll funktionfsfähig
es besitzt eine RS232 und eine RS458 Schnittstelle (für 2draht)
ein passendes Modem schicke ich mit.
Du brauchst dann nicht mehr zu basteln, gell?
was meinste?
Gruß
Habe ich alles schon fertig mit allem pipapo inclusive WLAN ansteuerung
fertig gebaut.
Für Sporttuniere.....
Kosten minimal, für die Anzeige mit superhellen LED ca 40-50€ mit
kompletter Leistungs Ansteuerung .
Im Sonnenlicht locker 50 Meter.
Komplette fertige Platinen noch vorhanden....
WLAN nchmal ca.40€ dazu. Rs 422/485 auch leicht möglich...
Pc gesteuert mit Visual Basic , Code ist sehr einfach..
Atmega 8 mit Bascom programmiert, trivial.
Steiner Ätt key Bindestrich it Punkt de.
Hallo zusammen,
ich bin überwätigt von euren guten Vorschlägen.
Vielen Dank.
Ich Freds tollen Code für den vorhandenen Microcontroller nutzen und die
Anzeige selber entwickeln.
Man sein das es professionelle Lösungen gibt, aber möchte gerne die
Anzeige nach meinen Vorstellungen umsetzen.
@Jasmin: Gibt es ein Fotos von eurer Anzeige? Bist du unter der E-Mail
Adresse zu erreichen?