Hilfe mit IR!

#3343289
Lesenswert?

Hallo erst Mal! Meine Frage ist eigendlich eh sehr simpel: Wieso kann
ich bei dem folgenden Sketch wenn ich einmal gesendet habe nichts mehr
empfangen?? (Also ich lade den sketch auf den Arduino hoch, kann dann
empfangen so viel ich will, aber sobald ich den Taster betätige also
sende kann ich gar nichts mehr empfangen??

1
#include <IRremote.h>
2
const int RECV_PIN = 10;
3
IRrecv irrecv(RECV_PIN);
4
decode_results results;
5
int inputPin = 8;
6
int val = 0;
7
class LaserTag {
8
  enum {
9
    CMD_LEN = 32,
10
    SHOOT   = 0x538BC81
11
  };
12
  
13
  IRsend tag;
14
  
15
  void send_command(const long command) {
16
    tag.sendNEC(command, CMD_LEN);
17
  }
18
  public:
19
  
20
  void shoot() { send_command(SHOOT); }
21
};
22

23
LaserTag laser_tag;
24
const unsigned int BAUD_RATE = 9600;
25

26
void setup() {
27
  Serial.begin(9600);
28
  irrecv.enableIRIn();
29
  irrecv.blink13(true),
30
  Serial.begin(BAUD_RATE);
31
  pinMode(inputPin, INPUT);
32
}
33

34
void loop() {
35
  val = digitalRead(inputPin);  {
36
  if (val == LOW) {
37
    laser_tag.shoot();
38

39
  }
40
}
41
  if (irrecv.decode(&results)) {
42
    if (results.decode_type == NEC) {
43
      Serial.print("NEC: ");
44
    } else if (results.decode_type == SONY) {
45
      Serial.print("SONY: ");
46
    } else if (results.decode_type == RC5) {
47
      Serial.print("RC5: ");
48
    } else if (results.decode_type == RC6) {
49
      Serial.print("RC6: ");
50
    } else if (results.decode_type == UNKNOWN) {
51
      Serial.print("UNKNOWN: ");
52
    }
53
    Serial.println(results.value, HEX);
54
    irrecv.resume(); 
55
  }
56
}
Gast #3343823
Lesenswert?

War da nicht früher mal was mit main?

Meckert Dir der Compiler nicht die Ohren voll?

Serial.begin(); wird auch beim zweiten Aufruf nicht besser.

Entweder dein Code ist unvollständig, oder Du bist zu großzügig was die 
geschweifte Klammer betrifft. Schau Dir mal an, welche zu wem gehört und 
mach das Ganze mal etwas lesbarer. Muss aber nicht sein;-)
#3343892
Lesenswert?

Ähm nein der compiler sieht alles ganz normal...


@foobar
Große Klappe nichts dahinter..Halt dich raus aus meinem Threat wenn du 
eh nichts weißt!


Also dann: Ja das mit dem Serial.begin() war ein großer Fehler aber 
nicht das Hauptproblem!Ich werd´s noch mal überprüfen...

Ach ja eines ist glaube ich noch zu sagen! Ich gehe 6. Klasse habe noch 
nie nen Elektrokurs oder so gehabt, gehe in keine HTBLA(HTL) hab das 
nicht als Beruf gelernt auch nicht studiert.....Und habe mir mit 15 mein 
eigenes Laser-tag-system gebaut! Also ich glaube maulen könnt ihr lassen 
;-)
Gast #3343923
Lesenswert?

Du initialisierst eine Variable, indem du ihr einen Wert zuweist. In 
deinem Fall möchtest du der Variable ein Objekt vom Typ IRsend zuweisen. 
Eine Variable vom Typ "MeinObjekt" deklariert man mittels
  MeinObjekt var;
und initialisiert es mittels
  var = new MeinObjekt(variablen, des, konstruktors);

Kurzschreibweise
  MeinObjekt var(variablen, des, konstruktors);


Allerdings ist das wohl doch nicht der Fehler, denn IRsend scheint eine 
statische Klasse zu sein, sodass der Konstruktor nicht aufgerufen werden 
muss.


Hast du die Sendeeinheit richtig angeschlossen? Die Library nutzt 
scheinbar einen festen Pin, den man nicht verändern kann.

Gruß
scus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren