|
ARDUINO
Récepteur de télécommande IRDA... |
Ce petit montage extrêmement simple à réaliser va vous permettre de décoder les émissions issues de télécommande infra rouge de téléviseur.
RÉALISATION :
Une fois de plus, je vais devoir vous expédier à la déchetterie, à la cave ou
au grenier pour y récupérer :
- un vieux téléviseur, ou
- un vieux lecteur de DVD, ou
- un vieux magnétoscope, ou
- un décodeur DVB-T,
ou tout autre équipement avec sa télécommande.
Prenez tout si vous voulez, ça en fera pour les copains...
Précision, vous pouvez abandonner la cafetière de Madame.
Ça ne fonctionnera pas, rassurez la :-)
On sort le tournevis et on fait chauffer le fer à souder... Ça gagnera du temps...
Il va falloir démonter l'équipement.
La partie qui va nous intéresser se trouve dans la façade de l'appareil.
Vous pouvez en profiter pour repérer le brochage.
Vous devriez facilement trouver la masse, l'alimentation et la sortie du signal
Le circuit déposé, voici le composant qui nous intéresse...
LE COMPOSANT :
Le composant recherché est la plupart du temps identique à ce modèle TSOP17xx
XX représente la fréquence reçue par le photo transistor.
Bien souvent ce sera un TSOP1738 (38kHz), mais vous pouvez en trouver d'autres.
Cliquez sur la photo pour le DataSheet de ce composant :
Si vous tombiez sur un modèle différent :
Il ne vous restera plus qu'a identifier la référence et à rechercher le DataSheet, mais sans grande difficulté.
Si les pins sont suffisamment longues, vous pouvez extrapoler directement sur
la BreadBoard.
Auquel cas, vous pouvez réaliser ce petit adaptateur bien pratique.
LA LIBRAIRIE :
La librairie qui va être nécessaire pour l'utilisation de ce composant
s'appelle IRRemote.
Attention, elle est disponible en plusieurs version suivant votre IDE : 0.0.23
ou 1.x.x.
Vous n'avez qu'à copier les fichiers dans le répertoire Libraries de votre IDE
Je ne mets volontairement pas de liens car elle évolue encore.
Tapez simplement sur votre moteur de recherche préféré les mots clefs : Arduino
IRRemote
Il serait surprenant que vous ne trouviez pas votre bonheur dès les premières
suggestions.
CONSEIL D'UTILISATION :
Lecture des codes de la télécommande :
Le programme d'exemple se nome IRrecvDemo.
Raccordez le montage comme décrit :
V+ = +5V
V- = GND
Signal sur la pin Digital_11
Téléchargez le bout de code dans votre Arduino et lancez Terminal
Vous n'avez plus qu'à lire les codes pour chaque touche de votre
télécommande.
Faites un petit tableau et notez : "Touche = Code"
Autres télécommandes :
Vous ne disposez pas de la télécommande d'origine. Qu'à cela ne tienne...
N'importe quelle télécommande universelle du commerce conviendra.
De plus, ces télécommandes sont bien souvent dotées de fonction étendu : TV -
RADIO - SAT - TUNNER...
Une bonne raison pour étendre les possibilités, simplement en changeant.
EXEMPLE D'APPLICATION :
Ce petit exemple de code glané sur le WEB pour vous faire une petite démo des possibilités :
LCD RS - Pin D2
LCD EN - Pin D4
LCD DB4 - Pin D8
LCD DB5 - Pin D9
LCD DB6 - Pin D10
LCD DB7 - Pin D11
Récepteur IRDA - Pin D12
/* The following program uses the IRremote library and displays the value of the button being pressed on the LCD */ #include <IRremote.h> #include <LiquidCrystal.h> /* List of Values corresponding to numbers of the remote being pressed, remember to replace these values with the values you get. 1 16 2 2064 3 1040 4 3088 5 528 6 2576 7 2960 8 3600 9 272 0 2320 */ // initialize the library with the numbers of the interface pins LiquidCrystal lcd(2,4,8,9,10,11); int RECV_PIN = 12; IRrecv irrecv(RECV_PIN); decode_results results; int remote = 0, display_value=0; void setup() { lcd.begin(16,2); irrecv.enableIRIn(); // Start the receiver } void loop() { if (irrecv.decode(&results)) { remote = results.value; switch(remote) { case 16 : display_value=1; break; case 2064 : display_value=2; break; case 1040 : display_value=3; break; case 3088 : display_value=4; break; case 528 : display_value=5; break; case 2576 : display_value=6; break; case 2960 : display_value=7; break; case 3600 : display_value=8; break; case 272 : display_value=9; break; case 2320 : display_value=0; break; } lcd.clear(); lcd.print(display_value); irrecv.resume(); // Receive the next value } } |
Des questions, des commentaires en direct ?
© 10/07/2013 - Dernière modification : 21/07/2016 - F4CVM / Pascal