Go Down

Topic: Eigene Infrarot Signale senden (Read 4949 times) previous topic - next topic

fraens

Hallo liebes Forum,
ich hätte eine kurze Frage.
Ich möchte mehrere Ardoino`s (bzw. später Attiny) über Infrarot kommuniren lassen.
Ich such seit Tagen nach passenden Beispielen im Internet. Aber irgendwie werde ich nicht ganz schlau daraus. Die meisen Beispiele haben etwas mit Fernbedienungen zu tun.
Ich möchte aber ein "eigenes" Signal generieren das dann alle anderen Arduinos steuert.
Etwa so: Auf irgendeinem Arduino drück ich einen Knopf - das drücken dieses Knopfes soll bewirken das dann zB. ein LED an allen anderen Arduinos angeht.
Klingt eigendlich recht einfach aber...
Vielleicht kann mir da jemand auf die Sprünge helfen.
Danke.

HotSystems

Und warum ist da der IR-Fernbedienungscode nicht der Richtige ?
Sieh dir dazu mal die Library IRremote an, damit wird es funktionieren.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

fraens

Bei den Beispielen mit Fernbedienungen hatt man durch auslesen der Fernbedienung schon fertige Signale.
Die Library schaut dan ja selbständig um welches Protokoll es sich handelt.
Ich möchte ja sozusagen meine eigenen Signale erzeugen. D.h. wenn ich einen Knopf betätige soll sich zB. LED-Rot an alle Ardoino`s einschalten. Bei einem anderem Knopf zB. LED-Grün...
Muss man sich dazu zu einem Protokoll entscheiden (RC5, NEC...) oder kann man einfach über die serielle Schnittstelle "LED-Rot_ein" senden?

Tommy56

Was nun IR oder seriell? Beachte seriell ist kein Bus, sondern eine Punkt zu Punkt Verbindung. Wobei wenn die anderen immer nur hören, könnte man da auch was tun.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

HotSystems

#4
Mar 25, 2017, 09:44 pm Last Edit: Mar 25, 2017, 09:51 pm by HotSystems
Wenn du dir die Beispiele richtig durchliest, siehst du auch dass man einen Sender mit IR-Sendediode aufbauen kann.
Da kannst du eigene Code senden, den Rest macht die Library.

Und mit er seriellen Schnittstelle hat das nichts zu tun.
So wie Tommy schon geschrieben hat
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

fraens

Naja ich habe mir das so gedacht: Die IR LED wird mit dementsprechender Schaltung an den TX angeschlossen. Dann sende ich seriell zB. "LED-Rot_ein" und lausche mit den anderen mit
if (Serial.available() ....).
Stehe echt auf der Leitung...

HotSystems

Das sehe ich....
Du must es mit der genannten Library machen und kannst dann über Zahlen deine Funktionen steuern.
Nix mit seriell.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

fraens

Ok das heißt ich sende mit zB. sendRC5(unsigned long data, int nbits); eine Zahlenreihe die ich dann bei den anderen wieder dekodiere? Den Rest macht die Library.

HotSystems

Ok das heißt ich sende mit zB. sendRC5(unsigned long data, int nbits); eine Zahlenreihe die ich dann bei den anderen wieder dekodiere? Den Rest macht die Library.

Ja, genau. Die Beispiele zeigen genau wie du es machen kannst.
Damit aufgebaut, funktioniert es sofort. Vorrausgestzt dein Aufbau und der Sketch ist richtig.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

fraens

Ok dann werd ich mal einen 2 Arduino besorgen und das ganze testen.
Die Library will ja den PIN 3 als Ausgang. Wie läuft das dann beim Attiny. Funktioniert
dise Lib auch bei diesem?

HotSystems

Ok dann werd ich mal einen 2 Arduino besorgen und das ganze testen.
Die Library will ja den PIN 3 als Ausgang. Wie läuft das dann beim Attiny. Funktioniert
dise Lib auch bei diesem?
Ja geht auch auf dem ATTiny. Schau mal hier nach. Post #315
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

fraens

Danke für den Link. Hilft schon mal für das empfangen sehr viel weiter.
Wie sieht das mit dem Senden aus? Die Lib verwendet ja den Pin 3 beim Arduino Uno.
Kann ich beim Attiny einen PWM Ausgang verwenden und diesen in der Lib umschreiben?

Die Zeilen die hier geschrieben wurden helfen mir mehr weiter als 3 Tage Internetrecherche.
Man verläuft sich beim suchen im WWW sehr schnell und zum Schluss kennt man sich gar nicht mehr aus.

HotSystems

Danke für den Link. Hilft schon mal für das empfangen sehr viel weiter.
Wie sieht das mit dem Senden aus? Die Lib verwendet ja den Pin 3 beim Arduino Uno.
Kann ich beim Attiny einen PWM Ausgang verwenden und diesen in der Lib umschreiben?

Die Zeilen die hier geschrieben wurden helfen mir mehr weiter als 3 Tage Internetrecherche.
Man verläuft sich beim suchen im WWW sehr schnell und zum Schluss kennt man sich gar nicht mehr aus.
Das freut mich, das es dir weiter hilft.
Du must für den IR Sender die Library nicht umschreiben. Du brauchst im Sketch nur den richtigen Ausgangspin benennen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

fraens

Leider steht eben überall das der Pin 3 verwendet werden muss:
https://github.com/z3t0/Arduino-IRremote/blob/master/examples/IRsendDemo/IRsendDemo.ino
Der Attiny85 hat seine PWM Pins auf PB0 und PB1. Irgendwie muss ich ja der Lib sagen das sie nicht den Pin 3 verwenden soll.

HotSystems

Leider steht eben überall das der Pin 3 verwendet werden muss:
https://github.com/z3t0/Arduino-IRremote/blob/master/examples/IRsendDemo/IRsendDemo.ino
Der Attiny85 hat seine PWM Pins auf PB0 und PB1. Irgendwie muss ich ja der Lib sagen das sie nicht den Pin 3 verwenden soll.
Ja sorry, du hast Recht.

Da muss es tatsächlich in der Lib geändert werden.

Als Sender habe ich den Tiny auch noch nicht eingesetzt.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Go Up