ciao a tutti, nel programma inserisco questa libreria #include <IRremote.h> lo sketch da errore
quando inserisco l istruzione tone /noTone vanno in contrasto .
c'è un rimedio oppure lascio perdere
ciao a tutti, nel programma inserisco questa libreria #include <IRremote.h> lo sketch da errore
quando inserisco l istruzione tone /noTone vanno in contrasto .
c'è un rimedio oppure lascio perdere
quanto ne so io non c'é rimedio. usano entrambi lo stesso timer.
Ciao Uwe
Puoi cambiare timer modificando la IRRemoteInt.h
Però per la Uno la scelta è tra Timer2 (usata anche da tone) e Timer1 (usata anche da servo).
Per la Mega sempre quei due ma la mega ha anche Timer3 e Timer4 "liberi".
https://arduino-info.wikispaces.com/Timers-Arduino
Ce l'ho pronta
/* MODIFICATA LIBRERIA IRremoteInt.h per conflitto timer
DA:
// Atmega8
#elif defined(__AVR_ATmega8P__) || defined(__AVR_ATmega8__)
#define IR_USE_TIMER1 // tx = pin 9
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
//#define IR_USE_TIMER1 // tx = pin 9
#define IR_USE_TIMER2 // tx = pin 3
#endif
A:
// Atmega8
#elif defined(__AVR_ATmega8P__) || defined(__AVR_ATmega8__)
#define IR_USE_TIMER1 // tx = pin 9
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
#define IR_USE_TIMER1 // tx = pin 9
//#define IR_USE_TIMER2 // tx = pin 3
#endif
*/
chissà come mai
Ciaoooo
ciao , metto queste istruzione all interno void setup ?
utilizzo un pin 9 per la LIBRERIA IRremote, e il pin 3
per l'altoparlante quindi l'istruzione tone nTone , o viceversa,
ho capito bene .
grazie per l'aiuto
metto queste istruzione all interno void setup ?
No, devi aprire il file IRremoteInt.h dentro ad arduino/library/IRremote e modificare come mostrato sopra
No, devi modificare la libreria IRremote.h: devi cercare tra le righe e sostituire
//#define IR_USE_TIMER1 // tx = pin 9
#define IR_USE_TIMER2 // tx = pin 3
// a
#define IR_USE_TIMER1 // tx = pin 9
//#define IR_USE_TIMER2 // tx = pin 3
nel tuo codice non cambia nulla.
Oops!
IRremoteInt.h non IRremote.h lo facciamo diventare pazzo ahahahha
... e quando scrivo codice faccio errori di distrazione così SEMPRE !!
.... a volte mi darei alla zappa.....
ok grazie, ragazzi del vostro aiuto appena avro tempo testo il tutto e vi faccio sapere
ho fatto la modifica nella libreria IRremote.h allego il codice con tanto di incazione dove sono intervenuto
visto che non sono molto esperto potreste dare voi un sguardo a quello che ho fatto grazie mille
ho fatto la modifica nella libreria IRremote.h
bho .. ci rinuncio
scusate allego parte del codice che ho modificato
#ifndef IRremoteint_h
#define IRremoteint_h
#if defined(ARDUINO) && ARDUINO >= 100
#include <Arduino.h>
#else
#include <WProgram.h>
#endif
// define which timer to use
//
// Uncomment the timer you wish to use on your board. If you
// are using another library which uses timer2, you have options
// to switch IRremote to use a different timer.
// Arduino Mega
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
//#define IR_USE_TIMER1 // tx = pin 9 //////--------->
#define IR_USE_TIMER2 // tx = pin 3 ///// -------> ho modificato questo
// a /////// -------> questo passaggio
//#define IR_USE_TIMER3 // tx = pin 5
//#define IR_USE_TIMER4 // tx = pin 6
//#define IR_USE_TIMER5 // tx = pin 46
// Teensy 1.0
#elif defined(__AVR_AT90USB162__)
#define IR_USE_TIMER1 // tx = pin 17
// Teensy 2.0
#elif defined(__AVR_ATmega32U4__)
//#define IR_USE_TIMER1 // tx = pin 14
//#define IR_USE_TIMER3 // tx = pin 9
#define IR_USE_TIMER4_HS // tx = pin 10
// Teensy 3.0
#elif defined(__MK20DX128__)
#define IR_USE_TIMER_CMT // tx = pin 5
// Teensy++ 1.0 & 2.0
#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
//#define IR_USE_TIMER1 // tx = pin 25
#define IR_USE_TIMER2 // tx = pin 1
//#define IR_USE_TIMER3 // tx = pin 16
// Sanguino
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__)
//#define IR_USE_TIMER1 // tx = pin 13
#define IR_USE_TIMER2 // tx = pin 14
// Atmega8
#elif defined(__AVR_ATmega8P__) || defined(__AVR_ATmega8__)
#define IR_USE_TIMER1 // tx = pin 9
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
//#define IR_USE_TIMER1 // tx = pin 9
#define IR_USE_TIMER2 // tx = pin 3
#endif
--- ma quante volte occorre ripetere che il codice va nei tag CODE e non in quelli QUOTE ? ? ? ... ho corretto io. - gpb01
scuste la prossima volta inseriro il codice nei tag code
Uhmm....
dove lo hai messo vai a modificarlo se hai un arduino mega
// Arduino Mega
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
.......
dovresti modificarlo al fondo se usi un arduino uno, nano,mini:
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
#define IR_USE_TIMER1 // tx = pin 9
//#define IR_USE_TIMER2 // tx = pin 3
#endif
Il mio era un pò diverso.....
le impostazioni nella libreria <IRremote.h> sono già come voi avete indicato allego codice
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
#define IR_USE_TIMER1 // tx = pin 9
//#define IR_USE_TIMER2 // tx = pin 3
#endif
L'incolla del codice devi farlo dentro i tag code: correggi e sarai più fortunato (se qualcuno non ti cazzia selvaggiamente)
--- per questa volta glie l'ho corretto io ... aveva messo i tag CODE ma ... il codice l'aveva poi messo fuori ... - gpb01
grazie della correzione , ma sono qui in questo forum imparare e per avere assisteza e o consiglio sulle
problematiche che riguardano arduino.
le impostazione date per la correzione della libreria sono gia di default questa non è sicuramente la soluzione
Dopo 2 pagine non abbiamo ancora capito se hai una Mega o una Uno :o
La IRRemote in internet è data di default come timer1, poi se tu hai già su timer2 che ne sappiamo:
https://github.com/z3t0/Arduino-IRremote/blob/master/IRremoteInt.h
E' la ufficiale IRremoteRobot dato con IDE che di default usa timer2, in quanto il robot usa la tone() e non usa servo:
https://github.com/arduino-libraries/RobotIRremote/blob/master/src/IRremoteInt.h
Questo non è il forum di un prodotto commerciale. Non c'e' una assistenza vera e propria, ci sono altri utenti come te, che rispondono in base alle proprie esperienze con Arduino e open source.