libreria <IRremote.h>

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

:confused:

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 :slight_smile:

 /* 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 :slight_smile:

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.....

:slight_smile:

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) :slight_smile:

--- per questa volta glie l'ho corretto io ... aveva messo i tag CODE ma ... il codice l'aveva poi messo fuori ... :frowning: - 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.