IR-Sensor Sketch "Fehler beim Kompilieren"

C:\program File (x86)\Arduino\libraries

Nein, der Standardordner ist C:\Users<benutzername>\Documents\Arduino\libraries.
Den kann man verbiegen; den aktuell eingestellten Pfad findest Du in den Einstellungen.
WoIstDerSketchOrdner.png

Moin Walter,
du scheinst hier mein rettender Engel zu sein. Ok, habe ich geprüft, ist so eingestellt und ich packe jetzt alle libs, die ich schon habe, dort hinein. Alle anderen lösche ich??

Im Prinzip ja.
Ich würde evtl. anders vorgehen, damit Du Dir keine unerwünschten Altlasten einschleppst und zwar alle benötigten Libs - soweit möglich - über den Bibliotheksverwalter der IDE installieren. Dann landen sie automatisch im richtigen Verzeichnis.
“Händisch” installieren mache ich nur, wenn es gar nicht anders geht (d.h. die lib ist so speziell, dass ich sie von Github oder woanders her bekomme). Am Libraries-Ordner im “Programme”-Verzeichnis würde ich gar nicht fummeln. Da ist ggf. eine saubere Neu-Installation der Arduino-IDE m.E: die sicherere Lösung.

Walter,
den Gedanken hatte ich auch schon. Das werde ich jetzt tun, harten Schnitt. Ich melde mich dann wieder, ist das ok für dich? Übrigens, lt. Google ist die IRremote von GitHub und soll wohl "händisch" in den Librarie-Ordner kopiert werden.

So, Walter, deinstalliert, mit ccleaner registery geputzt. neu installiert. Folgenden Sketch geladen:

#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
  Serial.begin(9600);
  pinMode (13, OUTPUT);   //An Pin 13 wird eine LED angeschlossen.
  digitalWrite(13, LOW);    //Diese soll zunächst aus sein
  irrecv.enableIRIn();
}
void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);
    if (results.value == 16724175)   //Wenn der Infrarotempfänger die Zahl
      //„16724175“ ausgelesen hat (Entsprechend der Taste“1“ der Fernbedienung)
    {
      digitalWrite (13, HIGH); //soll die LED an gehen.
    }
    if (results.value == 16718055)   //Wenn der Infrarotempfänger die Zahl
      //„16718055“ ausgelesen hat (Entsprechend der Taste“2“ der Fernbedienung),
    {
      digitalWrite (13, LOW); //soll die LED aus gehen.
    }
    irrecv.resume();
  }
}

Fehlercode am Anfang:
C:\Users\Schorsch\AppData\Local\Temp\arduino_modified_sketch_142279\IR_LED_neu.ino: In function ‘void loop()’:
C:\Users\Schorsch\AppData\Local\Temp\arduino_modified_sketch_142279\IR_LED_neu.ino:19:29: warning: ‘bool IRrecv::decode(decode_results*)’ is deprecated: Please use decode() without a parameter. [-Wdeprecated-declarations]
if (irrecv.decode(&results)) {
^
In file included from C:\Users\Schorsch\Documents\Arduino\libraries\IRremote\src/IRremote.h:99:0,
from C:\Users\Schorsch\AppData\Local\Temp\arduino_modified_sketch_142279\IR_LED_neu.ino:1:
C:\Users\Schorsch\Documents\Arduino\libraries\IRremote\src/irReceive.cpp.h:1032:6: note: declared here
bool IRrecv::decode(decode_results *aResults) {
^~~~~~
C:\Users\Schorsch\Documents\Arduino\libraries\IRremote\src\irReceive.cpp:739:2: warning: #warning “Old decoder function decodeHash() is enabled. Enable USE_STANDARD_DECODE on line 34 of IRremote.h to enable new version of decodeHash() instead.” [-Wcpp]
#warning “Old decoder function decodeHash() is enabled. Enable USE_STANDARD_DECODE on line 34 of IRremote.h to enable new version of decodeHash() instead.”
^~~~~~~
Und am Ende:
Fehler beim Kompilieren für das Board Arduino Nano.
Ungültige Bibliothek C:\Users\Schorsch\Documents\Arduino\libraries\msard2-code in keine Header-Dateien (.h) in C:\Users\Schorsch\Documents\Arduino\libraries\msard2-code gefunden gefunden
Dazwischen habe ich weggelassen, weil da kein Warning etc kommt
Und nun?

Nur kurz vom Telefon:
Die decode()-Funktion hat eine neue Signatur, jetzt ohne Parameter. Müsstest du mal Header oder in einem Beispiel nachsehen wie man jetzt an die Resultate kommt.

Schau Dir einfach mal die aktuellen Beispiele der Lib an.

Gruß Tommy

Hallo Tommy,
habe mir den Beispielcode angesehen. Schreibe Zeile 14 statt
if (irrecv.decode(&results)) {
in
if (irrecv.decode()){
Damit ändert sich aber nicht die Fehlermeldung
Ungültige Bibliothek C:\Users\Schorsch\Documents\Arduino\libraries\msard2-code in keine Header-Dateien (.h) in C:\Users\Schorsch\Documents\Arduino\libraries\msard2-code gefunden gefunden
Dann habe ich auf Grund dieser Fehlermeldung die IRremote.h im Editor geöffnet und nach Zeile 34 gesucht, um evt. dort zu ändern. Jetzt bin ich aber an die Grenzen gestoßen. In Zeile 34 steht was ganz anderes. Hier bin ich raus, nicht zu faul, aber zu doof :confused:

C:\Users\Schorsch\Documents\Arduino\libraries\IRremote\src\irReceive.cpp:739:2: warning: #warning “Old decoder function decodeHash() is enabled. Enable USE_STANDARD_DECODE on line 34 of IRremote.h to enable new version of decodeHash() instead.” [-Wcpp]

#warning “Old decoder function decodeHash() is enabled. Enable USE_STANDARD_DECODE on line 34 of IRremote.h to enable new version of decodeHash() instead.”

^~~~~~~

C:\Users\Schorsch\Documents\Arduino\libraries\IRremote\src\irReceive.cpp:37:8: error: redefinition of ‘IRrecv IrReceiver’

IRrecv IrReceiver;

schorsch55:
Hier bin ich raus, nicht zu faul, aber zu doof

Du musst doch nur das Beispiel aus der lLbrary nehmen und um deine Daten erweitern.

Hallo Dieter,
ich habe jetzt probiert bis zum Abwinken. Ich habe das Beispiel "Control Relay" genommen. Ich habe versucht da durchzusteigen. Ich habe RELAY_PIN durch RECV_PIN ersetzt. Aber wo und wie lese ich dann Codes für Taste 1 bzw. 2 ein??

schorsch55:
Hallo Dieter,
ich habe jetzt probiert bis zum Abwinken. Ich habe das Beispiel "Control Relay" genommen. Ich habe versucht da durchzusteigen. Ich habe RELAY_PIN durch RECV_PIN ersetzt. Aber wo und wie lese ich dann Codes für Taste 1 bzw. 2 ein??

RELAY_PIN und RECV_PIN sind völlig unterschiedliche Pins. Wie die Namen es schon sagen, der eine für das Relay der andere für den IR-Empfänger.
Die darfst du nicht einfach tauschen.
Poste doch einfach mal den Sketch, den du jetzt verwendest.
Bei jedem Beispielsketch wird doch auch das empfangene Signal im seriellen Monitor angezeigt. Funktioniert das bei dir ?

Habt Dank, aber ich werfe hier das Handtuch und streiche den Versuch IR, werde dann nur Bluetooth nutzen.
Die Fehlermeldung

C:\Users\Schorsch\Documents\Arduino\libraries\IRremote\src\irReceive.cpp:739:2: warning: #warning "Old decoder function decodeHash() is enabled. Enable USE_STANDARD_DECODE on line 34 of IRremote.h to enable new version of decodeHash() instead." [-Wcpp]
 #warning "Old decoder function decodeHash() is enabled. Enable USE_STANDARD_DECODE on line 34 of IRremote.h to enable new version of decodeHash() instead."
  ^~~~~~~

kann ich nicht deuten und noch immer haut das mit dem Einbinden der IRremote nicht hin:
"Ungültige Bibliothek C:\Users\Schorsch\Documents\Arduino\libraries\msard2-code in keine Header-Dateien (.h) in C:\Users\Schorsch\Documents\Arduino\libraries\msard2-code gefunden gefunden"
Bleibt gesund, vielleicht schnalle ich es später mal, ich habe z.Zt. einen "Overflow" :confused:

Wenn du es nicht über den einfachen Weg schaffst, warum machst du es nicht manuell, wie ich es dir schon beschrieben habe.

Hallo Dieter,
habe ich gemacht. vielleicht habe ich dich nicht richtig verstanden. Was ist der Tip-Ordner?

schorsch55:
Hallo Dieter,
habe ich gemacht. vielleicht habe ich dich nicht richtig verstanden. Was ist der Tip-Ordner?

Oh...sorry.
Nachfrage hilft immer.
Da habe ich mich vertippt. Sollte Zip-Ordner heißen. Der Ordner, indem die Library-Dateien verpackt sind.

Ich bin beruhigt, das sowas mal auch anderen passiert. Aber auch das habe ich jetzt noch mal gemacht. Erst gelöscht, dann über Sketch-Biblio einbinden-Zip-Ordner und IRremote-3.1.0.zip gewählt. Zur Kontrolle in der Bibliotheksverwaltung geguckt, ist installiert.

schorsch55:
Ich bin beruhigt, das sowas mal auch anderen passiert. Aber auch das habe ich jetzt noch mal gemacht. Erst gelöscht, dann über Sketch-Biblio einbinden-Zip-Ordner und IRremote-3.1.0.zip gewählt. Zur Kontrolle in der Bibliotheksverwaltung geguckt, ist installiert.

Kannst du denn auch die Library im Menü in der IDE auswählen ?

Entschuldigung, hatte einen Notruf von meinem Doc, der jetzt auch Corona darf. Der musste eine spezielle Software zum Melden der Patienten installieren.
Ja, kann ich, wird unter "Beigetragen Bibliotheken" als IRremote angezeigt und ist dann im sketch mit include drin. Was mich aber stutzig macht ist diese Fehlermeldung mit diesem msard2... wie oben erwähnt.

Was soll denn diese msard2 sein? Verschiefe dieses Verzeichnis doch mal nach außerhalb der IDE.

Gruß Tommy

So, habe den Ordner libraries "geputzt". Ich hatte dort noch Ordner IRremote-3.1.0, IRremote-3.0.3 und Arduino-IRremote-master. Alle gelöscht, nur noch IRremote da, die library ist die von Ken Shirriff . Dann habe ich mir diese Seite angesehen,http://https://github.com/Arduino-IRremote/Arduino-IRremote#converting-your-2x-program-to-the-3x-version
in der scheinbar die Änderungen beschrieben sind., u.A. das mit dem decode. Aber selbst mit Übersetzung kann ich das nicht nachvollziehen, wo genau ich was durch was ersetzen soll. Zu doof eben. Ich glaube, hier liegt der Hund begraben.