Ciao , sono nuovo del forum , Stavo facendo un programma con arduino , per fare una prova su dei componenti che ho qua ed arduino per poi un progetto piu grandini . Fisicamente ricevitore ir , telecomando , buzzer , contatto reed . Questo programma fa scattare l'allarme quando il magnete è staccato dal conttato reed , quando il contatto reed ha di nuovo il magnete si può spegnere spegnere il buzzer da telecomando .
Codice
#include <IRremote.h>
int buzzer = 7;
int RECV_PIN = 11;
int reed = 8;
int allarme = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(reed,INPUT);
pinMode(buzzer,OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); //Avvio ricevitore
}
void loop(){
if (digitalRead(reed == HIGH)) {
Serial.print("sicuro");
}
else if (digitalRead(reed == LOW)){
allarme = 1;
}
if (allarme == 1){
tone(buzzer,3100,500);
delay(200);
tone(buzzer,3400,500);
delay(200);
}
if (irrecv.decode(&results)) {
if (results.value==0xFFA25D) {
allarme = 0;
}
delay(100);
}
irrecv.resume();
}
Quando lo compilo mi da questo strano errore le librerie di IRremote
Arduino:1.8.1 (Windows 7), Scheda:"Arduino/Genuino Uno"
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `__vector_7'
libraries\Arduino-IRremote-master\IRremote.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
Più di una libreria trovata per "IRremote.h"
Usata: C:\Users\shinra\Documents\Arduino\libraries\Arduino-IRremote-master
Non usata: C:\Program Files (x86)\Arduino\libraries\Arduino-IRremote-master
exit status 1
Errore durante la compilazione per la scheda Arduino/Genuino Uno.
Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"
Buonasera e benvenuto sul forum,
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentartiQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.
... dopo di che ... sembrerebbe che hai messo la libreria in più punti e questo NON va bene ... elimina quella che hai messo in C:\Program Files (x86)\Arduino\libraries\Arduino-IRremote-master e lascia solo quella nella tua cartella.
Verifica se la cosa si risolve o appaiono altri messaggi di errore.
Avevo gia fatto questa operazione , mi da un altro errore
Arduino:1.8.1 (Windows 7), Scheda:"Arduino/Genuino Uno"
In file included from C:\Users\shinra\Documents\Arduino\libraries\Arduino-IRremote-master\ir_Lego_PF.cpp:3:0:
C:\Users\shinra\Documents\Arduino\libraries\Arduino-IRremote-master\ir_Lego_PF_BitStreamEncoder.h: In member function 'int LegoPfBitStreamEncoder::getRepeatStopPause() const':
C:\Users\shinra\Documents\Arduino\libraries\Arduino-IRremote-master\ir_Lego_PF_BitStreamEncoder.h:107:38: warning: integer overflow in expression [-Woverflow]
return STOP_PAUSE_DURATION + 5 * MAX_MESSAGE_LENGTH - messageLength;
^
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `__vector_7'
libraries\Arduino-IRremote-master\IRremote.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
Più di una libreria trovata per "IRremote.h"
Usata: C:\Users\shinra\Documents\Arduino\libraries\Arduino-IRremote-master
Non usata: C:\Program Files (x86)\Arduino\libraries\Arduino-IRremote-master
exit status 1
Errore durante la compilazione per la scheda Arduino/Genuino Uno.
Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"
Più di una libreria trovata per "IRremote.h"
Usata: **C:\Users\shinra\Documents\Arduino\libraries**Arduino-IRremote-master
Non usata: **C:\Program Files (x86)\Arduino\libraries**Arduino-IRremote-master
... fai anche un'altra cosa ... spesso la IRremote va anche in conflitto con una delle librerie standard di Arduno, quella per il "robot".
Vai in C:\Program Files (x86)\Arduino\libraries\ e togli la cartella "RobotIRremote" (... salvatela da qualche parte ... dovesse mai servirti) ... vedi se migliora ...
+uwefed@uwefed+gpb01@gpb01
Ho riavviato l'IDE ... ogni volta che facevo un operazione anche delle cartelle , ho cercato su internet e non trovo nulla a riguardo
Io do sempre un suggerimento che, oltretutto, permette di avere più versioni che NON interagiscono tra loro ...
... disinstalla tutto, scarica la versione .zip, installala dove vuoi, nella cartella di Arduino crei un cartalle di nome "portable" ... in questo modo hai creato una versione "sand-boxed" ... tutto (le tue librerie, i core aggiuntivi, ecc.) viene messo li dentro e non va a cercare nulla in giro per il disco !
In questo modo io ho varie versioni e posso fare prove con tutte senza che una disturbi l'altra.
Sia con la ver. installata , sia con la portable installata da sola da sempre questo errore
Arduino:1.8.1 (Windows 7), Scheda:"Arduino/Genuino Uno"
In file included from C:\Users\shinra\Documents\Arduino\libraries\Arduino-IRremote-master\ir_Lego_PF.cpp:3:0:
C:\Users\shinra\Documents\Arduino\libraries\Arduino-IRremote-master\ir_Lego_PF_BitStreamEncoder.h: In member function 'int LegoPfBitStreamEncoder::getRepeatStopPause() const':
C:\Users\shinra\Documents\Arduino\libraries\Arduino-IRremote-master\ir_Lego_PF_BitStreamEncoder.h:107:38: warning: integer overflow in expression [-Woverflow]
return STOP_PAUSE_DURATION + 5 * MAX_MESSAGE_LENGTH - messageLength;
^
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `__vector_7'
libraries\Arduino-IRremote-master\IRremote.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
Più di una libreria trovata per "IRremote.h"
Usata: C:\Users\shinra\Documents\Arduino\libraries\Arduino-IRremote-master
Non usata: C:\Users\shinra\Desktop\arduino-1.8.1\libraries\Arduino-IRremote-master
exit status 1
Errore durante la compilazione per la scheda Arduino/Genuino Uno.
Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"
Mi fai capire COME installi tu le librerie ? ? ? Perché NON usi il "Library Manager" del IDE così hai sempre le librerie aggiornate e sei sicuro dell'installazione ?
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
Più di una libreria trovata per "IRremote.h"
Usata: C:\Users\shinra\Documents\Arduino\libraries\IRremote
Non usata: C:\Users\shinra\Desktop\arduino-1.8.1-windows\arduino-1.8.1\libraries\RobotIRremote
exit status 1
Errore durante la compilazione per la scheda Arduino/Genuino Uno.
Ok, questo è giusto ...
... vai in "C:\Users\shinra\Desktop\arduino-1.8.1-windows\arduino-1.8.1\libraries" ed elimina (... non rinomina) la cartella "RobotIRremote" che tanto serve solo per Arduino Robot.
Ok quello è un problema in meno , peccato ci sia ancora la parte sopra dell'errore
Arduino:1.8.1 (Windows 7), Scheda:"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
Errore durante la compilazione per la scheda Arduino/Genuino Uno.
Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"
Prima di usare le libreria occorre STUDIARLE e capire le risorse che usano perché, se si usano risorse in conflitto ... si hanno poi problemi.
Il compilatore ti sta chiaramemte dicendo che la Tone.cpp nella funzione `timer0_pin_port' sta andando in conflitto con la IRremote ... che usa lo stesso vettore di interrupt.
Prova ad usare la libreria NewTone (... sperando che sia compatibile con il nuovo IDE) al posto della Tone ... dovrebbe risolvere dato che usa un interrupt differente.