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?
Hier mal Schaltpläne zu dem Kram. Gabs auf der myavr Seite. Deren Projekte-Verzeichnis ist m.E. etwas dürftig. mf
Jan Nie schrieb: > 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. Dann bleibt wahrscheinlich nur auf was fertiges zurückzugreifen: - http://www.watterott.com/de/7-Segment-LED-Anzeige-blau-seriell - http://www.obdev.at/products/vusb/prjdetail.php?pid=46
@ 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
UART-Empfang: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART#Empfangen_.28RX.29 Baudrateneinstellung muss natürlich auf deine Vorlieben geändert werden, ansonsten kann das direkt übernommen werden. uart_string_complete kann im Mainloop ausgewertet werden:
1 | if(uart_string_complete) |
2 | {
|
3 | strcpy(number_buffer, uart_string); |
4 | number_buffer_length = strlen(number_buffer); |
5 | number_buffer_count = number_buffer_length; |
6 | uart_string_complete = 0; |
7 | }
|
8 | else
|
9 | {
|
10 | //DeMultiplexer-Funktion
|
11 | }
|
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 Falk, tausend Dank für deine Mühe. Werde das direkt heute abend ausprobieren und dir eine Rückmeldung geben.
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
> Das schreit nach elektromechanischen Klappanzeigen,
Bezugsquellen: unter anderem Schrottplatz (aus alten Bussen)
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!"
http://dse-faq.elektronik-kompendium.de/mawin.htm#110 http://www.dillitzer-gmbh.de/cms/website.php?id=/de/sportanzeigen.htm http://www.pwm.com/?id=1 http://www.scoretronics.com/ Alles aus dem Thread Beitrag "7-Segment Klappanzeige Spielstandanzeige"
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
Kukstu (USB + 7Segment/LCD): http://www.obdev.at/products/vusb/prjdisplay.html Extra für dich hab ich dir auch gleich was passendes aus der Liste gesucht: http://spiffie.org/kits/usb7 (is auch als Bausatz erhältlich)
@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ß
Nachtrag: mein 4160R hat nur rote LEDs ist also KEIN Tricolor so wie in dem Link und ist etwas 10 Jahre alt der Rest sollte aber stimmen
"The Alpha 4160R LED Electronic Sign is a state-of-the-art indoor , full matrix, tricolor LED display."
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?
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.