Forum: Mikrocontroller und Digitale Elektronik Drahtlose Kommunikation zwischen Mikrocontrollern


von A. B. (developer_x)


Lesenswert?

Sehr geehrtes Forum,
ich beschäftige mich seit längerem mit Mikrocontroller neben der Schule 
und wollte nun mal daran gehen, eine Fernsteuerung zu bauen, bzw. 
überhaupt per Funk oder IR oder RC zwei Controller kommunizieren zu 
lassen.

Meine Frage dazu :
>> Wie geht das eigentlich?
Was ich mir denke ist nämlich, dass wenn man Bytes einfach mit einer 
IR-Diode z.B. sendet, irgendwie der Empfänger gar nicht wissne kann, 
wann denn die Sendung beginnt, und wann aufhört...

>> Gibt es irgendein Bauteil, dass 8 Pins hat, an das man also einfach ein Byte 
per MC anlegen kann, und dieses Teil sorgt einfach dafür, dass ein Empfängerteil 
diese 8 Bits genauso anlegt, sodass sie von einem MC erkannt werden können?

Würde mich ma interessieren,
und wenn's geht ein paar Namen von gängigen Bauteilen.

Danke,
m.f.G. Developer_X

PS:
Wenn ihr das macht, nutzt ihr da einfach eine Library (habe schon 
bisschen recherchiert) oder programmiert ihr das komplett selbst?

von Eumel (Gast)


Lesenswert?

K. R. schrieb:
> per MC anlegen kann, und dieses Teil sorgt einfach dafür, dass ein Empfängerteil
> diese 8 Bits genauso anlegt, sodass sie von einem MC erkannt werden können?
>
> Würde mich ma interessieren,
> und wenn's geht ein paar Namen von gängigen Bauteilen.
>
> Danke,
> m.f.G. Developer_X
>
> PS:
> Wenn ihr das macht, nutzt ihr da einfach eine Library (habe schon
> bisschen recherchiert) oder programmiert ihr das komplett selbst?

Ja sowas gibts z.b. von Microchip. Schau dir mal deren IR Bauteile and. 
Da gibts welche in die auf der einen Seite der Uart von deinem 
Controller rein geht und dann bei dem entsprechenden Gegenstück wieder 
rauskommt. Als die ganze Ansteuerung der IR Dioden und Empfänger regeln 
die Teile für dich.

von Eumel (Gast)


Lesenswert?

K. R. schrieb:
> Wenn ihr das macht, nutzt ihr da einfach eine Library (habe schon
> bisschen recherchiert) oder programmiert ihr das komplett selbst?

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en020146

Hier, sowas meinte ich. Programmieren muss man da auch nicht viel. Den 
Uart solltest du halt schonmal benutzt haben :)

von A. B. (developer_x)


Lesenswert?

Also hast du ne konkrete Website oder so, denn ganz ehrlich, die hier :
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en520424
ist sehr unübersichtlich, da gibt es noch nicht mal bilder vom Bauteil, 
sondern nur zahlen, bzw. datenblätter....

Sowas wie ein Conrad/Reichelt Shop wäre da schon besser, und wie heißen 
die Dinger, IR Transmitter, oder so?

von A. B. (developer_x)


Lesenswert?

Und können diese Dinger dann nur Digitale Ströme senden, oder auch 
analoge, wenn ich zum Beispiel sowas wie ein Mikrofon habe, und ein paar 
datenbits, geht das auch?

von Eumel (Gast)


Lesenswert?

Was willst du zu dem Bauteil denn noch außer ein Datenblatt? Das steht 
ALLES drin. Was das Teil kann, wie es funktioniert, wie du es benutzen 
musst und wie es aussieht (DIP 8).

von Eumel (Gast)


Lesenswert?

K. R. schrieb:
> Und können diese Dinger dann nur Digitale Ströme senden, oder auch
> analoge, wenn ich zum Beispiel sowas wie ein Mikrofon habe, und ein paar
> datenbits, geht das auch?

Selbstverständlich nur Digital. Was ist an Datenbits nicht digital? Wenn 
du damit ein Audiosingal senden willst musst du das halt vorher 
digitalisieren.

von A. B. (developer_x)


Lesenswert?

Sorry, ok, danke, ich denke ich muss mich dann auch mit UART 
beschöftigen sollte, das habe ich nämlich noch nie benutzt.

Danke,
m.f.G. Developer_X

von Eumel (Gast)


Lesenswert?

K. R. schrieb:
> Sorry, ok, danke, ich denke ich muss mich dann auch mit UART
> beschöftigen sollte, das habe ich nämlich noch nie benutzt.
>
> Danke,
> m.f.G. Developer_X

Ist nicht schwer, schau mal hier auf der Seite ins ASM Tutorial (wenn du 
AVR benutzt). Da ist alles gut erklärt.

von Maus (Gast)


Lesenswert?

K. R. schrieb:
> Und können diese Dinger dann nur Digitale Ströme senden, oder auch
> analoge, wenn ich zum Beispiel sowas wie ein Mikrofon habe, und ein paar
> datenbits, geht das auch?

Ein µC ist per se digital und nicht analog!

von Eumel (Gast)


Lesenswert?

Wenn die Reichweite etwas besser sein soll und auch "durch wände" gehen 
soll kannst du auch ein Funkmodul benutzen.

von Stefan (Gast)


Lesenswert?

Die Chips NE565 und NE566 sind für prima geeignet, um analoge NF Signale 
per Infrarot zu übertragen. Ich habe das mal gemacht, mit einer 
Trägerfrequenz um 300kHz.

von Michael S. (rbs_phoenix)


Lesenswert?

Meine ersten Versuche hatte ich in der Ausbildung mit 2 Modulen von 
Pollin oder Conrad glaube ich.

Das war einfach eine kleine Platine mit 4 Anschlüssen. Ein Anschluss für 
die Antenne, +, -, Datenleitung. Funktioniert hat es mit FSK (-> 
Wikipedia), und jenachdem, ob der Dateneingang High oder Low war, hat er 
die Frequenz gewechselt. Das Empfangsmodul hat genau das gleiche nur 
anders rum gemacht. Ging dann aber nur in eine Richtung. Durch die Luft 
ca 30-40 Meter, durch Wände ging es allerdings auch. Hab mich da noch 
nicht so viel damit beschäftigt. War eher ein Lückenfüller-Projekt von 
mir. Bei 5 Euro für beide Module kann man, denke ich, auch nicht viel 
erwarten.


K. R. schrieb:
> da gibt es noch nicht mal bilder vom Bauteil,
> sondern nur zahlen, bzw. datenblätter....

Von der Einstellung/Vorstellung solltest du schnell abstand nehmen. Für 
den Gebrauch ist es egal, wie es aussieht, da willst du wissen, was es 
macht/kann/braucht etc. Und das Datenblatt und die Zahlen sind für die 
Benutzung, gerade bei µC's unerlässlich (Es sei denn, man kennt das 
Bauteil in und auswendig, aber davor braucht man es dennoch).


Eumel schrieb:
> Was ist an Datenbits nicht digital?

Pegel, Restwelligkeit, ... ;) :P

von A. B. (developer_x)


Lesenswert?

Also es sollte eigentlich Datenbits übertragen, und sollte schon ne 
etwas größere Reichweite haben, woher weiß ich denn jetzt nur, dass mein 
Gerät nicht falsche Daten empfängt, woher weiß ich, dass meine Frequenz 
einzigartig ist?

Und wie ich gesehen habe, kann man an den Chip den mir Eumel empfohlen 
hat mit einer Datenleitung Daten senden, nur woher weiß der Chip denn, 
dass ich abwechselnde dieses eine Bit da an und ausmache, woher weiß der 
denn dass das Byte zu ende ist, und woher weiß er wann ich angefangen 
habe?
Woher weiß er denn, ob nicht noch eins kommt, wenn er doch dieselbe 
Clocktime hat, wie mein MC, ??

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en020146

Und ja, das habe ich wohl unglücklich formuliert, ich habe nichts gegen 
Datenblätter, benutz die auch ohne probleme, aber wenn man kein Bild vom 
Bauteil hat, kein Foto, dann weiß man nicht unbedingt die Größe, etc...

m.f.G. Developer_x

von A. B. (developer_x)


Lesenswert?

Keine Antwort auf meine Fragen :
>Und wie ich gesehen habe, kann man an den Chip den mir Eumel empfohlen
hat mit einer Datenleitung Daten senden, nur woher weiß der Chip denn,
dass ich abwechselnde dieses eine Bit da an und ausmache, woher weiß der
denn dass das Byte zu ende ist, und woher weiß er wann ich angefangen
habe?
Woher weiß er denn, ob nicht noch eins kommt, wenn er doch dieselbe
Clocktime hat, wie mein MC, ??

von Eumel (Gast)


Lesenswert?

K. R. schrieb:
> Keine Antwort auf meine Fragen :
>>Und wie ich gesehen habe, kann man an den Chip den mir Eumel empfohlen
> hat mit einer Datenleitung Daten senden, nur woher weiß der Chip denn,
> dass ich abwechselnde dieses eine Bit da an und ausmache, woher weiß der
> denn dass das Byte zu ende ist, und woher weiß er wann ich angefangen
> habe?
> Woher weiß er denn, ob nicht noch eins kommt, wenn er doch dieselbe
> Clocktime hat, wie mein MC, ??

Uart verstehen löst dein Problem, ließ dir dazu die vielen vielen 
Artikel hier, bei Wikipedia oder sonst wo im Internet durch.

von A. B. (developer_x)


Lesenswert?

Habe ich das also nach folgendem Artikel :
http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART
den ich komplett durchgearbeitet habe richtig verstanden, dass der 
Mikrocontroller das im Grunde von selbst regelt, und  man gar keine 
Software programmieren muss, wenn man beim empfangen zum Beispiel 
interrupts benutzt, und dann einfach den Befehl "in" benutzt, oder wie?

Bei meiner Instruction set Summary habe ich auch "IN" und "OUT" im 
Datenblatt.

Das geht also alles von allein, verrückt????

von Eumel (Gast)


Lesenswert?

Das Datenblatt hast du ja anscheinend gefunden. Den Abschnitt über den 
UART lesen kann dir nicht schaden ;)

von A. B. (developer_x)


Lesenswert?

Das geht alles von allein :

USART_MSPIM_Transfer:
; Wait for empty transmit buffer
sbis UCSRnA, UDREn
rjmp USART_MSPIM_Transfer
; Put data (r16) into buffer, sends the data
out UDRn,r16
; Wait for data to be received
USART_MSPIM_Wait_RXCn:
sbis UCSRnA, RXCn
rjmp USART_MSPIM_Wait_RXCn
; Get and return received data from buffer
in r16, UDRn
ret

So heißt es ja auf S.209^^.

Is schon cool...

Aber wie das im Detail funktioniert, wird ja nicht so verraten :D...

Eine Frage noch, wie soll das gehen, dass man ohne Schnellere Clock 
innerhalb von einem Takt IN oder OUT aufrufen kann???

Und wie man genau einen Oszillator wo anschließt, ist da ja auch nicht 
so erklärt, ne?

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
Noch kein Account? Hier anmelden.