Hallo,
ich befinde mich gerade in den Vorüberlegungen zu einem neuen Projekt.
Hierbei soll es zwei Anzeigen mit LED-Zahlen geben, welche eine zuvor
eingestellten Zeit runterzählen (z.B. 120 sec auf null).
Das ganz wird von einem Steuergeät aus gesteuert. Wobei dieses den
Startbefehl und die maximale Zeit vorgibt. Jede Anzeige und das
Steuergeät soll ein eigenen Mikrocontroller bekommen. Die Anzeigen und
das Steuergerät befinden sich ca. 60m - 100m voneinander entfernt.
Mein aktuelles Problem liegt darin, wie ich die Kommunikation zwischen
den einzelnen Einheiten hinbekommen soll.
Kann ich da die USART-Schnittselle verwenden? (ggf. mit Pegelwandler)
Wie kann ich die beiden Anzeigen dazu bringen, dass diese geleichzeitig
anfangen runterzuzählen? (maximale Differenz sollte unter 100 ms liegen)
Gibt es eine drahtlose Möglichkeit?
Jemand eine Idee?
@ Tobi (Gast)
>das Steuergerät befinden sich ca. 60m - 100m voneinander entfernt.
Nicht sooo weit.
>Kann ich da die USART-Schnittselle verwenden? (ggf. mit Pegelwandler)
Kann man.
>Wie kann ich die beiden Anzeigen dazu bringen, dass diese geleichzeitig
einfach gleichzeitig den befehl dazu senden.
>anfangen runterzuzählen? (maximale Differenz sollte unter 100 ms liegen)
Eine Ewigkeit für einen Mikrocontroller.
>Gibt es eine drahtlose Möglichkeit?
Sicher. Nimm eines der vielen Funkmodule ala Zigbee & Co.
Die kann man als drahtlosen UART betreiben.
Tobi schrieb:> Wie kann ich die beiden Anzeigen dazu bringen, dass diese geleichzeitig> anfangen runterzuzählen? (maximale Differenz sollte unter 100 ms liegen)> Gibt es eine drahtlose Möglichkeit?
Indem die Anzeigen ihrem Namen gerecht werden und genau (und
ausschliesslich) das tun was ihr Name aussagt: anzeigen.
runterzählen tut die Zentrale und die teilt den Anzeigen mit, was sie
anzuzeigen haben.
Es gibt nur einen Zeitzähler, daher kann auch nichts ausser Tritt
geraten.
Karl Heinz schrieb:> Indem die Anzeigen ihrem Namen gerecht werden und genau (und> ausschliesslich) das tun was ihr Name aussagt: anzeigen.> runterzählen tut die Zentrale und die teilt den Anzeigen mit, was sie> anzuzeigen haben.
Wie sollte ich dann die Anzeige genau gestallten?
Habe ich da nur meine LED's drin und die bekommen parallel die Daten zum
Anzeigen oder kann ich das auch serielle durch Bitschieben etc. lösen?
Kannst Du Dir z.B. bei DMX-512 abschauen. Da sind 100 Meter gar nichts
und die Datenkabel liegen oft direkt neben Lastkabeln zu gedimmten
Lampen mit etlichen 100kW Leistung. Wenn Du dann noch geschirmte Kabel
und eine Fehlererkennung verwendest, sollte das sehr zuverlässig werden.
Tobi schrieb:> Karl Heinz schrieb:>> Indem die Anzeigen ihrem Namen gerecht werden und genau (und>> ausschliesslich) das tun was ihr Name aussagt: anzeigen.>> runterzählen tut die Zentrale und die teilt den Anzeigen mit, was sie>> anzuzeigen haben.>> Wie sollte ich dann die Anzeige genau gestallten?
So wie du das jetzt auch vor hast.
Da werkelt ein µC drinnen.
Aber der macht von sich aus gar nichts mehr ausser ständig auf die
Zentrale zu hören, ob und was er anzuzeigen hat. Und genau das macht er
auch.
> Habe ich da nur meine LED's drin und die bekommen parallel die Daten zum> Anzeigen oder kann ich das auch serielle durch Bitschieben etc. lösen?
Wie hattest du es denn jetzt vor, das Innenleben zu gestalten?
Gewöhn dich an den Gedanken, einem µC auch scheinbar einfache und
triviale Aufgaben anzuvertrauen. Es ist einfach oftmals die simpelste
Lösung.
Tobi schrieb:> Wie sollte ich dann die Anzeige genau gestallten?>> Habe ich da nur meine LED's drin und die bekommen parallel die Daten zum> Anzeigen oder kann ich das auch serielle durch Bitschieben etc. lösen?
Sende einfach den anzuzeigenden String "120"
Die Anzeige muss den Rest machen:
- eine 7-Segmentanzeige zeigt für eine "2" ein paar Segmente an
- eine 5x8-Punktmatrix-Anzeige schaltet die betreffenen LEDs die eine
"2" bilden ein
Dann kannst Du auch später einen TFT-Monitor nachrüsten ...
Tobi schrieb:> Gibt es eine drahtlose Möglichkeit?
Wenn ein Kabel verlegt werden kann, nimm ein Kabel; zwei Adern + Schirm
reichen für eine Duplex-Übertragung aus.
Thomas Z. schrieb:> Sende einfach den anzuzeigenden String "120"> Die Anzeige muss den Rest machen:> - eine 7-Segmentanzeige zeigt für eine "2" ein paar Segmente an> - eine 5x8-Punktmatrix-Anzeige schaltet die betreffenen LEDs die eine> "2" bilden ein
Hört sich ja relativ einfach an. Werde das soweit mal probieren.
Gibt es einen Richtwert welche Baudrate ich verwenden sollte?
Mein größten bedenken stecken aktuell im Siganlpegel. Reicht hier die
TTL-Spannung vom Mikrocontroller aus oder brauche ich mehr?
>Mein größten bedenken stecken aktuell im >Siganlpegel. Reicht hier die
TTL-Spannung vom >Mikrocontroller aus oder brauche ich mehr?
Definitiv nicht bei 100m.
Du brauchst auf jeden Fall einen Treiber.
Ich würde einen RS485 mit Twisted Pair Leitung nehmen.
Übertragungsrate gerade so schnell das du die benötigten Daten darüber
übertragen bekommst.
Mehr ist nicht nötig und würde sich eher negativ auswirken.
Tobi schrieb:> Hört sich ja relativ einfach an.
'Einfach' ist immer relativ.
Wenn du in der Lage bist, deine ursprüngliche Lösungsidee umzusetzen,
dann müsstest du auch diese umsetzen können. Die 'Zutaten' sind genau
die gleichen, nur sind die Aufgabenstellungen etwas anders verteilt, was
das Komplettsystem softwaremässig sogar einfacher macht, als dein
ursprünglicher Ansatz.
> Gibt es einen Richtwert welche Baudrate ich verwenden sollte?
Man kann das natürlich ausrechnen, weil man ja berechnen kann, wie lange
1 Zeichen af der UART bei einer bestimmten Baudrate braucht. Wenn dir
gar nichts anderes einfällt, dann nimm einfach mal 9600 Baud. Das ist so
ungefähr eine Standardbaudrate, bei der man als Mensch die Verzögerung
vom Absenden eines Zeichens bis zum Empfang nicht mehr richtig wahrnimmt
und mit der man schon recht weite Distanzen recht problemlos überbrücken
kann. Deine 5 oder 6 Bytes flutschen da in 0 komma nix drüber.
> Mein größten bedenken stecken aktuell im Siganlpegel. Reicht hier die> TTL-Spannung vom Mikrocontroller aus oder brauche ich mehr?
Bei 100m würde ich auf jeden Fall mal MAX232 einsetzen, also eine
Standard-RS232 probieren. Ordentliche Leitungen vorausgesetzt kommt man
mit 9600 ca 150m weit. Grössere Baudraten können funktionieren, wenn
alles passt. Ist aber kein Pferdefuss, denn die Baudrate kann man ja im
Programm einstellen und dann ganz einfach mal Versuche machen. :-)
Wenn du mit einer Standard-RS232 nicht weiter kommst, dann muss man auf
differentielle Übertragung und Twisted Pair Kabel setzen. Aber bei 100m
müsste es auch so gehen. Vor Jahren hab ich das mal auf ca. diese
Distanz probiert und es hat keine Probleme gegeben.
Tobi schrieb:> Hört sich ja relativ einfach an. Werde das soweit mal probieren.
Das ist auch etwas zu einfach. Die Zeichenkette verschickt man besser
mit Startzeichen, Längenangabe, Prüfsumme und Endzeichen, damit sie der
Empfänger nur anzeigt, wenn die Daten plausibel sind. Beispiel:
:l120pCR, wobei l=Anzahl Bytes, p=Prüfsumme und CR=Endzeichen sind.
> Gibt es einen Richtwert welche Baudrate ich verwenden sollte?
Bei 19200 Baud würde obige Nachricht in < 5 ms übertragen
> Mein größten bedenken stecken aktuell im Siganlpegel. Reicht hier die> TTL-Spannung vom Mikrocontroller aus oder brauche ich mehr?
Du brauchst auf jeden Fall einen TX-Treiber, mit einem
Abschlußwiderstand auf der Empfängerseite. Eine TI-Applikation empfiehlt
130 Ohm und erreicht mit RS232-Bausteinen 300 m bei 19,2 kBd.
Quelle: Selected Interface Circuits Data Book, 1982
Tobi schrieb:> Danke für die ausführlichen Informationen.>> Werde mir ein passendes Datenformat überlegen und dann einfach> ausprobieren.
1
S
2
120
3
119
4
118
5
117
6
116
7
...
8
003
9
002
10
001
11
000
12
E
nicht mehr Aufwand als notwendig. Der Satellit kann ja auch noch
Plausibilitätscheck machen. Jede nächste Zahl muss um 1 kleiner sein als
die vorhergehende. Mit den Ausnahmen natürlich, dass er nach einem Start
erst mal eine grosse Zahl kriegt.
Hi Tobi,
wie wäre es mit Funk? Pollin hat z.B. ne Menge Module an die man via SPI
dran geht.
Beitrag "RFM12 - Funkmodul"
Arduino Libs lassen sich auch dazu finden.
Ansonsten wie hier schon gesagt wurde: einer ist der Chef alle anderen
zeigen nur an.
Bestes,
Bränko