Comment obtenir une fonction de micros() Arduino avec 0.5us précision

J’aime la programmation de microcontrôleur Arduino, et je l’utilise régulièrement dans la recherche aérospatiale, ainsi que dans les projets de maison. Comme je travaille sur mes nombreux projets maison, cependant, je me surprends qui ont besoin d’une minuterie très précise. C’est parce que mon objectif de projets de maison autour avion Radio commande (RC) et des signaux de communication de hobby RC sont axés sur la synchronisation des signaux. Ces signaux de communication RC est appelés PWM (Pulse Width Modulation) et PPM (Pulse Position Modulation). Dans les signaux, une déviation de bâton complet dans un seul sens, sur un émetteur radio à main, correspond généralement à ~ 1000us (microsecondes), et une déviation de bâton complet dans le sens inverse correspond à ~ 2000us.

Pour mesurer le temps dans ces signaux, j’ai utilisé tout d’abord l’Arduino micros() fonction, en conjonction avec les interruptions externes. La fonction intégrée de micros() Arduino est bon, mais pas assez bon pour mes besoins. Il a une précision de 4us (voir ici). Cela signifie que, si je lis dans un signal PWM que je connais est exactement 1500us (position Centre-bâton sur un émetteur manuel), je verrais lectures de 1496, 1504, 1500 et même parfois 1492 ou 1508us. Il s’agit de trop d’écart.

Alors... J’ai regardé et j’ai regardé et j’ai cherché une solution. La seule solution que j’ai pu trouver utilisé Timer1 du microcontrôleur Atmega328, qui est inacceptable pour mes besoins, car alors je perds d’utilisation de l' Arduino bibliothèque de servo. Donc, j’ai décidé de faire une tonne de lecture et de descendre dans les entrailles du microcontrôleur, accédant directement à temporisateurs de l’Atmel et écrire ma propre fonction de minuterie.

De cette entreprise est née ma Timer2_Counter « bibliothèque », qui fournit des fonctions qui peuvent être utilisés à la place de la fonction micros(), et qui fournissent une précision de 0.5us, qui est mieux que la fonction micros() 8 x !

Pour plus d’informations sur mon code, ainsi que la dernière version de mon code, y compris une liste complète de ses fonctions, reportez-vous à mon article ici :
Fonction micros() Arduino avec 0.5us précision - à l’aide de mon Timer2_Counter "Bibliothèque".

Articles Liés

Comment pirater une Time Capsule d’Apple avec une framboise Pi

Comment pirater une Time Capsule d’Apple avec une framboise Pi

Introduction de la « Capsule de Pi ». Il est actuellement le seul Apple Time Capsule, vous pouvez brancher sur votre téléviseur..., cela rend un Apple TV ? ;-)OK, ok, disons que vous avez un vieux Apple Time Capsule autour de la pose qui ne fonctionn
Comment faire une boîte d’ombre avec PVC - artisanat de Noël bricolage maison

Comment faire une boîte d’ombre avec PVC - artisanat de Noël bricolage maison

Comment faire une boîte d'ombre avec PVCL'autre jour, je travaillais sur un autre projet de PVC et mon épouse merveilleusement créative repéré ma création et a demandé à tourner dans une boîte d'ombre Noël. Voici donc un excellent moyen de faire une
Comment obtenir une carte de bibliothèque à Boston

Comment obtenir une carte de bibliothèque à Boston

bibliothèques sont étonnants. Vous avez peut-être oublié cela quelque part dans votre scolarité, quand une nuit épuisante blanche a remplacé les bons souvenirs que vous avez eu de l'heure du conte en maternelle. Je vous invite à réfléchir à nouveau.
Comment faire une sonde d’oscilloscope Arduino

Comment faire une sonde d’oscilloscope Arduino

ce instructabe vous montrera comment faire une sonde d'oscilloscope arduino pour ces liens, oscilloscope d'un poorman et un oscilloscope de canaux multiples pour arduino /Étape 1: Matériaux et composants Outilsfer à soudersoudureforet de Hobby (si vo
Comment faire une Table basse en carton avec chaises

Comment faire une Table basse en carton avec chaises

dans ce instructable je vais vous montrer comment faire une table basse en carton avec des chaisesÉtape 1: Matériaux et outils The materials:-carton (beaucoup)-colle (Elmer colle-All polyvalents) blanche (pas d'école colle)-des bâtons de colle chaude
Comment faire une sarbacane et fléchettes avec des articles ménagers

Comment faire une sarbacane et fléchettes avec des articles ménagers

comment faire une sarbacane et fléchettes avec des articles ménagersIl s'agit d'un très simple et pourtant puissant peu sarbacane que vous pouvez concevoir et faire à l'aide d'éléments trouvés à la maison.  Il peut pop ballons et percer une pomme dep
Comment obtenir une volumineuse queue de cheval

Comment obtenir une volumineuse queue de cheval

S'il vous plaît voir la vidéo ci-dessous pour savoir comment obtenir une queue de cheval volumineux:)Étape 1 :
Comment obtenir une corde dans un arbre (sans escalade il)

Comment obtenir une corde dans un arbre (sans escalade il)

si vous avez un arbre de soixante pieds dans votre jardin avec une branche qui est juste la mendicité à utiliser pour une balançoire. À l'exception, contrairement à moi, vous n'êtes pas un arboriculteur et vous avez peur des hauteurs. Bien - je voudr
Comment faire un synthétiseur sonore Arduino avec interface MIDI

Comment faire un synthétiseur sonore Arduino avec interface MIDI

Avec ce synthétiseur, vous pouvez faire Arduino reproduire des formes d'ondes totalement personnalisés. En raison de l'interface MIDI, il peut être connecté à n'importe quel instrument qui disposent et jouer avec le son souhaité.Étape 1: matériauxArd
Comment obtenir une vue magnifique de la Chine

Comment obtenir une vue magnifique de la Chine

la Chine est un endroit fascinant. Maintenant, je suis sûr que tout le monde sait que si vous réintégrez dans un petit hôtel dans un village agricole après un peu trop de Tsingtao, au moment où que vous étaler à vos pieds le matin vous trouverez un n
Comment construire une veilleuse papillon de neopixel avec Instamorph

Comment construire une veilleuse papillon de neopixel avec Instamorph

Ceci a été rendu à la #BUILDNIGHT de Instructables et Instamorph au Hackerspace Charlotte le 14 avril !Je voulais faire quelque chose avec des LED à l'intérieur donc j'ai intégré une barre de NEOPIXELS à l'intérieur !Le cœur de cette est un Arduino P
Comment obtenir une copie gratuite de hl2:dm, hl2 : lost coast et portail : tout d’abord trancher. (réservé aux utilisateurs de le nvidia)

Comment obtenir une copie gratuite de hl2:dm, hl2 : lost coast et portail : tout d’abord trancher. (réservé aux utilisateurs de le nvidia)

Cette instructable vous montrera comment obtenir des exemplaires gratuits de hl2:dm et hl2 : Remarque côte perdue : cela ne fonctionnera que si vous avez une carte nvidia dans votre ordinateur et il ne fonctionne qu'une fois.Étape 1: vérifier... alle
Comment obtenir une montre Apple

Comment obtenir une montre Apple

Il s'agit de la meilleure façon d'obtenir une montre apple.Voici les choses dont vous avez besoin :1. une voiture2. les piles3. Arduino4. smarts5. argent6. gazÉtape 1: 1ère étapeMontez dans votre voitureEtape 2: Aller à l'apple storeAcheter une montr
Comment obtenir une carte de bibliothèque à San Francisco

Comment obtenir une carte de bibliothèque à San Francisco

Livres gratuits ! Films gratuits ! Musique libre ! Cours gratuits et événements ! Connaissance libre !Où ? À votre bibliothèque publique locale bien sûr.Beaucoup de ressources sont disponibles si vous juste Walk-in, mais afin de prendre des choses d'