Un guide de démarrage complet pour rea (7 / 10 étapes)

Étape 7: IR télécommandes

Avec mon projet de détecteur de fumée, j’ai eu un plan d’avoir une fonction où vous pourriez désactiver temporairement l’alarme via la télécommande, pour quand le gâteau d’anniversaire se sort par exemple.

J’ai donc commencé par tutoriel IR de ladayada suivant :
http://www.Ladyada.net/learn/sensors/IR.html

C’était un moyen très rapide d’entrer dans l’IR et je suis varient reconnaissants pour cela, cependant, il a été conçu avec un arduino spacieux à l’esprit et je travaillais avec un ATtiny2313 qui n’ont nulle part près de suffisamment de RAM pour faire le travail.

À l’aide de son esquisse avec une petite télécommande que j’ai dû traîner, j’ai enregistré le bouton d’alimentation et obtenu ce :
int PowerSignal [] [2] = {}
ON, OFF (dans 10 de microsecondes)
{1138, 574},
{66, 76},
{66, 78},
{68, 70},
{70, 76},
{66, 76},
{68, 74},
{68, 78},
{68, 210},
{72, 216},
{68, 214},
{70, 216},
{78, 206},
{70, 214},
{70, 216},
{70, 216},
{68, 72},
{74, 72},
{68, 216},
{68, 76},
{66, 78},
{70, 214},
{68, 78},
{66, 72},
{70, 74},
{68, 216},
{74, 70},
{68, 214},
{72, 216},
{72, 68},
{74, 214},
{66, 216},
{70, 214},
{72, 5014},
{1134, 292},
{62, 5532},
{1142, 294},
{58, 0}} ;

38/hors paires, certains d'entre eux est trop grand pour un seul octet, donc si je devais le faire comme ça j’ai besoin 152 octets.
J’ai eu assez flash, bien qu’il faudrait une bonne quantité d’espace je pouvais épargner, mais si je devais enregistrer les signaux entrants comme ça je ferait sauter mon budget de RAM sans même tenir compte des autres choses que j’ai besoin de RAM pour.

Je pourrais avoir vérifié le code comme il est venu, mais puis calendrier devient un peu difficile.

J’ai pensé à elle pour un certain temps et j’ai remarqué un modèle dans mon code IR.
Les signaux étaient moins puis 1ms ou ils étaient plus élevés.
À l’aide de code du ladyada, il avait une tolérance de 20 %, ce qui signifierait un des faibles nombres correspondrait à l’autre.
Il n’y a essentiellement aucune différence entre un 680 et 780 microsecondes, avec la tolérance.

C’était un cas similaire pour la plus grande puis 1ms valeurs, il y a quelques exceptions, mais la plupart s’adapter à la règle.

Je me suis dit, que se passe-t-il si j’ai traiter comme bits unique, un 0 pour moins puis 1 ms et un 1 si il s’agissait d’une plus grande.

Emballé dans des comme ça j’ai venu à ceci :
11000000 = 0xC0
00000000 = 0 x 00
01010101 = 0 x 55
01010101 = 0 x 55
00000100 = 0 x 04
00010000 = 0 x 10
00010001 = 0 x 11
01000101 = 0 x 45
01011101 = 0x5D
1100

Après avoir ignoré le dernier nibble (la moitié d’un octet), j’ai été en mesure de stocker le signal entrant tout à la fois en seulement 9 octets, et le signal de comparer ne prendrait place 9 aussi bien !
Si je voulais plus de fonctionnalités je ne serait pas être à court de flash pour mémoriser les codes et étant si petit, qu'ils pourraient facilement ont été stockés en EEPROM si je devais.

Un avantage supplémentaire est que vérifier si le code correspondant a été aucune comparaison plus de simple octet puis 9.

Jetez un oeil sur le code ci-joint.

At le haut de qu'il y a un ensemble définit pour rendre le code plus facile à suivre et à entretenir.
Suivant qui est le modèle mentionné ci-dessus, stockée dans un tableau de char et à traiter en hexadécimal.
Tout le reste est essentiellement dans la fonction listenForIR qui s’appelle en permanence de la boucle principale.
Remarque, il s’agit de code de démo tout simple, dans un projet final, vous souhaiterez utiliser une interruption pour se réveiller lorsque l’IR détecte quelque chose.
J’ai une version du code qui fait cela.

Alors, comment fonctionne listenForIR ?
Permet de décomposer.

Nous commençons avec un certain temps boucle qui tente d’obtenir 9 octets de données de l’IR.
Nous allons commencer par le réglage de la minuterie pour un Prédiviseur 256.
À 1MHz, cela nous permet le temps maximum de 65ms sans débordement.

Récepteurs IR tenir leurs broches de données haute par défaut, aller en bas lorsque la réception d’un signal modulé.
Donc nous attendre, nous obtenons un minimum, et si l'on prend plus de temps puis 56ms attente nous sortir du pétrin.

Une fois, nous avons un faible, qu'il faut du temps, mais nous n’avez pas besoin à la fois plus longtemps qu’avant, et nous pourrions utiliser un niveau plus élevé de précision, donc nous avons changer le Prédiviseur à 8.
Si la dépression est maintenue pour plus puis 1 ms, puis nous sauter, sinon la boucle se termine tôt comme la broche va élevée.

Le bit de code suivant a une belle utilisation d’opérations de bits qui nous permet de garder le suivi des modifications rapidement et à moindre coût (pas cher en termes de cpu et l’utilisation de la mémoire) :

current_byte << = 1 ;
current_byte | = Etat ;
while(IR_LOW) ; dans le cas d’un peu plus long, puis le délai ci-dessus

Nous commençons en déplaçant tous les bits à gauche.
Nous avons ensuite ou dans la valeur de 1 ou 0, qui ajoute sa valeur à la LSB (moindre peu significatif).
Nous avons alors attendez, encas c’était une longue dépression qui nous avons sauté dehors sur plus tôt.

Ensuite, nous faisons la même chose pour la partie haute du code.

Dès que nous aurons tous les 8 bits (4 paires de basse et haute), nous stocker et recommencer.

En supposant que nous obtenons tous les 9 octets, nous sortir de la boucle et simplement comparer à notre code.
Si elles correspondent, nous activer/désactiver la LED.

Articles Liés

Guide du débutant complet pour les fichiers Raw et traitement Raw

Guide du débutant complet pour les fichiers Raw et traitement Raw

Une des premières choses que j'ai appris la photographie était sur un type de fichier connu comme un fichier Raw. Souvent quand une personne commence à la photographie, il ou elle n'est pas réaliser le potentiel des fichiers Raw. Dans un premier temp
Baileigh combinaison cisaillement frein Roll : Un Guide de démarrage rapide pour Pier 9

Baileigh combinaison cisaillement frein Roll : Un Guide de démarrage rapide pour Pier 9

La combinaison de Baileigh cisaillement/frein/rouleau se trouve à l'atelier de 9 Pier Autodesk dans l'atelier de métal. Si vous souhaitez travailler avec tôle au quai 9, cet outil est pour vous.L'outil Baileigh combinaison peut cisaille à tôle d'acie
Guide d’un Idiot complet pour rendre l’appareil de lumière LED planté Aquarium

Guide d’un Idiot complet pour rendre l’appareil de lumière LED planté Aquarium

Jetez un oeil à mon site Web pour plus de tutoriels et de poisson photos : www.playsofrays.comComme toujours, je vous écris cela pour les gens qui n'ont aucune expérience préalable avec LEDs, électriques et électronique fonctionne exactement comme j'
Guide de démarrage rapide pour 3Doodler 2.0

Guide de démarrage rapide pour 3Doodler 2.0

Étape 1: Faire connaissance avec le 3Doodler 2.0 Étape 2: Mettre en marche De l'allumer prise dedans et puis déplacez l'interrupteur à haute ou basse. (PLA/bois) lo (ABS, Flexy) hauteEtape 3: Attendez s'allument pour indiquer que c'est prêt Si vous l
Le Guide complet pour mettre sur une nouvelle ligne de pêche

Le Guide complet pour mettre sur une nouvelle ligne de pêche

Fait à l'extérieur de ressembler à ceci, ou pire encore ? Eh bien, pendant que vous attendez pour faire fondre et aller loin pourquoi ne pas Préparez-vous votre attirail de pêche pour le très attendu printemps.C'est le guide complet pour mettre sur u
Devenir un fabricant : le guide complet pour une photocopieuse entièrement fonctionnel : outils

Devenir un fabricant : le guide complet pour une photocopieuse entièrement fonctionnel : outils

Ce qui est un fabricant ? Un fabricant est un DIY'er, recycle et reuse'er et un artisan. Ils prennent whats pas et faire ce qui est Makers ont non seulement habilité, mais également comme la détermination de son projet. Que faut-il pour devenir un fa
Obtenir commencé avec le capteur sonar de Maxbotix - guide de démarrage rapide

Obtenir commencé avec le capteur sonar de Maxbotix - guide de démarrage rapide

The MaxSonar EZ1 fournit très courte à longue distance détection et télémétrie, dans un très petit paquet. Il peut détecter des objets allant de 0-pouces à pouces 254 (6,45 mètres) et fournit des informations de gamme de sonar de 6 pouces sur à 254 p
Mannequin de Linkit un Guide de démarrage

Mannequin de Linkit un Guide de démarrage

Depuis que j'ai reçu mon promotionnel Linkit une planche, j'ai été jouer avec elle pour le faire travailler et d'étudier ses différentes fonctionnalités. Dans un premier temps, que j'ai décidé de publier mon premier ible en utilisant le Linkit One d'
Guide de démarrage rapide : Print3d Mart

Guide de démarrage rapide : Print3d Mart

Il s'agit d'un guide simple mais complet pour configurer votre compte pour vous lever et courir sur Print3d Mart !Étape 1: Inscrivez-vous et créez un compte gratuitLa toute première chose que vous devez faire est de créer un compte gratuit. Aller à P
Android - le guide complet pour le déplacement installé apps utilisant ADB et emplacement d’installation de changer la valeur par défaut

Android - le guide complet pour le déplacement installé apps utilisant ADB et emplacement d’installation de changer la valeur par défaut

AVERTISSEMENT :Je ne peux pas dire si les méthodes expliquées fonctionnera sur tous les appareils, si boubt il faudra un dispositif enraciné et les accès root via ADB.Il y a toujours une chance que cela ne fonctionnera pas, donc faire une première sa
Etiquette de polymère de lithium : Un Guide complet pour travailler avec LiPo

Etiquette de polymère de lithium : Un Guide complet pour travailler avec LiPo

ce Instructable j'irai sur les bases du bon remplissage, déchargement, manutention, utilisation, stockage et le soin des batteries lithium-polymère donc vous pouvez les utiliser en toute sécurité et efficacement dans vos projets futurs.  Maintenant,
Guide de démarrage un Edison complet Intel se

Guide de démarrage un Edison complet Intel se

J'ai récemment acquis un IoT Intel Developer Kit, dans le cadre d'une campagne Instructable. Je suis familier avec certains modèles de traitement intégré et microcontrôleur environnements tels que l'Arduino, mais j'ai trouvé se lever et courir avec l
Un Guide complet pour l’Airsoft

Un Guide complet pour l’Airsoft

je jouent Airsoft depuis environ 2 ans maintenant et je suis accro à ce sport. Et oui, il est considéré comme un sport ! Pas assez de gens considèrent comme un, donc je veux garder ça va, vous savez. J'aime Airsoft parce qu'elle est compétitive, il p
Le Guide complet pour vivre en bonne santé, heureux et coffre-fort

Le Guide complet pour vivre en bonne santé, heureux et coffre-fort

Psst, vous pouvez garder un secret ? Si vous le pouvez, je vais vous dire le secret pour perdre du poids, obtenir en bonne santé et mener une vie longue et prospère. L'industrie du régime et d'exercice aux Etats-Unis est une affaire de plusieurs mill