Forum: Mikrocontroller und Digitale Elektronik Arduino Infrarot senden unde empfangen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Julius H. (juliushuck)


Bewertung
-1 lesenswert
nicht lesenswert
Hallo,
Ich baue ein Lasertagsystem und habe ein Problem mit meinem Arduino UNO.

Das hier funktioniert nicht:
1
#include <IRremote.h>
2
3
IRsend irsend;
4
5
int RECV_PIN = 11;
6
IRrecv irrecv(RECV_PIN);
7
decode_results results;
8
9
void setup()
10
{
11
  Serial.begin(9600);
12
  Serial.println("Enabling IRin");
13
  irrecv.enableIRIn();
14
  Serial.println("Enabled IRin");
15
}
16
17
void loop() {
18
  if (millis() - last >= 1000)
19
  {
20
    irsend.sendSony(0xa90, 12);
21
  }
22
23
  if (irrecv.decode(&results)) {
24
    irrecv.resume();
25
    Serial.println(results.value, HEX);
26
  }
27
28
  delay(100);
29
}

Ich habe dann mal die zeit gemessen, die der Arduino bracuht, um das 
Signal zu senden: 20 Millisekunden.
Dann habe ich einfach das Senden durch delay(20) ersetzt.

Das hier empfängt IR von Fernbediehnungen aber zuverlässig:
1
#include <IRremote.h>
2
3
IRsend irsend;
4
5
int RECV_PIN = 11;
6
IRrecv irrecv(RECV_PIN);
7
decode_results results;
8
9
void setup()
10
{
11
  Serial.begin(9600);
12
  Serial.println("Enabling IRin");
13
  irrecv.enableIRIn();
14
  Serial.println("Enabled IRin");
15
}
16
17
void loop() {
18
  if (millis() - last >= 1000)
19
  {
20
    delay(20); //Senden braucht auch genau 20 Millisekunden
21
  }
22
23
  if (irrecv.decode(&results)) {
24
    irrecv.resume();
25
    Serial.println(results.value, HEX);
26
  }
27
28
  delay(100);
29
}

Wieso funktioniert es mit einem delay aber nicht mit dem Senden? Obwohl 
die IR-LED wirklich sendet und ich an der LED am Emfänger sehen kann, 
dass es ankommt?

Julius

: Bearbeitet durch User
von Forist (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Julius H. schrieb:
> Ich baue ein Lasertagsystem und habe ein Problem mit meinem Arduino UNO.

Das hatten wir doch gerade
Beitrag "IR LED Arduino how to send signal"

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.