Publicité

Cachez cela dans votre salon et riez car la boîte TiVo est apparemment possédée par un démon qui exige de regarder les chaînes de magasinage ringard. Que votre objectif ultime soit d'éteindre tous les téléviseurs du quartier ou de construire un téléviseur universel Télécommande contrôlée par Siri, ce projet constitue un excellent point de départ pour apprendre les bases du contrôle infrarouge et récepteurs.

Dans cette «farce», nous allons créer un appareil qui enregistre, puis lit, une série de commandes à distance IR. Il fonctionnera avec n'importe quel appareil qui utilise une télécommande infrarouge, ou même un mélange d'appareils à la fois - enregistrant jusqu'à 10 pressions de touches.

Composants

Voici une liste des éléments dont vous aurez besoin pour ce projet:

  • Fils Arduino et patch
  • Récepteur IR, tel que TSOP382 - mais vous devriez pouvoir en trouver un compatible dans les anciens appareils électroniques. J'ai sorti le mien d'un contrôleur d'éclairage RVB de rechange. Ils ont généralement 3 pattes et sont noirs, avec un côté ressemblant à une LED qui a été coupée en deux et collée. Je suis sûr qu'il y a un mot technique pour cela.
    instagram viewer
  • LED émetteur IR, comme TIL38 - encore une fois, elles sont assez courantes, mais j'en ai acheté une nouvelle haute puissance chez Maplin; ils ont l'air identiques à n'importe quelle autre LED, alors assurez-vous de ne pas les mélanger dans votre kit électronique!
  • Résistance adaptée à votre LED IR - utilisez cette Calculatrice LED étant donné la tension d'alimentation (5 V de l'Arduino), et la tension et le courant directs de la fiche technique LED (généralement autour de 1,2 V @ 20 mA). Cela est sorti comme 220 ohms dans mon cas.
  • Bouton-poussoir et résistances 10k pulldown et 100 ohms.
  • Téléchargez le Bibliothèque à distance IR par Ken Shirriff de Github et placez dans votre Arduino / Bibliothèques dossier. Il y a aussi un exemple de code que nous utiliserons qui devrait ensuite être accessible depuis l'Arduino Ouvrir -> Bibliothèques menu.
Composants

Câblage

Abordez ce circuit en trois parties - le commutateur est un peu délicat, mais tout le reste est facile. Rappelez-vous que la jambe courte de la LED avec la face plate est la cathode (négative ou mise à la terre); la longue jambe est l'anode (positive).

schéma de circuit-ir-blague

Réception de signaux

Allez-y et ouvrez le bibliothèques / IRremote / IRrecvDemo exemple de code. Assurez-vous que RECV_Pin est défini correctement, compilez et téléchargez, puis ouvrez la console série à 9600 bauds. Prenez la télécommande que vous avez à portée de main, dirigez-la vers votre récepteur et commencez à appuyer sur les boutons. Différents boutons produiront des codes différents; certains indiqueront un appui long avec le code initial puis FFFFFF, tandis que différentes télécommandes peuvent simplement répéter le code à nouveau.

irrecv

Pour une vue plus détaillée des données reçues, consultez le IRrecvDump exemple à la place, qui indiquera à la fois le type de signal reçu (NEC 32 bits dans ce cas) et les valeurs brutes. Bon à savoir, mais dans la plupart des cas, vous ne voudrez que les valeurs décodées.

irdump

Répéter un signal

Nous n'écrirons pas notre blague aujourd'hui à partir de zéro, alors allez-y et consultez le IRrecord exemple. La complexité du code augmente considérablement ici, mais c'est surtout pour gérer différents types de codes IR - fondamentalement, voici ce qui se passe à l'intérieur de la boucle:

  • Vérifiez si le bouton est enfoncé, rejouez le signal actuellement stocké s'il l'est et répétez toutes les 50 ms jusqu'à ce qu'il soit enfoncé.
  • S'il n'est pas enfoncé et qu'un signal est détecté, enregistrez-le.

La plus grande limitation de cet exemple est qu'il ne fonctionne qu'avec un seul code à la fois, donc si vous appuyez sur un autre bouton de la télécommande, il écrasera le dernier. Le bouton rejoue simplement le tout dernier signal reçu. Compilez et exécutez le code pour pouvoir essayer ce répéteur de signaux de base. Pour lire un seul signal, cela fonctionne bien, mais cela est peu utile dans une farce ou autre.

La farce!

Modifions-le légèrement pour enregistrer au moins 10 signaux espiègles. Vous pouvez trouver le code entièrement modifié ici, mais voici un aperçu des modifications que j'ai apportées au cas où vous souhaiteriez essayer de le programmer vous-même:

  • Définissez 3 nouveaux tableaux de taille 10 pour stocker un ensemble de signaux à chaque détection, et un entier pour stocker la taille de ces tableaux.
  • Stockez un index de l'endroit où nous sommes actuellement dans ce tableau. Augmentez l'index chaque fois qu'un signal est détecté - mais n'augmentez pas si le signal est un code de répétition.
  • Une valeur booléenne qui cesse d'être enregistrée une fois que nous avons atteint le maximum.
  • Un booléen pour indiquer si nous sommes en mode lecture ou non, plutôt que d'avoir à maintenir le bouton enfoncé; également modifié la logique du bouton pour basculer cela.

Notez que le voyant LED de l'Arduino (broche 13) s'activera une fois la mémoire pleine. À l'heure actuelle, vous devez enregistrer 10 pressions sur les boutons - pas moins - et le mode de relecture attendra 1 seconde entre chaque relecture des boutons. Le voici en action:

Vous pouvez soit jouer avec plus de farces IR, soit considérer cela comme un bon début sur une épopée plus épique. projet domotique Guide domotique avec Raspberry Pi et ArduinoLe marché de la domotique est inondé de systèmes grand public coûteux, incompatibles entre eux et coûteux à installer. Si vous avez un Raspberry Pi et un Arduino, vous pouvez essentiellement réaliser la même chose à ... Lire la suite ; et n'oubliez pas de consulter tous les autres Projets Arduino. Partagez vos créations (ou problèmes) dans les commentaires, et montrez votre appréciation pour cet article en le partageant sur vos réseaux sociaux préférés!

Crédit d'image: DaGoaty

James est titulaire d'un BSc en intelligence artificielle et est certifié CompTIA A + et Network +. Il est le développeur principal de MakeUseOf et passe son temps libre à jouer au paintball VR et aux jeux de société. Il construit des PC depuis qu'il est enfant.