IRremote.h library werkt niet meer?

Ik zou de ide installatie eens goed deinstalleren. Hierbij de de folder c:gebruikers/username/appdata/roaming/arduino15 opruimen

nicoverduin: Ik zou de ide installatie eens goed deinstalleren. Hierbij de de folder c:gebruikers/username/appdata/roaming/arduino15 opruimen

Ga ik doen, dankje Nico. Ik raak dan toch niet mijn code's kwijt?

nicoverduin: Ik zou de ide installatie eens goed deinstalleren. Hierbij de de folder c:gebruikers/username/appdata/roaming/arduino15 opruimen

Die map bestaat niet bij mij...

Bij staat ie zowel hier : C:\Users\Nico\AppData\Local\Arduino15 als hier: C:\Users\Nico\AppData\roaming\Arduino15 Mochten ze er staan dan beide verwijderen. Het kan zijn dat je appdata folder verborgen is.

nicoverduin: C:\Users\Nico\AppData\Local\Arduino15

Die werkte voor mij als ik AppData invoerde in de balk, de map is inderdaad verborgen. Heb alles in het mapje verwijderd. Nu kijken of het werkt.

Nog steeds dezelfde error na het mapje verwijderd te hebben:

Arduino: 1.6.12 (Windows 10), Board:"Arduino/Genuino Uno"

Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':

(.text+0x0): multiple definition of `__vector_7'

libraries\IRremote\IRremote.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1
Fout bij het compileren van board Arduino/Genuino Uno

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Je kan nog een nieuwere versie van de IDE proberen?

nicoverduin: Je kan nog een nieuwere versie van de IDE proberen?

Volgens mij heb ik de nieuwste al, moet ik Arduino verwijderen en dan weer opnieuw downloaden, of is er echt een updater voor ergens?

En je moet natuurlijk wel ff de IDE deinstalleren voor een herinstallatie

nicoverduin: En je moet natuurlijk wel ff de IDE deinstalleren voor een herinstallatie

Raak ik dan mn codes kwijt?

Eigenlijk is de beste manier met die IDE's is de zip file downloaden. Niet de installer. Die zip pak je uit op een andere lokatie. Bij mij is dat de D schijf in de root onder de naam Arduino_V1.12 bijv. Zo kun je verschillende versies van de IDE installeren. Updaten oid is er niet. En voor de Arduino ontwikkelaars is daar nog wel eea te verbeteren. Alternatief zou de Arduino-eclipse IDE kunnen zijn van Jantje. Die werkt vele vele vele malen beter maar je hebt wel even een kleine leercurve.

akatchi: Raak ik dan mn codes kwijt?

Als het goed is staan al jouw sketches nu in Documenten/Arduino. Zo ja dan niet.

nicoverduin: Als het goed is staan al jouw sketches nu in Documenten/Arduino. Zo ja dan niet.

Alles opnieuw geinstallerd nog steeds deze error..

Arduino: 1.8.1 (Windows 10), Board:"Arduino/Genuino Uno"

Build-opties gewijzigd, alles wordt opnieuw gebuild
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':

(.text+0x0): multiple definition of `__vector_7'

libraries\IRremote\IRremote.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

Meerdere bibliotheken gevonden voor "IRremote.h"
Gebruikt: C:\Users\NAAM\Documents\Arduino\libraries\IRremote
Niet gebruikt: E:\Arduino\libraries\RobotIRremote
Niet gebruikt: E:\Arduino\libraries\IRremote
exit status 1
Fout bij het compileren van board Arduino/Genuino Uno

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Nou zet dan je sketch hier maar ff neer

Je hebt nog steeds 2 keer de lib irremote in je libraries staan, wellicht verstopt in een andere

shooter: Je hebt nog steeds 2 keer de lib irremote in je libraries staan, wellicht verstopt in een andere

Volgens mij worden het er zelfs steeds meer......

shooter: Je hebt nog steeds 2 keer de lib irremote in je libraries staan, wellicht verstopt in een andere

Nee kijk mijn Library zet ik op schijf E: waar Arduino ook is op geïnstalleerd, al zet ik de Library IRremote erin dan plaatst die hem ook automatisch in C: bij documents Arduino.

Maar ik ben erachter gekomen dat het niet aan de library zelf licht. Ik had wat testjes gedaan en op de ene code werkt die wel en de andere niet. Ik denk dat het misschien komt door een combinatie van vele libraries door elkaar misschien?

Ik wil mijn code wel neerzetten maar hij is 400 regels.. Deze libraries gebruik ik: LiquidCrystal_I2C, SPI, EEPROM, Wire, IRremote, MFRC255

Je hebt 'simpel' een interrupt conflict. Een kleine testcode die alleen de tone library gebruikt en een kleine testcode die alleen de IRremote library gebruikt en beiden zouden moeten werken.

Een van de links die ik vond tijdens een beetje onderzoek geeft aan dat er een newtone library is; geen idee of het werkt.

Vervolgens moet je een (1) van de twee fixen ;) Beetje werk om het te begrijpen ;) En mogelijk niet altijd mogelijk :(

Ik heb de volgende code geprobeerd: Play a Melody using the tone() function. Op het moment dat ik in het begin #include toevoeg gaat het fout.

Er is een commentaar in tone.cpp dat aangeeft dat het alleen werkt met timer2 (of iets in die geest). Dus maar even graven in de IRremote bibliotheek. Open de file IRremoteInt.h en vind het onderstaande

//------------------------------------------------------------------------------
// Defines for Timer

Het zal ongeveer regel 230 zijn.

Net daarvoor heb je een stuk dat definieert welke timer gebruikt moet worden (begint bij regel 147 maar dat is niet zo relevant). Het eind van dat blok (net voor regel 230) bevat de volgende code

...
...
//ATtiny85
#elif defined(__AVR_ATtiny85__)
  #define IR_USE_TIMER_TINY0   // tx = pin 1

// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, etc
// ATmega48, ATmega88, ATmega168, ATmega328
#else
    //#define IR_USE_TIMER1   // tx = pin 9
    #define IR_USE_TIMER2     // tx = pin 3

#endif

Verander de #else

#else
    // 2017/01/20: verandert om timer 1 te gebruiken inplaats van standaard timer2
    #define IR_USE_TIMER1   // tx = pin 9
    //#define IR_USE_TIMER2     // tx = pin 3
#endif

De code zal nu timer 1 gebruiken in plaats van timer 2 en mijn probleem is opgelost. Vergeet niet het te documenteren. Geen garantie dat dit het oplost in jouw situatie aangezien je nog meer bibliotheken gebruikt.

Nu is er een (1) groot probleem met dit; al je bestaande (na compilatie) en toekomstige programmas zullen nu timer 1 gebruiken als je de IRremote bibliotheek gebruikt. Voor bestaande programmas kan dat erin resulteren dat ze nu niet meer compileren (waarschijnlijk __vector_11) en bij nieuwe programmas kun je dat probleem ook tegenkomen. De reden is dat er slechts een beperkt aantal timers beschikbaar is dus er zijn limieten aan wat je kunt bereiken.

Je kunt de IRremote bibliotheek ook lokaal gebruiken; ik heb dit niet verder bestudeerd om je daar nu mee verder te helpen.

sterretje: Ik heb de volgende code geprobeerd: Play a Melody using the tone() function. Op het moment dat ik in het begin #include toevoeg gaat het fout.

Er is een commentaar in tone.cpp dat aangeeft dat het alleen werkt met timer2 (of iets in die geest). Dus maar even graven in de IRremote bibliotheek. Open de file IRremoteInt.h en vind het onderstaande

//------------------------------------------------------------------------------
// Defines for Timer

Het zal ongeveer regel 230 zijn.

Net daarvoor heb je een stuk dat definieert welke timer gebruikt moet worden (begint bij regel 147 maar dat is niet zo relevant). Het eind van dat blok (net voor regel 230) bevat de volgende code

...
...
//ATtiny85
#elif defined(__AVR_ATtiny85__)
  #define IR_USE_TIMER_TINY0   // tx = pin 1

// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, etc // ATmega48, ATmega88, ATmega168, ATmega328

else

//#define IR_USE_TIMER1   // tx = pin 9
#define IR_USE_TIMER2     // tx = pin 3

endif



Verander de #else


else

// 2017/01/20: verandert om timer 1 te gebruiken inplaats van standaard timer2
#define IR_USE_TIMER1   // tx = pin 9
//#define IR_USE_TIMER2     // tx = pin 3

endif



De code zal nu timer 1 gebruiken in plaats van timer 2 en mijn probleem is opgelost. Vergeet niet het te documenteren. Geen garantie dat dit het oplost in jouw situatie aangezien je nog meer bibliotheken gebruikt.

Nu is er een (1) groot probleem met dit; al je bestaande (na compilatie) en toekomstige programmas zullen nu timer 1 gebruiken als je de IRremote bibliotheek gebruikt. Voor bestaande programmas kan dat erin resulteren dat ze nu niet meer compileren (waarschijnlijk __vector_11) en bij nieuwe programmas kun je dat probleem ook tegenkomen. De reden is dat er slechts een beperkt aantal timers beschikbaar is dus er zijn limieten aan wat je kunt bereiken.

Je kunt de IRremote bibliotheek ook lokaal gebruiken; ik heb dit niet verder bestudeerd om je daar nu mee verder te helpen.

Wow had niet gedacht dat het probleem zo ingewikkeld lag... Het heeft gewerkt, je bent een held bedankt!

Ik snap alleen niet wat ik nu veranderd hebt? Wat heeft dit voor gevolgen dan? En wat voor 'timer' gewoon letterlijk een timer die mijn tijd bij houdt zoals de millis()? Maar voor wat dan?