Ligne 1 : |
Ligne 1 : |
| {{SenseurIR-Nav}} | | {{SenseurIR-Nav}} |
| | | |
− | The good news is that it is very easy to hook up this sensor. Just connect the output to a digital pin. The bad news is that the Arduino's friendly digitalRead() procedure is a tad too slow to reliably read the fast signal as its coming in. Thus we use the hardware pin reading function directly from pin D2, thats what the line "IRpin_PIN & BV(IRpin))" does.
| + | La bonne nouvelle c'est qu'il est vraiment très facile<br /> |
| + | de raccorder ce senseur. Il suffit de connecter la sortie<br /> |
| + | sur une pin digital. |
| | | |
− | [[Fichier:IR-Arduino-1.jpg]]
| + | La mauvaise nouvelle, c'est que la procédure digitalRead()<br /> |
| + | d'Arduino qui est si facile d'emploi est un peu trop lente pour ce type<br /> |
| + | d'application. digitalRead() ne peut pas offrir une lecture fiable<br /> |
| + | lorsqu'un signal aussi rapide est fourni au microcontroleur. |
| + | |
| + | En conséquence, nous utilisons une fonction de lecture de type matérielle<br /> |
| + | pour lire directement l'information depuis la pin D2.<br /> |
| + | C'est exactement ce que fait la ligne "IRpin_PIN & BV(IRpin))". |
| + | |
| + | {{ADFImage|IR-Arduino-1.jpg|400px}} |
| | | |
| [http://github.com/adafruit/Raw-IR-decoder-for-Arduino Vous pouvez obtenir la dernière version du code sur le github d'AdaFruit.] | | [http://github.com/adafruit/Raw-IR-decoder-for-Arduino Vous pouvez obtenir la dernière version du code sur le github d'AdaFruit.] |
Ligne 10 : |
Ligne 21 : |
| | | |
| | | |
− | /* Raw IR decoder sketch! | + | /* Sketch de décodage de Signal IR brute! |
− | This sketch/program uses the Arduno and a PNA4602 to | + | Ce programme utilise un Arduino et un senseur/décodeur infrarouge |
− | decode IR received. This can be used to make a IR receiver | + | PNA4602 (ou équivalent) pour décoder le signal IR reçu. |
− | (by looking for a particular code) | + | |
− | or transmitter (by pulsing an IR LED at ~38KHz for the | + | Cela peut être utilise pour faire un récepteur infrarouge |
− | durations detected | + | (si l'on recherche un code particulier) ou un émetteur infrarouge |
| + | (en pulsant une LED IR à ~38KHz avec les temps d'impulsion détectés). |
| + | |
| + | Ce code est en domaine public, une traduction de la version AdaFruit |
| + | (voir plus bas). |
| + | Pour plus de tutoriels en FRANCAIS. |
| + | wwww.mchobby.be |
| + | wiki.mchobby.be |
| + | |
| + | Ce sketch est disponible sur |
| + | http://mchobby.be/wiki/index.php?title=Senseur_IR |
| + | |
| + | ----------------------------------------------------------------- |
| + | Code en domaine publique, vérifiez www.ladyada.net et adafruit.com |
| + | pour plus de tutoriels! |
| Code is public domain, check out www.ladyada.net and adafruit.com | | Code is public domain, check out www.ladyada.net and adafruit.com |
| for more tutorials! | | for more tutorials! |
| */ | | */ |
| | | |
− | // We need to use the 'raw' pin reading methods | + | // Nous devons utiliser la méthode de lecture 'brute' pour lire la |
− | // because timing is very important here and the digitalRead() | + | // la pin ('raw' pin reading method) parce qu'il est important d'avoir |
− | // procedure is slower! | + | // un temps de traitement très court (la procedure digitalRead() est |
| + | // une procedure plus lente!) |
| + | // |
| //uint8_t IRpin = 2; | | //uint8_t IRpin = 2; |
− | // Digital pin #2 is the same as Pin D2 see | + | // Digital pin #2 est identique à la pin D2 d'un ATMega voir |
− | // http://arduino.cc/en/Hacking/PinMapping168 for the 'raw' pin mapping | + | // http://arduino.cc/en/Hacking/PinMapping168 pour plus d'info sur le |
| + | // 'raw' pin mapping |
| #define IRpin_PIN PIND | | #define IRpin_PIN PIND |
| #define IRpin 2 | | #define IRpin 2 |
| | | |
− | // the maximum pulse we'll listen for - 65 milliseconds is a long time | + | // L'impulsion maximale que nous allons essayer de détecter. |
| + | // 65 millisecondes est une longue période de temps. |
| #define MAXPULSE 65000 | | #define MAXPULSE 65000 |
| | | |
− | // what our timing resolution should be, larger is better | + | // Résolution temporelle (timing resolution), plus c'est grand et |
− | // as its more 'precise' - but too large and you wont get | + | // plus ce sera précis (c'est donc meilleur) - mais trop grand signifie |
− | // accurate timing | + | // que nous n'aurons pas un chronométrage exact (fidèle) |
| #define RESOLUTION 20 | | #define RESOLUTION 20 |
| | | |
− | // we will store up to 100 pulse pairs (this is -a lot-) | + | // Stockage de 100 paires d'impulsions (On/OFF, c'est vraiment BEAUCOUP) |
− | uint16_t pulses[100][2]; // pair is high and low pulse | + | uint16_t pulses[100][2]; // Une pair est composée de d'impulsion HAUT (high) et bas (low) |
− | uint8_t currentpulse = 0; // index for pulses we're storing | + | uint8_t currentpulse = 0; // Index pour les impulsions qui seront stockées |
| | | |
| void setup(void) { | | void setup(void) { |
− | Serial.begin(9600);
| + | Serial.begin(9600); |
− | Serial.println("Ready to decode IR!");
| + | Serial.println("Pret à décoder le signal IR!"); |
| } | | } |
| | | |
Ligne 111 : |
Ligne 140 : |
| Si vous utilisez ce programme et utilisez une télécommande Sony sur laquelle vous pressez le bouton Marche (On), vous obtiendrez le résultat suivant... | | Si vous utilisez ce programme et utilisez une télécommande Sony sur laquelle vous pressez le bouton Marche (On), vous obtiendrez le résultat suivant... |
| | | |
− | [[Fichier:IR-Arduino-2.jpg]]
| + | {{ADFImage|IR-Arduino-2.jpg|400px}} |
| | | |
| Si vous ignorez la première impulstion OFF (correspond au temps nécessaire au programme Arduino pour s'activer à la première réception du signal InfraRouge) et la dernière impulsion ON (qui est le début du code suivant) vous identifierez le code POWER de Sony: | | Si vous ignorez la première impulstion OFF (correspond au temps nécessaire au programme Arduino pour s'activer à la première réception du signal InfraRouge) et la dernière impulsion ON (qui est le début du code suivant) vous identifierez le code POWER de Sony: |
Ligne 147 : |
Ligne 176 : |
| | | |
| | | |
− | {{ADF-Accord}} | + | {{SenseurIR-TRAILER}} |
− | | |
− | {{MCH-Accord}}
| |