Eigene Infrarot Signale senden

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.

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

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?

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

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

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...

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

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.

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.

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

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?

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?

Ja geht auch auf dem ATTiny. Schau mal hier nach. Post #315

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.

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.

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.

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.

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.

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.

Hab ich mir schon gedacht das ich das ändern muss.
Die Frage ist nur wo.

Ups das war zu früh abgesendet. Schon müde heute :slight_smile:
Warscheindlich muss ich mir einen Timer Pin suchen und in der Lib ab zeile 55 den Pin ändern.
https://github.com/z3t0/Arduino-IRremote/blob/master/irSend.cpp

Ok ich glaub ich habs gefunden: GitHub - Arduino-IRremote/Arduino-IRremote: Infrared remote library for Arduino: send and receive infrared signals with multiple protocols
Weiter unten stehen die Board`s die verwendet werden können.

Hallo liebes Forum,
ich habe nun eine funktionierende Verbindung zwischen 2 Arduino Uno zustande gebracht.
Möchte jetzt das Programm auf einen ATtiny85 zum laufen zu bekommen. Leider verwendet der ATtiny den Timer0.
Ich verwende diese Library: GitHub - Arduino-IRremote/Arduino-IRremote: Infrared remote library for Arduino: send and receive infrared signals with multiple protocols
Weiter unten steht das man sie für den ATtiny85 verwenden kann. Aber irgendwie funktioniert das nicht.
Muss man in der Library etwas umschreiben?
Hat schon mal jemand so etwas gemacht?

MFGF

Hier in Post 315 im Sketch ist der Link für die funktionierende Library im ATtiny85.