ricevitore ir

salve a tutti,

mi e appena arrivato questo ricevitore ir:

stavo cercando di provare a usarlo, ma non sono riuscito. Uso un telecomando panasonic, e quindi la libreria Irremote dovrebbe leggere i suoi segnali. Provando e riproando non riesco come fare a collegarlo e neanche a programmarlo...

Aiutino? :sweat_smile:

Non si capisce quale è il problema. Bisogna vedere una cosa alla volta.
Primo, come lo hai collegato?
Qui una serie di schede per i collegamenti: ABC - Arduino Basic Connections - Megatopic - Arduino Forum
Scheda numero 20. Al fondo c'e' il sito con i pdf in versione alta definizione.

il problema principale e collegarlo =) Adesso leggo la scheda poi provo e vi dico

novita:

ho provato a collegare il ricevitore come dice un tutorial (le schede ABC non riesco ad ingrandirle) ovvero con la terra da una parte, 5 v dall altra e in mezzo ad un pin digitale, ma mentre provavo a programmare ho sentito che il ricevitore ir era molto caldo allora ho staccato. Come posso collegarlo?

sbagli i collegamenti, qua trovi quelli da usare

Grazie mille, sono finalmente riuscito a farlo funzionare. Ora pero non capisco una cosa: nel monitor seriale leggendo i dati arrivati schicciando il pulsante 1 dieci volte, sono tutti diversi!!

65B0B5F7
F3D7CFF2
5D522ACA
2464703A
1000809
98385FBA
86E9860A
3F6E9C4A
2D755C0A

come mai? (telecomando panasonic)

prendi il mio commento come una battuta... perché non ne so nulla.
ma ieri ho provato un circuito simile e mi pare di aver capito che premendo lo stesso pulsante si genera un codice che fa parte di un set di codici utilizzati per fare quell'azione. CIoè in sostanza ci sono N codici che indicano quell'azione.
Ripeto aspetta qualcuno che sarebbe stato in grado di risponderti anche l'altro ieri... :slight_smile:

Strano. Alcuni telecomandi quando tieni premuto lo stesso tasto inviano sempre stesso codice, altri mandano 1 volta il codice giusto e poi un codice univoco che indica "tasto ripetuto".

ri salve a tutti,
apro di nuovo questo topic perche ho riscontrato un problema: la mia intenzione era quella di creare un robot controllato in remoto, ma provando ho scoperto che la libreria iremote interferisce con i motori e non li fa piu funzionare.
Sopratutto un comando (sotto) e quello che commentato rende i motori funzionanti, ma quando lo discommento non vanno piu avanti.
Questo e lo sketch che ho usato all'inizio:

#include <IRremote.h>

int RECV_PIN = 2;
boolean Avanti=false;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  pinMode(3,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(13,OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop()
{

  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
  }
  if(results.value == 0x219EA05F) Avanti=true;
  if (Avanti==true) subAvanti();
}

void subAvanti()
{      
  Serial.println("Avanti");
  analogWrite(3,100);
  analogWrite(11,100);
  digitalWrite(12,HIGH);
  digitalWrite(13,HIGH);
}

e questo e quello che ho usato per capire come mai i motori non partivano:

#include <IRremote.h>

int RECV_PIN = 10;
boolean Avanti=false;

IRrecv irrecv(RECV_PIN);
decode_results results;


void setup()
{
  pinMode(3,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(13,OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop()
{
  analogWrite(3,100);
  analogWrite(11,100);
  digitalWrite(12,HIGH);
  digitalWrite(13,HIGH);
}

in particolare se commento questa riga i motori partono:

//decode_results results;

Vagamente mi ricordo qualcosa che lega la IRRemote al pin 3. Prova ad usarne un'altro.

mmm ho provato e mi da lo stesso problema. Non possometterla al pin 3 perche nella motor shield ufficiale è il pwm dal motore a :disappointed_relieved:

quindi come posso fare?

Nessuno lo sa?

Purtroppo ho idea che non è di facile soluzione ...

Se si guarda IRremote.cpp, si vede che la IRremore manipola Timer2 che ... guarda caso ... è il Timer che a sua volta controlla il PWM dei pin 3 e 11 ... :roll_eyes:

Non vedo altra soluzione che cambiare i pin dei motori.

Purtroppo, se la shield li ha cablati fissi, dovrai interrompere fisicamente i piedini e unirli, con un filo, a due piedini liberi di PWM che non siano sotto il controllo di Timer 2 ...

Ricorda che :

  • Timer 0 : controlla il PWM dei pin 5 e 6
  • Timer 1 : controlla il PWM dei pin 9 e 10

... scegli tu ... :slight_smile:

Guglielmo

P.S. : Ah ... occhio, la libreria Servo, usa Timer 1 e quindi, se domani ti servisse di controllare anche dei Servo ... non potresti avere PWM sui pin 9 e 10 ... tienilo a mente ...

Ommi che pasticcio... :astonished:
Adesso non posso provare ma appena ho in mano Arduino provo :frowning:

Dentro la IRRemoteInt.h c'e' scritto:

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  //#define IR_USE_TIMER1   // tx = pin 11-12
  //#define IR_USE_TIMER2   // tx = pin 9-10
  //#define IR_USE_TIMER3   // tx = pin 2-3-5
  #define IR_USE_TIMER4     // tx = pin 6-7-8
  //#define IR_USE_TIMER5   // tx = pin 44-45-46
.....   
#else
  //#define IR_USE_TIMER1   // tx = pin 9-10
  #define IR_USE_TIMER2     // tx = pin 3-11
#endif

L'else è per Arduino Uno, puoi cambiare da TIMER2 a TIMER1 ma quelli sono i pin.
Se tu usassi la Arduino Mega allora avresti più possibilità, potendo scegliere tra più timer

nid69ita:
Dentro la IRRemoteInt.h c'e' scritto:
...

Questa m'era scappata ... :stuck_out_tongue_closed_eyes: ... ottimo Nid ...

... almeno ha una possibilità in più per fare una prova :slight_smile:

Guglielmo

scusate quindi se io cambiassi il commento da timer 1 a timer 2 i pin del timer dalla libreria sarebbero 9-10??
In questo caso il 10 sulla motor shield e completamente libero e il 9 è il brake del motore A, pero se non usassi quel pin come brake A la libreria potrebbe funzionare?

(Grazie :slight_smile: )

Federico99:
scusate quindi se io cambiassi il commento da timer 1 a timer 2 i pin del timer dalla libreria sarebbero 9-10??

Si, commenta IR_USE_TIMER2 e togli il commento a IR_USE_TIMER1, dopo di che ... prova (non usando i pin 9 e 10 per il PWM, per altre cose le puoi usare) e verifica se il tutto funziona ...

Ricorda solo che così non potrai mai usare la libreria Servo che usa lo stesso Timer.

Guglielmo

no aspettate per il send la iremote usa il pin 3 per il recive lo si dichiara a piacere :grin:
ma te lo stampa questo?

Serial.println("Avanti");

intendo quando premi il pulsante dal telecomando :grin: