Arduino minuteur interrompt (5 / 6 étapes)

Étape 5: Exemple 3: DAC

Dans ce projet, j’ai utilisé un interrupt timer en sortie un signal sinusoïdal d’une fréquence spécifique de l’Arduino. J’ai soudé un simple 8 bit DAC R2R à broches numériques 0-7.  Ce DAC est construit à partir des résistances de 10k et 20 k disposés dans un multi-nivelés de diviseur de tension.  Je vais poster plus d’infos sur la construction de la DAC dans un autre instructable, pour maintenant, j’ai inclus la photo ci-dessus.
J’ai branché la sortie de la DAC à un oscilloscope.  Si vous avez besoin d’aide comprendre comment utiliser/lire l’oscilloscope, consultez ce tutoriel.  J’ai chargé le code suivant sur l’Arduino :

J’ai créé un interrupt timer qui incrémente la variable t à une fréquence de 40kHz.  Une fois que t atteint 627 il réinitialise à 0 (cela arrive avec une fréquence de 40 000/628 = 63 Hz).  Pendant ce temps, dans la boucle principale l’Arduino envoie une valeur comprise entre 0 (00000000 en binaire) et 255 (11111111 en binaire) à broches numériques entre 0 et 7 (PORTD).  Il calcule cette valeur avec l’équation suivante :

PORTD=Byte(127+127*Sin(t/100)) ;

Alors que t par incréments de 0 à 627 la fonction sinus se déplace à travers un cycle complet.  La valeur envoyée à PORTD est un signal sinusoïdal à fréquence 63Hz et amplitude 127, oscillant autour de 127.  Quand c’est envoyé par l’intermédiaire de l’échelle de résistance 8 bit DAC, il produit une oscillation de signaux environ 2,5 v avec une amplitude de 2,5 v et une fréquence de 63 Hz.

La fréquence de l’onde sinusoïdale peut être doublée en multipliant le terme (t/100) par 2, quadruplé en multipliant par 4 et ainsi de suite...
Notez également que si vous augmentez la fréquence de l’interruption timer trop en diminuant le Prédiviseur ou OCR2A l’onde sinusoïdale ne va pas afficher correctement.  C’est parce que la fonction sin() est coûteuse, et à des fréquences d’interruption élevé, il n’a pas assez de temps pour exécuter.  Si vous utilisez interruptions de haute fréquence, plutôt que d’effectuer un calcul au cours de la routine d’interruption, compte tenu de stocker des valeurs dans un tableau et d’appeler simplement ces valeurs à l’aide d’une sorte d’index.  Vous pouvez trouver un exemple de que dans mon arduino waveform generator-de stocker 20 000 valeurs de péché dans un tableau, j’ai pu d’ondes sinusoïdales de sortie avec une fréquence de 100kHz.

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