Go Down

Topic: Problème d'infra rouge (Read 2483 times) previous topic - next topic

Kouaaks

Ah oui je vois, interessant ça ! Merci

Artouste


Ah oui je vois, interessant ça ! Merci

bonsoir
la librairie IrRemote
http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html
propose en exemple en programme de test qui permet de voir si la telco émet déjà sur des protocoles
courants :
NEC
SONY
RC5
RC6
SHARP
PANASONIC
JVC
SANYO
MITSUBISHI

chabot380

Bonsoir
Ton télé thomson vieux ou récent ?
Thomson ne fabrique plus de télé depuis un bon moment !
C'est du Vestel fabriqué en Turquie.
Vestel utilise le code RC5/6, donc 36KHz.
J'ai travaillé plus de 35 ans dans le dépannage télé !!

A+
chabot380
ORDINAUSORE 2Ghz AMD64 QUI S'ALLUME EN 48 SECONDES AVEC UBUNTU 12.04
ARDUINO UNO / Shield Ethernet / RTC DS1307
Programmation Python et j'apprends le C
Technicien Télé Vidéo à la retraite.

Kouaaks

Bonsoir, c'est un écran plat donc assez récent. Merci de l'information ! :)
Sinon j'ai bien vu la librarie IrRemote, mais je souhaiterai le faire moi meme et non passer par une librairie.
Je me pencherai ce week end sur ce que vous m'avez donné, les différents schéma et code que j'observe un peu mieux.
Bonne soirée

Kouaaks

Bonsoir! J'arrive avec de bonnes nouvelles :-)

Tout d'abord, grace à vos informations j'ai pu regarder le signal de ma télécommande via Audacity, et je l'ai bien annalysé et ce n'était en effet pas le meme que le signal qu'envoyait l'arduino.

Je me suis donc adapté mes propres réglages avec quelques tests, et tout marche parfaitement bien, j'ai du modifier la fréquence d'envoie et les impulsions de la LED IR afin d'obtenir au mieux le meme signal envoyé par ma télécommande, voyez ça :



Casiment identique, je vous met mon code :
Code: [Select]
int led=2;

void setup()
{
   pinMode(led,OUTPUT);
}

void pulseOn(long microsecs)
{
   cli();
   
   while (microsecs > 0)
   {
      digitalWrite(led, HIGH);
      delayMicroseconds(10);     
      digitalWrite(led, LOW);
      delayMicroseconds(10);       
      microsecs -= 14;
   }
   
   sei();
}

void TRAME_IR_SEND(int tr[13])
{
   for (int i=0; i<13; i++)
   {
      pulseOn(tr[i]);
      delayMicroseconds(530);
   }
}

void loop()
{
   delayMicroseconds(2400);
   
   int trame[13]={1200,630,320,630,320,630,320,320,630,320,320,320,320};
   TRAME_IR_SEND(trame);
 
   delay(23);
}


(du coup, je n'ai meme pas utilisé d'autre librairie)

Merci à tous, problème résolu.

Kouaaks

Petite remarque, il faut diviser par 2 les valeurs logiques : pour 1 s'était 1200, là il en faut 600 pour arduino.
De meme pour le 0 et et bit de start.

Go Up