Comment interpréter le sens de rotation d’un commutateur rotatif numérique avec un PIC (4 / 5 étapes)

Étape 4: Logiciel principe de fonctionnement

La routine qui déduit le sens de rotation est interruption conduite. Le microcontrôleur que vous sélectionnez doit être capable d’interrompre à tout moment, il y a un changement sur une des broches (au moins) deux lorsque l’interruption est activée. Cela s’appelle l’interruption de changement de port sur le PIC16F877A. Chaque fois que l’interrupteur est tournée, le microcontrôleur est interrompu et l’exécution du programme sera envoyée à l’Interrupt Service Routine (ISR). L’ISR effectuera rapidement quel chemin l’interrupteur a été tourné, définir un indicateur approprié et revenir rapidement le programme principal. Il faut que cela se passe rapidement dans le cas où l’utilisateur fait pivoter le commutateur très rapide.

Nous savons que le modèle gris de AB codé répète chaque quatre positions donc si nous faisons le travaux de routine pour les transitions entre ces quatre positions ça va marcher pour tous les autres. Notez que dans l’un de quatre poste cycle, il y a quatre bords. Un front montant et un front descendant de l’entrée A ainsi que le B d’entrée. Le microprocesseur sera interrompu chaque fois qu’il y a une arête qui signifie que le microcontrôleur sera interrompu n’importe quel moment, que le bouton est tourné. En conséquence, l’ISR a besoin de comprendre sur la manière dont le bouton est tourné. Pour nous aider à trouver un moyen pour ce faire, nous nous tournons vers la forme d’onde pour une rotation dans le sens horaire.

Notez que quelque temps A a un avantage, sa nouvelle valeur est toujours différente de celle de B. Quand le bouton passe de la position 1 ou 2, une transition de logique-0 logique-1. B est toujours 0 pour cette transition et ne correspond pas à la nouvelle valeur d’a. Quand le bouton passe de la position 3 à 4, A possède un front descendant tandis que B reste logique-1. Notez encore une fois, que la nouvelle valeur de A et de B sont différentes. Droit maintenant, nous pouvons voir que n’importe quel moment Qu'a provoque l’interruption au cours de la rotation vers la droite, sa nouvelle valeur est différente de celle de B. Nous allons vérifier B pour voir ce qui se passe. B a un front montant lorsque le commutateur passe de la position 2 à 3. Ici, la nouvelle valeur de B est identique à A. Looking au dernier bord restant pour la rotation dans le sens horaire, B a un front descendant, passant de la position 4 à 5. (Position 5 est identique à la position 1.) La nouvelle valeur de B est identique à un ici aussi ! Nous pouvons maintenant faire certaines déductions ! Si A cause de l’interruption et la nouvelle valeur de A est différent de celui de B, la rotation a été dans le sens horaire. En outre, si B provoque l’interruption et la nouvelle valeur de B est le même que A, alors la rotation était dans le sens horaire.

Examinons rapidement le cas de la rotation dans le sens antihoraire. À l’instar de rotation vers la droite, rotation vers la gauche fera quatre interruptions dans un cycle : deux pour l’entrée A et deux pour l’entrée Input B. A a un front montant lorsque le bouton se déplace de la position 4 à 3 et un front descendant se déplaçant sur la position 2 à 1. Lorsque le bouton se déplace de la position 4 à 3, la nouvelle valeur de A est le même que la valeur de B. avis que lorsqu’une se déplace de la position 2-1 sa nouvelle valeur est la même que celle de B aussi bien. Maintenant, nous pouvons voir que lorsque A provoque l’interruption et sa nouvelle valeur correspond à celle de B la rotation était dans le sens antihoraire. Rapidement, nous regarderons entrée B pour tout vérifier. B provoquera une interruption lorsque le bouton se déplace de la position 5 (qui est le même que 1) à 4 et quand le bouton se déplace de position 3 à 2. Dans les deux cas, la nouvelle valeur de B ne correspond pas à la valeur existante de A, qui est l' opposé des cas lorsque B provoque l’interruption de la rotation dans le sens horaire. C’est une bonne nouvelle. Tout s’est retire comme il se doit.

En résumé, si un provoque l’interruption et sa nouvelle valeur ne correspond pas à la valeur de B ou si B provoque l’interruption et la nouvelle valeur de B correspond à la valeur de A nous savons il y avait des aiguilles. Nous pouvons vérifier les autres cas pour une rotation dans le logiciel ou on peut supposer que, parce que ce n’était pas le sens des aiguilles, c’était dans le sens antihoraire. Ma routine a simplement fait l’hypothèse.

Articles Liés

Compléter une horloge numérique avec détecteur de présence (RTC - alarme - PIR - Point de rosée température - humidité -)

Compléter une horloge numérique avec détecteur de présence (RTC - alarme - PIR - Point de rosée température - humidité -)

SalutJ'ai déjà fait quelques projets de pendules à lecture digitale avec Arduino, y compris les écrans LED et LCD, mais celui-ci est plus spécial car j'ai introduit une nouvelle fonctionnalité avec un capteur de mouvement (PIR).Voir la vidéoPrincipal
Comment interfacer des écrans numériques avec votre PC

Comment interfacer des écrans numériques avec votre PC

cette instructable vous montre comment faire pour lire les informations de votre jauge de température, chauffe-eau, température de barbecue, machine de coke, minuterie de lessive, etc. à partir de votre PC. Alors que les capteurs plus modernes ont au
Comment interpréter les résultats de laboratoire diabétiques (diabète rendu simple)

Comment interpréter les résultats de laboratoire diabétiques (diabète rendu simple)

ce n'est pas votre typique instructable car il ne vous montre pas comment faire quelque chose ou de fixer quelque chose. Au lieu de cela, cette instructable est conçue pour informer les gens qui n'ont pas une bonne compréhension sur le texte qui suit
Comment interpréter votre corps de signaux que vous êtes enceinte très tôt, avant d’acheter un Test de grossesse

Comment interpréter votre corps de signaux que vous êtes enceinte très tôt, avant d’acheter un Test de grossesse

Il n'est pas tout à fait à cette époque du mois, mais votre corps vous dit que quelque chose ne va pas. Heureusement, identifier les signes de grossesse dès le début est simple, et quelques signes majeurs indique qu'un test de grossesse est à l'horiz
Comment réparer « windows ne peuvent pas vérifier la signature numérique de ce fichier » avec winload.exe

Comment réparer « windows ne peuvent pas vérifier la signature numérique de ce fichier » avec winload.exe

mon école craptop est mort parce que j'ai supprimé les fichiers bootmgr du lecteur c, j'ai pensé qu'ils étaient les restes d'un programme. ils étaient toujours dans ma corbeille après que je l'ai fixé alors j'ai mis leur retour où ils se trouvaient.J
Comment faire des meubles de commande numérique par ordinateur

Comment faire des meubles de commande numérique par ordinateur

Le but de l'Instructable doit montrer au spectateur comment concevoir des meubles à couper à l'aide d'une machine à commande numérique par ordinateur (CNC). Meubles de commande numérique par ordinateur peuvent être conçus pour utiliser fournitures mi
Comment participer au concours de Photo numérique jours

Comment participer au concours de Photo numérique jours

grande photographie exige que tous les types de créativité et pas seulement en composition. Techniques, des astuces et gadgets maison débrouillards peuvent également vous aider obtenir la photo parfaite. Presque tout le monde a un secret de photograp
Comment faire pour obtenir des images de votre appareil photo numérique sur votre Mac

Comment faire pour obtenir des images de votre appareil photo numérique sur votre Mac

ici, nous apprendrons comment faire pour transférer des images de votre appareil photo numérique ou votre téléphone à votre ordinateur Macintosh, afin de pouvoir travailler avec eux comme fichiers d'images numériques.Étape 1: Connectez l'appareil à v
Comment faire un tutoruil avec votre appareil photo numérique bricolage

Comment faire un tutoruil avec votre appareil photo numérique bricolage

ce instuctable vous montrera comment faire un jeu tutoralÉtape 1: preperiration pour appareil photo et mon tutoriel http://www.youtube.com/watch?v=XPPL2C8geUUVidéo de comment faire sur mon appareil photoHeres mon tutorielÉtape 2: Enregistrement untin
Comment mod un bon sens commande de servo rc

Comment mod un bon sens commande de servo rc

dans ce instructable je vais vous montrer comment mod un bon sens de rc plumes servo pour rotation continue.les choses dont vous avez besoin pour cela "sont en mesure1. un couteau X-acto2. un tournevis de bijoux (ou juste un petit tournevis)3. coupe
Comment fêter Ayudha pooja (uniquement pour les technos)

Comment fêter Ayudha pooja (uniquement pour les technos)

Ayudha Puja est partie intégrante du Navratri festival, une fête hindoue qui est traditionnellement célébrée en Inde. Il est aussi appelé « Astra Puja », synonyme de Ayudha Puja. En termes simples, cela signifie « Culte des instruments ».donc dans ce
Comment arrêter le hoquet

Comment arrêter le hoquet

cette instructable vous montre comment arrêter le hoquet en 2 étapes rapides et faciles. Espérons qu'il vous plaira!!!Étape 1: Étape 1 Tenir votre nez et votre souffle.Étape 2: Étape 2 Avaler 3 fois. Si cela ne fonctionne pas, essayez à nouveau. N'ét
Comment arrêter un vélo avec dérapage minime.

Comment arrêter un vélo avec dérapage minime.

Voici un instructable sur comment arrêter un vélo avec dérapage minime. Im pas responsable de tout dommage causé.Étape 1: rupture Au lieu de bloquer les freins arrière, tirer doucement sur le break avant.Étape 2: Obtenir le Lift faire un minuscule en
Comment interprètes utilisent des tactiques inhabituelles pour influer sur les résultats de la négociation

Comment interprètes utilisent des tactiques inhabituelles pour influer sur les résultats de la négociation

Dans l'histoire, beaucoup de préoccupations quant à la capacité et l'exactitude des interprètes dans la reproduction des traductions dans une langue cible. Affaires judiciaires de la Cour même verdict dépendent fortement de ces traductions, et beauco