Contacts

Tachymètre numérique basé sur le microcontrôleur PIC16F628. Un tachymètre universel simple basé sur le microcontrôleur ATtiny2313. Ingénierie radio, électronique et circuits de bricolage Tachymètre simple sur le contrôleur de crête

Bon après-midi.
Je soumets à votre examen un schéma d'un simple tachymètre numérique sur AVR ATtiny2313, KR514ID2, et l'optocoupleur conçu par moi.
Je réserve tout de suite : il existe de nombreux schémas similaires sur Internet. Chaque implémentation a ses propres avantages et inconvénients. Peut-être que ma version conviendra mieux à quelqu'un.

Je vais peut-être commencer par celles. Tâches.
Tâche: il faut faire un tachymètre digital pour contrôler les tours du moteur électrique de la machine.
Conditions d'introduction: Il existe un disque de référence prêt à l'emploi pour 20 trous de imprimante laser... Il existe de nombreux optocoupleurs provenant d'imprimantes cassées. Tours moyens (de travail) de 4 000 à 5 000 tr/min. L'erreur dans les résultats affichés ne doit pas dépasser ± 100 tours.

Limitation: l'alimentation de l'unité de contrôle est de 36V (le compte-tours sera installé dans le même boîtier que l'unité de contrôle - plus de détails ci-dessous).

Petite parenthèse lyrique. C'est la machine de mon ami. La machine est équipée d'un moteur électrique PIK-8 dont les tours sont contrôlés selon un schéma modifié trouvé sur Internet. À la demande d'un ami, un simple tachymètre pour la machine a été développé.

Initialement, il était prévu d'utiliser ATMega16 dans le circuit, mais après examen des conditions, il a été décidé de se limiter à ATtiny2313, qui fonctionne à partir d'un générateur interne (RC) à une fréquence de 4 MHz.

Régime général comme suit:

Comme vous pouvez le voir, rien de compliqué. Pour convertir le code binaire en un code à sept segments, j'ai utilisé le décodeur KR514ID2, cela donne trois avantages à la fois.

  • Premièrement, économiser de l'espace dans la mémoire ATtiny2313 en réduisant le code de travail (puisque la procédure de conversion par programmation d'un code binaire en un code à sept segments est absente du firmware car inutile).
  • Deuxièmement : réduire la charge sur les sorties ATtiny2313, puisque Les LED "éclairent" KR514ID2 (lorsque le chiffre 8 est mis en évidence, la consommation maximale sera de 20-30 mA (typique pour une LED) * 7 = 140-210 mA ce qui est "beaucoup" pour ATtini2313 avec son passeport plein maximum (chargé ) consommation de 200 mA).
  • Troisièmement, le nombre de pattes "occupées" du microcontrôleur a été réduit, ce qui nous donne la possibilité à l'avenir (si nécessaire) de mettre à niveau le circuit en ajoutant de nouvelles fonctionnalités.

Assemblage de l'appareil implémenté sur une maquette. Pour cela, la planche d'un four à micro-ondes qui ne fonctionnait pas qui traînait dans les poubelles a été démontée. Un indicateur LED numérique, des transistors clés (VT1-VT4) et des résistances de limitation (R1-R12) ont été pris en kit et transférés à nouveau conseil... L'ensemble du dispositif est assemblé, si les composants nécessaires sont disponibles, avec des coupures de fumée en une demi-heure. Prêter attention: le microcircuit KR514ID2 a une branche d'alimentation positive - 14 et un moins - 6 (marqué dans le schéma)... Au lieu du KR514ID2, vous pouvez utiliser n'importe quel autre décodeur de code binaire dans un décodeur à sept segments alimenté en 5V. J'ai pris ce qui était à portée de main.
Les broches "h" et "i" de l'indicateur LED numérique sont responsables de deux points au centre entre les chiffres, elles ne sont pas connectées car inutiles.
Après l'assemblage et le firmware, à condition qu'il n'y ait pas d'erreurs d'installation, l'appareil commence à fonctionner immédiatement après la mise en marche et n'a pas besoin d'être configuré.

S'il est nécessaire d'apporter des modifications au firmware du tachymètre, un connecteur ISP est fourni sur la carte.

Dans le schéma, la résistance de rappel R12, évaluée à 30 kOhm, est sélectionnée de manière empirique pour un optocoupleur spécifique. Comme le montre la pratique, cela peut différer pour différents optocoupleurs, mais une valeur moyenne de 30 kΩ devrait assurer un fonctionnement stable pour la plupart des optocoupleurs d'imprimante. D'après la documentation de l'ATtiny2313, la valeur de la résistance de pull-up interne est de 20 à 50 kOhm, selon la mise en oeuvre d'un lot particulier de microcontrôleurs, (page 177 de la fiche technique de l'ATtiny2313), ce qui n'est pas tout à fait adapté . Si quelqu'un veut répéter le circuit, il peut d'abord inclure une résistance de rappel interne, peut-être pour vous, cela fonctionnera pour votre optocoupleur et votre MK. Cela n'a pas fonctionné pour moi pour mon set.

Voici à quoi ressemble un optocoupleur typique d'une imprimante.

La LED de l'optocoupleur est alimentée par une résistance de limitation de 1K que j'ai placée directement sur la carte de l'optocoupleur.
Pour filtrer les ondulations de tension, il y a deux condensateurs dans le circuit, électrolytique à 220 F x 25V (qui était à portée de main) et en céramique à 0,1 F, ( régime général l'inclusion du microcontrôleur est tirée du passeport ATtiny2313).

Pour la protéger de la poussière et de la saleté, la carte tachymètre est recouverte d'une épaisse couche de vernis automobile.

Remplacement de composants.
Vous pouvez utiliser n'importe quelle LED à quatre chiffres, deux doubles ou quatre simples. Au pire, assemblez l'indicateur sur des LED séparées.

Au lieu de KR514ID2, vous pouvez utiliser KR514ID1 (qui contient des résistances de limitation de courant à l'intérieur), ou 564ID5, K155PP5, K155ID9 (avec connexion parallèle des jambes d'un segment), ou tout autre convertisseur binaire à sept segments (avec changements dans la connexion des broches du microcircuit).

A condition que l'installation soit correctement transférée sur l'ATMega8 / ATMega16 MK, ce firmware fonctionnera comme sur l'ATtiny2313, mais il faudra corriger le code (changer les noms des constantes) et recompiler. Aucune comparaison n'a été faite pour les autres MCU AVR.

Transistors VT1-VT4 - tout courant faible fonctionnant en mode clé.

Principe d'opération basé sur le comptage du nombre d'impulsions reçues de l'optocoupleur en une seconde et leur recalcul pour afficher le nombre de tours par minute. Pour cela, un compteur interne Timer/Counter1 est utilisé, qui fonctionne dans le mode de comptage des impulsions arrivant sur l'entrée T1 (sortie PD5 branche 9 MK). Pour assurer la stabilité de fonctionnement, le mode de suppression des rebonds logiciels est activé. Les secondes sont comptées par Timer / Counter0 plus une variable.

Calcul RPM, ce sur quoi je voudrais m'attarder, se déroule selon la formule suivante :
M = (N/20) * 60,
où M est le nombre de tours par minute (60 secondes) calculé, N est le nombre d'impulsions de l'optocoupleur par seconde, 20 est le nombre de trous dans le disque de référence.
Au total, en simplifiant la formule, on obtient :
M = N * 3.
Mais! Le microcontrôleur ATtiny2313 n'a pas de fonction de multiplication matérielle. Par conséquent, la somme des décalages a été appliquée.
Pour ceux qui ne connaissent pas l'essence de la méthode :
Le nombre 3 peut être étendu comme
3 = 2+1 = 2 1 + 2 0 .
Si nous prenons notre nombre N, le décalons vers la gauche de 1 octet et ajoutons un autre N décalé vers la gauche de 0 octet - nous obtenons notre nombre N multiplié par 3.
Dans le firmware, le code AVR ASM pour une opération de multiplication sur deux octets ressemble à ceci :

Mul2octets3 :
CLR LoCalcByte // effacer les registres de travail
CLR HiCalcByte
mov LoCalcByte, LoInByte // charge les valeurs obtenues à partir de Timer / Counter1
mov HiCalcByte, HiInByte
CLC // nettoyer la vie du transfert
ROL LoCalcByte // Shift Through Carry Bit
ROL HiCalcByte
CVX
ADD LoCalcByte, LoInByte // additionne en tenant compte du carry bit
ADC HiCalcByte, HiInByte
ret

Contrôle des performances et mesure de la précision a été réalisée comme suit. Un disque en carton avec vingt trous a été collé au ventilateur du refroidisseur d'ordinateur. Les rotations des refroidisseurs ont été surveillées via le BIOS carte mère et ont été comparés aux indicateurs du tachymètre. L'écart était d'environ 20 tr/min à 3 200 tr/min, soit 0,6 %.

Il est tout à fait possible que l'écart réel soit inférieur à 20 tours, car les mesures de la carte mère sont arrondies à 5 tours (basés sur des observations personnelles pour une carte spécifique).
La limite supérieure de mesure est de 9 999 tr/min. La limite inférieure de mesure, théoriquement à partir de ± 10 tours, mais en pratique n'a pas été mesurée (une impulsion de l'optocoupleur par seconde donne 3 tours par minute, ce qui, compte tenu de l'erreur, devrait théoriquement mesurer correctement la vitesse à partir de 4 tours par minute et plus, mais en pratique cet indicateur doit être surestimé au moins deux fois).

Je m'attarderai séparément sur la question de la nutrition.
L'ensemble du circuit est alimenté par une source 5V, la consommation estimée de l'ensemble de l'appareil ne dépasse pas 300 mA. Mais, selon les termes du TK, le tachymètre doit être structurellement situé à l'intérieur de l'unité de contrôle du régime moteur, et l'unité reçoit du LATR pression constante 36V., Afin de ne pas tirer sur un fil d'alimentation séparé, un LM317 est installé à l'intérieur de l'unité dans la connexion passeport, en mode d'abaissement de l'alimentation à 5V (avec une résistance de limitation et une diode Zener pour se protéger contre les surtensions accidentelles) . Il serait plus logique d'utiliser un contrôleur PWM en mode convertisseur abaisseur, comme le MC34063, mais il est problématique d'acheter de telles choses dans notre ville, par conséquent, ils ont utilisé ce qu'ils pouvaient trouver.

Photos carte tachymètre et appareil fini.


Plus de photos







Malheureusement, il n'est maintenant plus possible de prendre des photos sur la machine.

Après le tracé des planches et le premier assemblage d'essai, la boîte avec l'appareil est passée à la peinture.

Si votre tachymètre ne fonctionne pas immédiatement après la mise en marche, avec une installation sciemment correcte :

1) Vérifiez le fonctionnement du microcontrôleur, assurez-vous qu'il fonctionne à partir du générateur interne. Si le diagramme est assemblé correctement, le cadran doit afficher quatre zéros.

2) Vérifier le niveau des impulsions de l'optocoupleur, si nécessaire, sélectionner la valeur de la résistance R12 ou remplacer le schéma de câblage de l'optocoupleur. L'option de connexion inversée de l'opto-transistor avec un pull-up vers le moins est possible, avec la résistance de pull-up interne MK activée ou non. Il est également possible d'utiliser un transistor dans un mode de fonctionnement à clé (inverseur).
optocoupleur

  • AVR
  • Ajouter des balises

    Le tachymètre est conçu pour mesurer le régime de presque tous les moteurs. À partir d'un moteur de cyclomoteur 1 cylindre à deux temps et se terminant par un moteur à 4 temps de 16 cylindres. Indication sur un indicateur numérique à 4 chiffres, précision de mesure 50
    tr/min.

    Après la mise sous tension, le tachymètre commence immédiatement à mesurer les tours. En appuyant une première fois sur le bouton, le nombre d'impulsions pour 1 tour s'affichera (par défaut, 2 impulsions pour 1 tour, ce qui correspond à un moteur 4 cylindres à 4 temps). L'affichage sera P-2.0. Appuyez à nouveau sur le bouton pour parcourir toutes les valeurs autorisées - de 0,5 à 8 impulsions par tour. Cela semble un peu étrange - 0,5 impulsion, mais cela signifie seulement qu'une impulsion sera en 2 révolutions. Après avoir réglé le nombre d'impulsions requis, après environ 5 secondes - l'appareil écrira les modifications dans la mémoire EEPROM non volatile (c'est-à-dire que lorsque vous remettez l'appareil sous tension, vous n'avez pas besoin de définir à nouveau le nombre d'impulsions), et passera au mode de mesure de la vitesse avec le nouveau nombre d'impulsions défini.

    Circuit imprimé en deux parties

    Photo par avocat

    Qu'est-ce que c'est du tout tachymètre? Un tachymètre est un appareil utilisé pour mesurer le régime (tours par minute) de tout corps en rotation. Les tachymètres sont fabriqués sur la base du contact ou du sans contact. Les tachymètres optiques sans contact utilisent généralement un faisceau laser ou infrarouge pour contrôler la rotation de n'importe quel corps. Cela se fait en calculant le temps nécessaire pour une rotation. Dans ce matériel, tiré d'un site anglais, nous vous montrons comment fabriquer un tachymètre optique numérique portable en utilisant Arduino Uno ... Considérons une version étendue de l'appareil avec un écran LCD et un code modifié.

    Circuit de tachymètre de microcontrôleur

    Liste des pièces pour le schéma

    • Microcircuit - Arduino
    • Résistances - 33k, 270 ohms, potentiomètre 10k
    • Élément LED - bleu
    • LED IR et photodiode
    • 16x2 écran LCD
    • Registre à décalage 74HC595

    Ici, au lieu d'un capteur à fente, un capteur optique est utilisé - la réflexion du faisceau. De cette façon, ils n'ont pas à se soucier de l'épaisseur du rotor, le nombre de pales ne change pas la lecture et il peut lire la vitesse du tambour - mais pas le capteur de fente.

    Donc, tout d'abord pour le capteur, vous avez besoin d'une LED IR émettrice et d'une photodiode. Comment l'assembler - montré dans instructions étape par étape... Cliquez sur la photo pour augmenter la taille.

    • 1. Vous devez d'abord poncer la LED et la photodiode pour les rendre plates.
    • 2. Pliez ensuite la bande de feuille de papier comme indiqué sur la figure. Créez deux de ces structures de manière à ce que la LED et la photodiode s'y emboîtent parfaitement. Collez-les ensemble et peignez-les en noir.
    • 3. Insérez la LED et la photodiode.
    • 4. Collez-les ensemble avec de la super colle et soudez les fils.

    Les cotes de résistance peuvent varier en fonction de la photodiode que vous utilisez. Le potentiomètre permet de diminuer ou d'augmenter la sensibilité du capteur. Soudez les fils du capteur comme indiqué sur la figure.

    Le circuit tachymétrique utilise un registre à décalage 74HC595 8 bits avec un écran LCD 16x2. Faites un petit trou dans le boîtier pour fixer l'indicateur LED.

    Soudez une résistance de 270 ohms à la LED et insérez-la dans la broche 12 de l'Arduino. Le capteur est inséré dans un tube cubique pour donner une résistance mécanique supplémentaire.

    Ça y est, l'appareil est prêt pour l'étalonnage et la programmation. Vous pouvez télécharger le programme sur ce lien.

    Vidéo du tachymètre fait maison


    Dispositif de sécurité avec haute tension- hérisson électrique. Aujourd'hui, nous continuerons à parler des structures nécessaires pour protéger notre maison. Le dispositif que nous allons maintenant considérer est destiné à la protection d'un appartement, d'un bureau, d'une maison d'été et d'une voiture. L'appareil s'appelle - un hérisson électrique à haute tension !

    Ce tachymètre numérique est adapté pour compter le nombre de tours de presque tout type de moteur à combustion interne. L'erreur de mesure du tachymètre n'est que de 50 tr/min. Un affichage LED à quatre chiffres est utilisé pour afficher le résultat.
    Pour régler le mode de fonctionnement, vous devez utiliser le bouton « Sélectionner ». La première pression affiche le mode de fonctionnement actuel à l'écran. Le mode de fonctionnement par défaut est le troisième, lorsque l'émetteur émet deux impulsions par tour de volant. En conséquence, l'inscription R-2.0 apparaîtra sur l'écran.

    Chaque pression suivante sur le bouton fait passer le mode de fonctionnement du tachymètre au suivant. Il y en a neuf au total : 0,5, 1, 2, 3, 4, 5, 6, 7, 8 impulsions / tour, respectivement, ils fixent le nombre d'impulsions émises par le capteur par tour de volant. Plus le nombre d'impulsions est élevé, plus la mesure est précise.

    Après avoir sélectionné le mode de fonctionnement, vous devez attendre 5 à 10 secondes. Pendant ce temps, le tachymètre enregistrera le mode de fonctionnement dans la mémoire du microcontrôleur et passera au mode de fonctionnement. À l'avenir, le tachymètre passera immédiatement en mode de fonctionnement à la mise sous tension. S'il devient nécessaire de réajuster le tachymètre, appuyez sur le bouton "Select" et réglez à nouveau le tachymètre.

    Il convient de prêter attention aux paramètres et à la structure du circuit d'entrée. Pour un type d'allumage particulier, certains ajustements de calibres sont possibles, du fait de différents appareils allumage dans différents types auto. Ceci est nécessaire pour que le tachymètre fonctionne bien avec les harmoniques fondamentales et ne réponde pas aux harmoniques supérieures. Sans une telle correction, un fonctionnement précis du tachymètre est impossible.

    La version mise à jour du firmware inclut la fonction de test des indicateurs. Ceci est nécessaire pour effectuer un test de détection de défaut du capteur de deux secondes.

    Fichiers joints:

    Micrologiciel

    Amplificateur de voiture monobloc simple sur TDA1560Q Bloc d'alimentation sans accélérateur de voiture sur IRS2153 pour ordinateurs portables et téléphones portables Connecteur USB externe dans l'autoradio

    Un tachymètre universel simple sur le microcontrôleur ATtiny2313

    Ce tachymètre simple sur ATtiny2313 peut compter le nombre de tours de n'importe quel moteur, qu'il soit polyphasé, multi-temps, etc. Il peut être utile dans les véhicules à moteur pour afficher la vitesse du moteur. Dans ce cas, le nombre de courses ou de cylindres du moteur n'a aucune importance. Il peut également être utilisé en conjonction avec des contrôleurs de moteurs électroniques, qu'ils soient monophasés ou triphasés.

    Le circuit du tachymètre est très simple - un microcontrôleur ATtiny2313 et un indicateur LED à quatre caractères. Par souci de simplicité, il n'y a pas de commutateurs à transistors. L'indicateur peut être utilisé à la fois avec une cathode commune et avec une anode commune - celle-ci est sélectionnée dans la source. Le tachymètre peut compter les tours par seconde et par minute, ce qui le rend complètement polyvalent.

    De plus, l'appareil a la capacité contrôle de programme luminosité : normale et faible. Si le cavalier est ouvert, la luminosité normale est réglée. Lorsque les contacts sont fermés, la luminosité diminue.


    Cliquez pour agrandir
    Passons directement au schéma. Si l'appareil est connecté directement à un contrôleur de moteur de niveau TTL, les impulsions peuvent simplement être appliquées à la broche 6 du microcontrôleur. Sinon, tu devrais courir convertisseur le plus simple niveau sur le transistor.

    Pour obtenir et stabiliser la tension d'alimentation de +5 volts, régulateur linéaire 1117 à faible décrochage pour une plus grande efficacité.

    Un indicateur d'un four à micro-ondes avec une anode commune est utilisé comme indicateur LED. Comme il contient déjà des résistances de 220 ohms, elles ne sont pas fournies sur le circuit imprimé.


    Sur le dessus circuit imprimé il y a jusqu'à 10 cavaliers, mais ils sont très faciles à installer.


    Des composants CMS sont installés au verso : il s'agit de deux condensateurs de 22 pF pour un résonateur à quartz, un microcircuit stabilisateur et des condensateurs de filtrage.

    Le résonateur à cristal du microcontrôleur ATtiny2313 peut être réglé sur 8 ou 4 MHz, il est réglé dans la source et contrôle le pré-échelonneur.

    Le mode d'affichage des tours - par seconde ou par minute - se règle de la même manière dans la source. Pour afficher le nombre de tours par minute, le nombre de tours par seconde calculé est simplement multiplié par le logiciel par 60. Il existe une possibilité d'arrondi logiciel des valeurs calculées. Ces nuances sont commentées dans code source.

    Lors du flashage du microcontrôleur, vous devez installer des fusibles :

    CKSEL1 = 0
    NIVEAU DE BOD0 = 0
    BODLEVER1 = 0
    SPMEN = 0

    La source est écrite en C dans Codevision AVR. Il a été emprunté à un autre projet - un tachymètre pour un hélicoptère à trois pales.

    En bref sur le réglage: il est nécessaire de déterminer à l'avance combien d'impulsions par tour seront fournies à l'entrée du tachymètre. Par exemple, si leur source est un contrôleur de moteur triphasé sur le LB11880, il sort par Trois impulsion par tour de broche. Par conséquent, vous devez spécifier cette valeur dans le code source.

    Le choix de l'indicateur - à anode commune ou à cathode commune (valeur inutile - commenter) :

    // # définit l'anode
    #définir la cathode

    Nombre d'impulsions tachymétriques pour 1 tour d'arbre :

    #define parBladeCnt 2

    Sélection de la fréquence du résonateur quartz - 0x00 pour 4MHz, 0x01 - pour 8MHz :

    #define Prescaler 0x01

    Sélection de l'affichage RPM :

    lTmp = (62500L * 60L * (long) wFlashCnt);

    Pour afficher le nombre de tours par seconde, vous devez supprimer la multiplication par 60 :

    lTmp = (62500L * (long) wFlashCnt);

    Afin de désactiver l'arrondi des valeurs, vous devez commenter les lignes suivantes :

    Si (parAffichage> 4)
    {
    wTpm ++ ;
    R+ = 10;
    }

    Étant donné que cette conception particulière utilise un indicateur très spécifique, aucune disposition de PCB n'est appliquée.



    Vous avez aimé l'article ? Partagez-le