Go Down

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

HotSystems

Hallo,
hatt nun endlich geklappt :-)
Habe die alte IDE gelöscht. Die V1.6.5 installiert.
Library hab ich nun diese verwendet: https://github.com/z3t0/Arduino-IRremote
Und Erweiterung diese: https://code.google.com/archive/p/arduino-tiny/downloads

MFGF
Ok, freut mich, dass es funktioniert.
Gruß Dieter

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

fraens

#31
Apr 27, 2017, 06:14 pm Last Edit: Apr 28, 2017, 06:40 am by uwefed Reason: add CODE TAGs </>
Hallo nochmals  :smiley-roll-sweat:
IRsendDemo + IRrecDemo funktioniert alles soweit.
Aber sobald ich Sender und Empfänger verwende geht nix mehr.
Ich möchte mit einem ATtiny Senden und Empfangen können.
Der Code ist eigendlich recht simpel:

Code: [Select]
#include <IRremote.h>
int RECV_PIN = 3;
IRsend irsend;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    irrecv.resume(); // Receive the next value
  }
  delay(100);

  for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xa90, 12);
      delay(40);
    }
}


Er sollte nur mal Testweise ein paar Signale abgeben.
Vielleicht einen Tipp?

SkobyMobil

Hallo,
wenn Sony diesen Code "0xa90, 12" 3mal erhalten muß, dann liegt zwischen jedem Senden des Code eine
ganz bestimmte Zeit dazwischen.

Du hast diese mit einem delay(40) gesetzt. Hast Du den Wert aus dem Datenblatt des SonyProtokoll?
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

fraens

Hallo,
die 40ms waren schon im Beispielprogramm vorhanden.
Anbei mal die Fehlermeldung:

Die Fremdhersteller-platform.txt definiert keinen compiler.path. Bitte melden Sie dies an den Fremdhersteller.

c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: C:\Users\Fraens\AppData\Local\Temp\build8548637972873866121.tmp/IRrecvDemo.cpp.elf section `.text' will not fit in region `text'
c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: region `text' overflowed by 412 bytes
collect2.exe: error: ld returned 1 exit status
Fehler beim Kompilieren.

SkobyMobil

Hallo,
schöne Fehlermeldung, kann ich leider nichts mit anfangen.
Das könnte ein Speicherüberlauf sein. Aber frage mich mal...
Ausreichend Speicher auf dem Arduino vorhanden?

Sehe erst einmal zu, das die Fehlermeldung verschwindet, dann um den Rest kümmern.
Tut mir leid.
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

fraens

Ja ist wirklich eine schöne Meldung... :smiley-confuse:
Ist ein ATtiny85. Google sagt auch nicht gescheites darüber.

SkobyMobil

Hallo,
Du fummelst doch mit einer Arduino IDE? Ist die so eingestellt, das ausfühfliche Fehler angezeigt werde?
Da kann man normalerweise sehen, was an Speicher belegt ist.
Sonst fällt mir aber nichts ein.
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

Tommy56

Für beides zusammen (senden und empfangen) wird der Tiny85 wohl zu klein sein.

Quote
region `text' overflowed by 412 bytes
sagt ja schon dass das Programm zu groß ist.

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

HotSystems

Er sollte nur mal Testweise ein paar Signale abgeben.
Vielleicht einen Tipp?
Also bei mir kompiliert der von dir hier gepostete Sketch auf dem ATTiny85 fehlerfrei.
Du verwendest dann sicher die falsche IRRemote-Library.
Nimm die, die ich die vorgeschlagen habe.

Und diese Speicherangaben gibt er aus:

Code: [Select]
Der Sketch verwendet 4.710 Bytes (57%) des Programmspeicherplatzes. Das Maximum sind 8.192 Bytes.
Globale Variablen verwenden 183 Bytes (35%) des dynamischen Speichers, 329 Bytes für lokale Variablen verbleiben. Das Maximum sind 512 Bytes.


Damit sollte er auch funktionieren.
Gruß Dieter

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

fraens

Hallo,
Ok der Code wurde nun mit der von dir vorgeschlagenen Library ohne Fehler compiliert und hochgeladen.
Juhu...
Leider blinkt das LED nicht (Auch beim Beispielprogramm IRsendDemo blinkt nix) :-(
Ich versuch das mal zu erklären:

GitHub Library (https://github.com/z3t0/Arduino-IRremote)
Das Beispielprogramm IRsendDemo funktioniert. Lässt sich compilieren + hochladen und es sendet auch.
Das Beispielprogramm IRrecvDemo funktioniert. Lässt sich compilieren + hochladen und es empfängt auch.
Aber wehe ich will senden und empfangen - dann spuckt er mich an.

Vorgeschlagene Bibliothek (http://gammon.com.au/Arduino/IRremote_Attiny.zip)
Das Beispielprogramm IRsendDemo funktioniert. Lässt sich compilieren + hochladen aber es wird nicht gesendet.
Das Beispielprogramm IRrecvDemo wurde noch nicht getestet.
Wenn ich senden und empfangen möchte (lt. dem Code aus #31) wird alles richtig compiliert + hochgeladen aber es wird nicht gesendet. Gleich wie bei IRsendDemo.

Bei gleicher Anschlussbelegung läuft das IRsendDemo bei Github problemlos. Bei der anderen nicht.
Vielleicht hat ja jemand eine Idee. Ich kann das jedenfals nicht nachvollziehen.
MFGF


HotSystems

Hallo,
Ok der Code wurde nun mit der von dir vorgeschlagenen Library ohne Fehler compiliert und hochgeladen.
Juhu...
Leider blinkt das LED nicht (Auch beim Beispielprogramm IRsendDemo blinkt nix) :-(
Prima, dann wäre die erste Hürde geschafft.

Das es nicht blinkt, liegt daran, es ist Infrarot, das sieht man nicht.

Du kannst es natürlich mal testweise mit einer normalen Led probieren, die sollte blinken.

Wie ist deine Schaltung des IR-Senders ?

Gruß Dieter

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

Whandall

Das es nicht blinkt, liegt daran, es ist Infrarot, das sieht man nicht.
Die meisten Handykameras sind ausreichend IR-empfindlich um das Leuchten zu sehen.
Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

fraens

Getestet wurde mit einer normalen LED.
Interessant ist noch zu sagen das ich sobald ich den Arduino Uno einstelle funktioniert das compilieren beim Code #31 (Github Library). Sobald ich auf ATtiny85 8Mhz umstelle nicht mehr.
Schaltung: LED ist über Wiederstand an PB1 angeschlossen.
Funktioniert ja auch bei IRsend Demo.

HotSystems

#43
Apr 28, 2017, 03:20 pm Last Edit: Apr 28, 2017, 03:29 pm by HotSystems
Getestet wurde mit einer normalen LED.
Interessant ist noch zu sagen das ich sobald ich den Arduino Uno einstelle funktioniert das compilieren beim Code #31 (Github Library). Sobald ich auf ATtiny85 8Mhz umstelle nicht mehr.
Schaltung: LED ist über Wiederstand an PB1 angeschlossen.
Funktioniert ja auch bei IRsend Demo.
Bei dem Demosketch wird ja auch ein Pin 3 angesprochen.
Das müsste der PB3 des ATtiny85 sein.

Edit:
Warum baust du nicht einfach einen Testsketch auf, mit dem du nur sendest und probierst die einzelnen Pins durch, dann hast du den richtigen Pin als Sender.

Und je nach benötigter Reichweite brauchst du noch einen Transistor als Verstärker.
Gruß Dieter

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

fraens

Beim ATtiny ist es Pin1 lt. Github.
Das Problem liegt eher daran das man es erst gar nicht compilieren kann.

Go Up