Passer les réveil Arduino (2 / 2 étapes)

Étape 2: Code

// TONES ==========================================

Commencez par définir la relation entre / / note, période et fréquence. #define c 3830 / / 261 Hz #define d 3400 / / 294 Hz #define e 3038 / / 329 Hz #define f 2864 / / 349 Hz #define g 2550 / / 392 Hz #define a 2272 / / b 440 Hz #define 2028 / / 493 Hz #define 1912 C / / 523 Hz / / définir une note spéciale, « R », pour représenter un repos #define R 0 / / SETUP === / / Set up haut-parleur sur une goupille PWM (numérique 9 10 ou 11) int speakerOut = 9 ; int speakerOnTime = 250 ; Déclarer redOnTime un int et la valeur 250 mseconds int speakerOffTime = 0 ; Déclarer redOffTime un int et de 250 / / voulons-nous débogage sur hors série ? 1 pour Oui, 0 pour aucune int DEBUG = 1 ; int redled = 10 ; Déclarer redLEDPin un int et la valeur broche 20 int redledOnTime = 250 ; Déclarer redOnTime un int et la valeur 250 mseconds int redledOffTime = 0 ; Déclarer redOffTime un int et la valeur 250 int yellowled = 11 ; Déclarer redLEDPin un int et la valeur broche 20 int yellowledOnTime = 250 ; Déclarer redOnTime un int et la valeur 250 mseconds int yellowledOffTime = 0 ; Déclarer redOffTime un int et la valeur 250 bouton int = 2 ; int statePin = faible ; void setup() {pinMode (redled, sortie); / / Arduino dire que redLEDPin est une sortie pin pinMode (yellowled, sortie); / / Arduino dire que redLEDPin est une sortie pin pinMode (bouton, sortie); pinMode(speakerOut, OUTPUT) ; if (déboguer) {Serial.begin(9600); / / Set série out si nous voulons que le débogage}} / / mélodie et le calendrier === / / mélodie [] est un tableau de notes, accompagnée de battements [], / / qui définit longueur relative (# supérieur, note plus longue) int mélodie [] de chaque note = {c g, a, g, f, e, d, c, g, f, e, d, g} ; int bat [] = {8, 8, 8, 8, 16, 8, 8, 8, 16, 16, 8, 8} ; int elements_valides = sizeof(melody) / 2 ; Longueur de la mélodie, pour une boucle. Set global tempo longue de tempo = 10000 ; Régler la durée de pause entre les notes int pause = 1000 ; La variable de boucle pour augmenter la longueur de repos int rest_count = 100 ; <-BLETCHEROUS HACK ; Voir les NOTES / / Initialize core variables int tone_ = 0 ; battre int = 0 ; longue durée = 0 ; JOUER un son === / / impulsion l’orateur pour jouer une tonalité pour un playTone() Sub durée particulière {long elapsed_time = 0; if (digitalRead(button)==HIGH) {si (tone_ > 0) {/ / si ce n’est pas un battement de repos, alors que le ton a / / joué moins longtemps que « duration », pulse haut-parleur hautes et basses tout en (elapsed_time < durée) {digitalWrite(speakerOut,HIGH) ; delayMicroseconds(tone_ / 2); / / bas digitalWrite (speakerOut FAIBLE) ; delayMicroseconds(tone_ / 2) ; Garder une trace de combien de temps nous avons pulsé += elapsed_time (tone_) ; {}} else {/ / repos battre ; fois boucle retardent pour (int j = 0; j < rest_count; j ++) {/ / Voir NOTE sur rest_count delayMicroseconds(duration);}}} } / / LET THE WILD commence RUMPUS === void loop() {/ / mettre en place un compteur pour tirer de la mélodie [] et [] bat pour (int j’ai = 0; j’ai playTone(); / / une pause entre les notes... delayMicroseconds(pause) ; analogWrite(speakerOut,500) ; digitalWrite(redled,HIGH) ; //Turn rouge allumée delay(redledOnTime) ; //Leave sur des redOnTime digitalWrite(redled,LOW) ; //Turn rouge LED off //Leave off pour redOffTime digitalWrite(yellowled,HIGH), delay(redledOffTime) ; //Turn LED rouge allumée delay(yellowledOnTime) ; //Leave sur pour redOnTime digitalWrite (yellowled FAIBLE) ; Tourner à LED rouge éteinte delay(yellowledOffTime) ; digitalWrite(speakerOut,HIGH) ; delayMicroseconds(tone_ / 2) ; Delay(speakerOnTime) ; Laisser redOnTime digitalWrite (speakerOut, basse) ; delayMicroseconds(tone_ / 2) ; Delay(speakerOffTime) ; Abandonner pour redOffTime digitalWrite(redled,HIGH) ; Tourner la LED rouge de delay(redledOnTime) ; Laisser redOnTime digitalWrite(redled,LOW) ; Tourner à LED rouge éteinte delay(redledOffTime) ; Abandonner pour redOffTime digitalWrite(yellowled,HIGH) ; Tourner la LED rouge de delay(yellowledOnTime) ; Laisser redOnTime digitalWrite(yellowled,LOW) ; Tourner à LED rouge éteinte delay(yellowledOffTime) ; Abandonner pour redOffTime}} / * * NOTES * le programme est censé tenir une tonalité pour microsecondes "duration". * Mensonges lies lies! Qu’elle détient pour au moins microsecondes « duration », _plus_ * toute charge créée par incremeting elapsed_time (pourrait être plus de * K 3 microsecondes) _plus_ surcharge due à une boucle et deux digitalWrites() ** ainsi, un ton de « duration » joue beaucoup plus lentement qu’un repos * de « durée. » rest_count crée une variable de boucle pour amener les battements « repos » * conformément aux battements de "ton" de la même longueur. ** rest_count sera affecté par l’architecture de circuit intégré et vitesse, ainsi que * généraux de n’importe quel mods de programme. Comportement passé y a aucune garantie d’avenir * performance. Votre kilométrage peut varier. Fusible lumineux et vous échapper. ** Cela pourrait utiliser un certain nombre d’améliorations: * ajouter le code à permettent au programmeur de spécifier combien de fois la mélodie doit * boucle avant de s’arrêter * ajouter une autre octave * MOVE tempo, pause et rest_count aux instructions #define * ré-écrire inclure le volume, à l’aide d’analogWrite, comme avec le deuxième programme à * http://www.arduino.cc/en/Tutorial/PlayMelody * ajoutez le code pour faire le tempo peut être définie par pot ou autre périphérique d’entrée * ajoutez le code pour prendre le tempo ou volume réglable de communication série * (0005 nécessite ou supérieur.) * Ajoutez le code pour créer un décalage de tonalité (supérieur ou inférieur) par le biais de pot etc * remplacer mélodie aléatoire avec l’ouverture des bars à 'Smoke on the Water' * /

Articles Liés

Mot de passe accès avec arduino

Mot de passe accès avec arduino

~ ~ le kit complet pour ce tutoriel est maintenant en vente à www.razvantech.com obtenir un ! ~~Cette instructable vous montrera comment faire un système de verrouillage-code d'accès à l'aide de la carte Arduino Mega.WhenYou taper le bon code, une LE
Commander les Servos avec Arduino et RC récepteur/émetteur

Commander les Servos avec Arduino et RC récepteur/émetteur

Dans ce tutoriel, je vais vous expliquer comment contrôler plus d'un servo avec un seul canal de votre émetteur/récepteur et programme des mouvements propres. Il est utile pour des mouvements complexes comme des bras robotisés.Vous aurez besoin :-Ard
Radio-réveil Arduino MP3

Radio-réveil Arduino MP3

Il y a, j'ai trébuché sur un composant appelé DFPlayer. C'est un petit composant qui permet de jouer des mp3 depuis une carte micro SD (pour moins cher que 10€!).http://www.dfrobot.com/wiki/index.php/DFPlayer_Min...Depuis que je suis malade de l'util
Contrôles de Kinect Arduino filaire Servos à l’aide de Visual Basic 2010

Contrôles de Kinect Arduino filaire Servos à l’aide de Visual Basic 2010

mise à jour JAN 2012 : ce guide est en vedette sur Channel9 MSDN de Microsofthttp://channel9.msdn.com/Coding4Fun/blog/Kinecting-to-Arduino-with-Visual-BasicINTRODUCTIONDans ce projet, j'utilise des mouvements de gauche et de droite dans Kinect pour c
Radio-réveil Arduino

Radio-réveil Arduino

Arduino est une machine étonnante. Ce projet est juste un des nombreux. Vous pouvez générer votre projet selon l'instructable ou étendre en plus de fonctions si vous le souhaitez.Nous construirons un réveil complètement interactifs arduino alimenté.V
Les alarmistes machine Arduino

Les alarmistes machine Arduino

la machine alarmistes de l'arduino est assez simple, mais il est aussi très amusant d'avoir autour.AVERTISSEMENT : NOUS À VOS PROPRES RISQUES. NE PAS UTILISER SUR DES PERSONNES AYANT CERTAINS PROBLÈMES DE SANTÉ.Avoir un grand temps de cicatrisation !
Passer un moteur utilisant Arduino et communication série

Passer un moteur utilisant Arduino et communication série

avez-vous déjà demandé comment les robots se déplacent ?  Avez-vous jamais voulu écrire un programme pour contrôler un robot ?  Dans l'affirmative, ce tutoriel sera un excellent pied-à-terre pour apprendre les commandes électroniques avec l'Arduino M
Restaurer les Batteries avec Arduino

Restaurer les Batteries avec Arduino

vous avez des piles rechargeables qui ne sont pas exigibles plus ? Il y a plusieurs raisons possibles, pourquoi une batterie cesse de prendre une charge, voici un couple plus fréquentes. Il mai ont été endommagé par la chaleur due à une surcharge, ou
Comment réparer les mauvais chinois Arduino clone

Comment réparer les mauvais chinois Arduino clone

Avez-vous déjà demandé si un clone chinois Arduino bon marché fonctionnent réellement ?Vous payez seulement un peu d'argent et obtenez le même produit. Sons trop beau pour être vrai droit ?La vérité est que certains travaux et certains ne sera pas. S
Comment faire pour commander les moteurs avec Arduino et RC récepteur en 10 minutes

Comment faire pour commander les moteurs avec Arduino et RC récepteur en 10 minutes

Il s'agit de mon second tutoriel sur le contrôle des choses avec des récepteurs de l'Arduino et R/C. Si vous n'avez pas regardé mon premier tutorial je vous suggère de regarder à cette première, ici : dans ce tutoriel, nous allons regarder comment co
Comment faire passer les câbles par câbles USB

Comment faire passer les câbles par câbles USB

Vous avez peut-être remarqué que câbles capteur Phidgets (et autres sortes de câblage électrique) ne viennent pas toujours dans une forme ronde commode, qui parfois, vous avez besoin. Une solution relativement simple consiste à saisir une longueur de
Avoir passé les stratégies de Restriction logicielle

Avoir passé les stratégies de Restriction logicielle

ces écoles avec un bon fond IT (a FTP pour les étudiants par exemple) seraient généralement définir Stratégies de Restriction logicielle sur les ordinateurs afin de limiter les étudiants (sous formes de jeux, de logiciels malveillants ou de piratage)
Cibler les pratique avec Arduino et pointeur Laser

Cibler les pratique avec Arduino et pointeur Laser

Alors disons que vous êtes un stormtrooper impérial. Vous êtes constamment gunning pour scum rebel, mais quand vous êtes face à face avec l'ennemi vous n'atteindraient la bordée d'un AT-AT avec votre fusil laser.Vous inquiétez pas plus ! Dans ce inst
RegisterWrite - prolonger les sorties d’Arduino/microcontrôleur avec registres à décalage

RegisterWrite - prolonger les sorties d’Arduino/microcontrôleur avec registres à décalage

Registre Write est un exemple de programme pour prolonger les sorties de l'Arduino à l'aide d'un registre à décalage.J'ai écrit un simple croquis qu'utilisera 3 sorties de l'Arduino pour conduire le registre à décalage.J'ai écrit ce que je ne pouvais