Arduino minuteur interrompt (1 / 6 étapes)

Étape 1: Convertisseurs et le registre de correspondance de comparer

L’Uno a trois minuteries appelé timer0 et timer1 timer2.  Chacun des timers a un compteur qui est incrémenté à chaque graduation de l’horloge de.  Interruptions de minuterie de la CCT sont déclenchées lorsque le compteur atteint une valeur spécifiée, stockée dans le registre de correspondance de comparer.  Une fois qu’un compteur minuterie atteint cette valeur, il efface (remise à zéro) sur le battement suivant de l’horloge de la minuterie, puis il va continuer à compter jusqu'à le comparer correspondre valeur à nouveau.  En choisissant le comparer correspond à la valeur et réglage de la vitesse à laquelle le minuteur incrémente le compteur, vous pouvez contrôler la fréquence des interruptions de minuterie.

Le premier paramètre que j’aborderai est la vitesse à laquelle le minuteur incrémente le compteur.  L’horloge de l’Arduino tourne à 16MHz, il s’agit de la plus grande vitesse que les minuteries peuvent incrémenter leurs compteurs.  À 16MHz, chaque graduation du compteur représente 1/16 000 000 de seconde (~ 63ns), donc un compteur aura 10/16 000 000 secondes pour atteindre une valeur de 9 (compteurs sont indexés de 0) et 100/16 000 000 secondes pour atteindre une valeur de 99.

Dans de nombreuses situations, vous trouverez qu’il est trop rapide de réglage de la vitesse de compteur à 16MHz.  Timer0 et timer2 sont des minuteries de 8 bits, ce qui signifie qu’ils peuvent stocker une valeur de compteur maximale de 255.  Timer1 est un temporisateur de 16 bits, ce qui signifie qu'il peut stocker une valeur de compteur maximale de 65535.  Une fois qu’un compteur atteint son maximum, il cocheront retour à zéro (cela s’appelle le débordement).  Cela signifie à 16MHz, même si nous avons sur le registre de correspondance de comparer la valeur du compteur max, interruptions produira toutes les 256/16 000 000 secondes (~ 16us) pour les compteurs de 8 bits et chaque 65 536/16 000 000 secondes (~ 4 ms) pour le compteur 16 bits.  De toute évidence, ce n’est pas très utile si vous souhaitez uniquement d’interrompre une fois par seconde.

Au lieu de cela, vous pouvez contrôler la vitesse de l’incrémentation du compteur minuterie à l’aide de ce qu’on appelle un diviseur.  Un Prédiviseur dicte la vitesse de votre minuterie selon la l’équation suivante :

(vitesse de minuterie (Hz)) = (vitesse d’horloge Arduino (16MHz)) / diviseur

Donc un 1 diviseur s’incrémente le compteur à 16MHz, un diviseur 8 il incrémentera à 2MHz, un Prédiviseur 64 = 250kHz et ainsi de suite.  Comme il est indiqué dans les tableaux ci-dessus, le diviseur peut être égal à 1, 8, 64, 256 et 1024.  (Je vais vous expliquer le sens de CS11 CS12 et de CS10 dans l’étape suivante.)

Maintenant, vous pouvez calculer la fréquence d’interruption avec l’équation suivante :

interrompre la fréquence (Hz) = (Arduino vitesse d’horloge 16 000, 000Hz) / (prescaler * (Comparez match Registre + 1))
+ 1 est dans là car le comparer correspondent aux Registre est zéro indexé

réarrangeant l’équation ci-dessus, vous pouvez résoudre pour la valeur de Registre compare match qui donnera à votre fréquence d’interruption souhaitée :

comparer le registre de correspondance = [16 000, 000Hz / (prescaler * désiré fréquence interrupt)] - 1
n’oubliez pas que lorsque vous utilisez des minuteries 0 et 2 ce nombre doit être inférieure à 256 et inférieure à 65536 de timer1

donc, si vous vouliez une interruption par seconde (fréquence de 1Hz) :
comparer le registre de correspondance = [16 000 000 / (prescaler * 1)] -1
avec un diviseur de 1024, vous obtenez :
comparer le registre de correspondance = [16 000 000 / (1024 * 1)] -1
= 15 624
depuis 256 < 15 624 < 65 536, vous devez utiliser timer1 pour cette interruption.

Articles Liés

Minuteur interrompt sur la DP32

Minuteur interrompt sur la DP32

Minuteries ! Je suis très heureux d'enfin être couvrant des minuteries sur ma planche favorite, le DP32!N'oubliez pas de façon à l'époque où j'ai écrit sur les interruptions externes ? Si vous n'êtes pas familier avec les interruptions et comment ils
Construire votre propre contrôleur (bon marché!) multifonctions sans fil caméra.

Construire votre propre contrôleur (bon marché!) multifonctions sans fil caméra.

IntroductionJamais imaginé de construire votre propre contrôleur de caméra ?Remarque importante : Les condensateurs pour le MAX619 sont 470n ou 0.47u.  Le schéma est correct, mais la liste des composants a été mal - mise à jour.Il s'agit d'une entrée
Switcher de son

Switcher de son

Avez-vous déjà eu votre musique coudés au travail et ne savais pas que quelqu'un a essayé de te parler.  Pire encore, avez-vous jamais eu envie de dormir au travail, mais n'avait pas une bonne façon de se réveiller si quelqu'un (comme votre patron) s
Faire un minuteur Arduino

Faire un minuteur Arduino

Hi, donc mon copain et moi mettons en place afin que nous fassions PCB´s. Actuellement, nous faisons une boîte d'exposition UV (éventuellement un autre instrucable), et pour cette zone, nous avions besoin d'une minuterie, donc c'est ce que nous avons
Minuteur de cuisine en utilisant un Arduino

Minuteur de cuisine en utilisant un Arduino

Si vous aimez cuisiner et avez l'habitude de laisser la gazinière sur trop longtemps, cela pourrait être un problème grave parce que personne n'aime les aliments brûlés. Pour résoudre ce problème, que je vais vous montrer comment construire votre pro
Audio stéréo avec Arduino

Audio stéréo avec Arduino

Récemment j'ai été annonce beaucoup de projets qui utilisent un 8 bits échelle de résistanceconvertisseur numérique analogique (DAC) et un Arduino à faire sonner. (voir la boîte d'effets vocaux Arduino, l'échantillonneur de tambour Arduino et mon tut
Ventilateur t/mn avec capteur à effet hall interne et Arduino (Intro à interrompre la matériel et écran LCD)

Ventilateur t/mn avec capteur à effet hall interne et Arduino (Intro à interrompre la matériel et écran LCD)

Pour mon autre projet pour le travail, j'ai dû mesurer la vitesse de rotation du rotor en révolutions par Minute (tr/min) d'un ventilateur d'ordinateur mis à jour le. Il avait trois fils qui sortent et qui fait TIC TAC moi que peut-être qu'il a un mo
Minuterie de cuisine Arduino avec une introduction aux interruptions de minuterie

Minuterie de cuisine Arduino avec une introduction aux interruptions de minuterie

Bienvenue sur mon premier instructable,J'ai décidé de faire un projet assez simple d'entrer dans le monde instructable. Ce projet consiste à faire une minuterie de cuisine simple avec un Arduino Uno. Donc je vais donner une petite introduction à l'éc
Arduino à rebours avec les boutons de réglage

Arduino à rebours avec les boutons de réglage

Dans ce guide de Instructables, je vais vous montrer comment faire votre propre compte à rebours Arduino deux chiffres. J'ai fait mon propre circuit en utilisant le microcontrôleur ATmega328 mais il s'agit d'une étape facultative. Dans ce guide je va
CO2 Laser eau Flow Monitor - Arduino alimenté / Windows contrôlée

CO2 Laser eau Flow Monitor - Arduino alimenté / Windows contrôlée

Alarme et CO2 Laser eau Flow MonitorPropulsé par un Arduino et contrôlées par un logiciel personnalisé sur un PC WindowsAfin de prolonger la vie d'un CO2 tube de laser, il est nécessaire à pomper l'eau à travers elle de refroidissement pendant son fo
Arduino personnalisé MIDI Controller

Arduino personnalisé MIDI Controller

Bonjour et Bienvenue à cette instructable sur comment construire un contrôleur MIDI USB personnalisé, bon marché et facile, basé sur Arduino. Les meilleures nouvelles : aucun souci avec interfaces USB-MIDI ou outils logiciels tels que MIDI sans poil,
Une maison de Smart Wireless (était : simulateur de maison et alarme avec Arduino ou Atmega328 (mise à jour de mai 2016))

Une maison de Smart Wireless (était : simulateur de maison et alarme avec Arduino ou Atmega328 (mise à jour de mai 2016))

Note : là maintenant est un android bluetooth control app ibble pour ce projetRemarque : Bien que cela a commencé comme un projet de simulation de ma présence à la maison, il a grandi dans une maison intelligente, c'est pourquoi j'ai rebaptisé cet In
Minuterie de compte à rebours Arduino simple 7 segment

Minuterie de compte à rebours Arduino simple 7 segment

Dans ce guide de Instructables, je vais vous montrer comment faire un compte à rebours - à deux chiffres - simple en utilisant la carte de Arduino uno et affichages à 7 segments.Nous serons en mesure de régler la minuterie dans notre esquisse de prog
Raspberry Pi et Arduino : construire des systèmes fiables avec les minuteries de chien de garde

Raspberry Pi et Arduino : construire des systèmes fiables avec les minuteries de chien de garde

Résumé : Dans ce Instructable, nous examinons comment construire des systèmes informatiques plus fiables à l'aide de minuteurs de chien de garde. Nous montrons comment configurer et utiliser le Raspberry Pi et minuteries de chien de garde interne Ard