Tutoriel d’assembleur AVR 9 (6 / 7 étapes)

Étape 6: Filtres passe-bas et amplificateur de tension

Afin de nettoyer le bruit un peu et que notre clavier fonctionne mieux, nous voulons ajouter un couple de filtres passe-bas. Ceux-ci filtrent le bruit haute fréquence et permettent le signal de basse fréquence de traverser. Essentiellement de la façon de le faire est simplement d’ajouter un condensateur de 68 pf entre notre analogique d’entrée et de la terre et aussi un condensateur de 0,1 µF (c.-à-d. 104) entre notre PD4 (INT0) interruption et au sol. Si vous jouez avec ceux-ci tout en poussant les touches sur le clavier, vous serez en mesure de voir ce qu’ils font.

Ensuite, nous voulons faire un amplificateur de tension. Il s’avère que la deuxième rangée de touches sur le clavier (comme la touche rappel) mettent trop basse tension pour déclencher l’interruption INT0. La voie analogique est assez sensible pour lire les faibles tensions de ces touches, mais notre broche interruption n’obtient pas un bon assez front montant d’interrompre lorsque nous Appuyez sur ces touches. C’est pourquoi nous voudrions quelque moyen de s’assurer qu’une tension agréable rising edge frappe PD4 mais même les coups basse tension ADC0. Il s’agit d’une jolie commande puisque les deux signaux est en provenance du même fil de sortie de notre clavier. Il y a un certain nombre de moyens sophistiqués pour ce faire, mais nous n’allons pas utiliser notre clavier plus après ce tutoriel kluge so let's just ensemble une méthode qui fonctionne (à peine).

Vous devez tout d’abord brancher un contacteur externe pour remplacer l’interruption INT0 et contrôler l’affichage en appuyant sur une touche sur le clavier en cliquant sur le bouton. Cela a moins de problèmes de clavier et vous permettra d’être sûr que vos tensions sont correctement définies sur la table de correspondance du clavier. Une fois que vous savez que le clavier est branché correctement alors se débarrasser du bouton et remettre l’interruption INT0. Il y a des bruits graves et des problèmes de tension contrôle le clavier de cette façon il est donc bon de savoir que tout fonctionne pour que les problèmes futurs peuvent être isolés à la clé de INT0.

Lorsque vous câbler votre clavier et votre amplificateur de tension, il est très probable que les mêmes valeurs de résistance que j’ai utilisé ne vont pas au travail. Donc, vous devrez faire quelques essais pour obtenir les valeurs qui fonctionnent pour vous.

Si vous regardez le schéma que je joins à cette étape, vous verrez comment va fonctionner l’amplificateur de tension. Nous utilisons certaines résistances et deux transistors. Les transistors de façon travaille (voir les fiches techniques!) il y a une tension minimale dont vous avez besoin pour entrer sur la broche de base sur le transister (la fiche centrale) qui va saturer et permettre actuel s’écouler entre l’axe du collecteur et l’émetteur de la broche. Dans le cas du transistor 2N3904 que nous utilisons ici la tension est 0.65V. Maintenant nous prenons que la tension de notre sortie à partir du clavier, et nous ne voulons pas changer cette sortie donc nous mettrons une grosse résistance entre la sortie du clavier et de la base du premier transistor (j’ai utilisé 1Mohm). J’ai cela étiqueté comme R_1 dans le diagramme. Ensuite, nous souhaitons mettre en place un diviseur de tension pour que la base du transistor est « presque » à 0,65 volts déjà et c’est seulement une teeny weeny bit sera plus pousser sur le dessus et saturer. Ce teeny weeny bit proviendra de la sortie du clavier lorsque nous appuyer sur un bouton. Étant donné que les touches du clavier inférieurs mettent seulement une petite tension, nous avons besoin d’être très proche de saturation déjà dans l’ordre pour qu’elles soient assez. Les diviseur de tension résistants sont étiquetés R_a et R_b sur le diagramme. J’ai utilisé R_a = 1Mohm et R_b = 560Kohm, mais il est presque certain que vous aurez à jouer avec ces numéros pour l’obtenir droite pour votre configuration. Vous pouvez avoir un mur à proximité pour frapper votre tête contre et deux ou trois verres de scotch sur main (je recommande Laphroaig--cher, mais vaut la peine si vous aimez fument. Si les choses deviennent vraiment fous, puis un pot de BV et s’installer dans la nuit)

Laisse maintenant regarder comment les transistors vont nous faire un beau front montant va la clé de INT0 et générer notre interruption keypress. Tout d’abord regardons ce qui se passe quand je ne suis pas en appuyant sur une touche. Dans ce cas le premier transistor (étiqueté T1 dans le diagramme) est désactivé. Si aucun courant ne circule entre les goupilles de collecteur et l’émetteur. Ainsi, la base de l’autre transistor (étiqueté T2) sera tirée haute et donc il va saturer permettant courant de circuler entre les broches. Cela signifie que l’émetteur de T2 sera tiré faible puisqu’il est relié au collecteur qui lui-même est relié à la terre. Ainsi, la sortie qui va sur notre broche d’interruption INT0 keypress (PD4) sera faible et il n’y aura aucune interruption.

Maintenant ce qui se passe quand j’appuie sur une touche ? Eh bien la base de T1 dépasse de 0.65V (dans le cas des touches inférieures qu'il va seulement à peine plus haut!) et puis courant est autorisé à flux qui va tirer la base de T2 à basse tension et cela coupera T2. Mais nous voyons que lorsque T2 est désactivée, alors la sortie est tirée haute et donc nous allons obtenir un signal de 5V allant vers notre broche INT0 et il provoquera une interruption.

Notez que le résultat net est ici. Si nous poussons la 1 touche, nous obtenons 5V va PD4 sans modifier sensiblement la sortie va ADC0, et surtout, même si nous poussons Asterisk, 0, hacher ou de rappel, nous avons aussi obtenir un signal de 5V va INT0 et aussi causer une interruption ! Ceci est important car si nous venons de voir directement à partir de la sortie du clavier sur la broche de INT0, ces touches ne produisent presque aucun tension et ils ne seront pas suffisant pour déclencher cette broche d’interruption. Notre amplificateur de tension a résolu ce problème.

Articles Liés

Tutoriel d’assembleur AVR 11

Tutoriel d’assembleur AVR 11

Bienvenue au didacticiel 11 !Dans ce bref didacticiel, nous allons enfin construire la première partie de notre projet final.La première chose que vous devriez faire est d'aller à la toute dernière étape de ce tutoriel et voir la vidéo. Puis revenez
Tutoriel d’assembleur AVR 1

Tutoriel d’assembleur AVR 1

J'ai décidé d'écrire une série de tutoriels sur la façon d'écrire des programmes de langage d'assemblage pour le Atmega328p qui est le microcontrôleur utilisé dans l'Arduino. Si les gens restent intéressées, je vais continuer à mettre un une semaine
Tutoriel d’assembleur AVR 8

Tutoriel d’assembleur AVR 8

Bienvenue au didacticiel 8 !Dans ce bref didacticiel, nous allons prendre un peu d'une déviation de l'introduction de nouveaux aspects de la programmation en langage assembleur pour montrer comment déplacer nos composants de prototypage pour un circu
Tutoriel d’assembleur AVR 6

Tutoriel d’assembleur AVR 6

Bienvenue au didacticiel 6 !Tutoriel d'aujourd'hui sera un court où nous mettrons au point une méthode simple pour transmettre des données entre un atmega328p et un autre à l'aide de deux ports qui les relient. Nous puis prendre dés rouleau de tutori
Tutoriel d’assembleur AVR 2

Tutoriel d’assembleur AVR 2

Ce tutoriel est une continuation de "tutoriel d'assembleur AVR 1"Si vous n'avez pas passé par 1 tutoriel, vous devez arrêter maintenant et faire celui-là en premier.Dans ce tutoriel, nous allons poursuivre notre étude de programmation en langage
Tutoriel d’assembleur AVR 7

Tutoriel d’assembleur AVR 7

Bienvenue au didacticiel 7 !Aujourd'hui nous allons voir la première comment faire pour nettoyer un clavier et ensuite montrer comment utiliser les ports d'entrée analogiques pour communiquer avec le clavier.Nous ferons cela en utilisant les interrup
Tutoriel d’assembleur AVR 10

Tutoriel d’assembleur AVR 10

Bienvenue au didacticiel 10 !Désolé, qu'il a fallu si longtemps pour sortir cette nouvelle tranche mais c'est un moment assez intense de l'année. En tout cas, ici c'est !Nous avons parcouru un long chemin et vous êtes probablement déjà assez compéten
Tutoriel d’assembleur AVR 5

Tutoriel d’assembleur AVR 5

Aujourd'hui nous allons regarder de plus près aux divers emplacements mémoire dans le microcontrôleur Atmega328p et voir si nous pouvons mieux comprendre comment les choses sont stockés, où ils sont stockés et comment les pointeurs et les tables de r
Tutoriel d’assembleur AVR 4

Tutoriel d’assembleur AVR 4

Bienvenue au didacticiel numéro 4 !Dans ce tutoriel, nous allons construire un circuit qui simulera l'enroulement des deux dés. Ensuite, nous allons tout d'abord écrire un programme de force brute qui fait le travail. Puis nous permettra de simplifie
Tutoriel d’assembleur AVR 3

Tutoriel d’assembleur AVR 3

Bienvenue au didacticiel numéro 3 !Avant que nous commencions, je tiens à faire un point philosophique. N'ayez pas peur d'expérimenter avec les circuits et le code que nous construisons dans ces tutoriels. Changer les câbles près, ajouter de nouveaux
MRETV - vidéo, stéréo Sound et beaucoup plus d’un Arduino standard !

MRETV - vidéo, stéréo Sound et beaucoup plus d’un Arduino standard !

MRETV - vidéo, stéréo Sound et beaucoup plus d'un Arduino standard !Maintenant mis à jour pour Arduino 1.6.6 novembre 2015 !Utiliser seulement deux résistances et deux diodes pour générer la vidéo plein écran. Texte 47 x 29 de 8 x 8 caractères, doubl
Comment charger des programmes à un Arduino UNO de Atmel Studio 7

Comment charger des programmes à un Arduino UNO de Atmel Studio 7

Dans ce court Instructable, nous allons apprendre à charger un programme à une carte Arduino UNO utilisant Atmel Studio au lieu de l'IDE Arduino. Cela est utile lorsque vous avez besoin élaborer un programme à l'aide de plusieurs fonctions avancées o
Star Trek sonnette Hack

Star Trek sonnette Hack

J'ai toujours été un fan de la Star Treks et comme tel, j'étais très excité lorsque mon colocataire ramené un panneau la comm série style Star Trek original. Je n'avais jamais vu l'un d'entre eux, mais une recherche rapide nous a pris sur le site de
Carte de développement pour microcontrôleurs Attiny84

Carte de développement pour microcontrôleurs Attiny84

Il s'agit d'une carte de développement pour microcontrôleur Attiny84. Tha Attiny84 puce possède 11 broches adressables avec l'IDE Arduino, 8k de mémoire flash pour le stockage de programme et 512 octets de mémoire vive disponible pour les variables d