RTTL Tunes sur arduino (4 / 8 étapes)

Etape 4: Copiez et collez ceci dans l’IDE !

 // A fun sketch to demonstrate the use of the tone() function written by Brett Hagman. // This plays RTTTL (RingTone Text Transfer Language) songs using the // now built-in tone() command in Wiring and Arduino. // Written by Brett Hagman // http://www.roguerobotics.com/ // To play the output on a small speaker (i.e. 8 Ohms or higher), simply use // a 1K Ohm resistor from the output pin to the speaker, and connect the other // side of the speaker to ground. // You can get more RTTTL songs from // http://www.roguerobotics.com/ const int tonePin = 8; // for rEDI board //const int tonePin = 13; // arbitrary for arduino boards, set this to whatever you want #define OCTAVE_OFFSET 0 // These values can also be found as constants in the Tone library (Tone.h) int notes[] = { 0, 262, 277, 294, 311, 330, 349, 370, 392, 415, 440, 466, 494, 523, 554, 587, 622, 659, 698, 740, 784, 831, 880, 932, 988, 1047, 1109, 1175, 1245, 1319, 1397, 1480, 1568, 1661, 1760, 1865, 1976, 2093, 2217, 2349, 2489, 2637, 2794, 2960, 3136, 3322, 3520, 3729, 3951 }; char *song = "GeorgeofthejungleTheme:d=4,o=6,b=127:f5,p,p,c5,p,p,f5,p,f5,p,f5,a5,p,c,p,f5,p,f5,p,g5,g5,p,a5,p,p,p,f5,f5,f5,f5,g5,g5,p,f5,p,p,p,f"; //char *song = "OneMoreT:d=16,o=5,b=125:4e,4e,4e,4e,4e,4e,8p,4d#.,4e,4e,4e,4e,4e,4e,8p,4d#.,4e,4e,4e,4e,4e,4e,8p,4d#.,4f#,4f#,4f#,4f#,4f#,4f#,8f#,4d#.,4e,4e,4e,4e,4e,4e,8p,4d#.,4e,4e,4e,4e,4e,4e,8p,4d#.,1f#,2f#"; //char *song = "The Simpsons:d=4,o=5,b=160:c.6,e6,f#6,8a6,g.6,e6,c6,8a,8f#,8f#,8f#,2g,8p,8p,8f#,8f#,8f#,8g,a#.,8c6,8c6,8c6,c6"; //char *song = "Indiana:d=4,o=5,b=250:e,8p,8f,8g,8p,1c6,8p.,d,8p,8e,1f,p.,g,8p,8a,8b,8p,1f6,p,a,8p,8b,2c6,2d6,2e6,e,8p,8f,8g,8p,1c6,p,d6,8p,8e6,1f.6,g,8p,8g,e.6,8p,d6,8p,8g,e.6,8p,d6,8p,8g,f.6,8p,e6,8p,8d6,2c6"; //char *song = "TakeOnMe:d=4,o=4,b=160:8f#5,8f#5,8f#5,8d5,8p,8b,8p,8e5,8p,8e5,8p,8e5,8g#5,8g#5,8a5,8b5,8a5,8a5,8a5,8e5,8p,8d5,8p,8f#5,8p,8f#5,8p,8f#5,8e5,8e5,8f#5,8e5,8f#5,8f#5,8f#5,8d5,8p,8b,8p,8e5,8p,8e5,8p,8e5,8g#5,8g#5,8a5,8b5,8a5,8a5,8a5,8e5,8p,8d5,8p,8f#5,8p,8f#5,8p,8f#5,8e5,8e5"; //char *song = "Entertainer:d=4,o=5,b=140:8d,8d#,8e,c6,8e,c6,8e,2c.6,8c6,8d6,8d#6,8e6,8c6,8d6,e6,8b,d6,2c6,p,8d,8d#,8e,c6,8e,c6,8e,2c.6,8p,8a,8g,8f#,8a,8c6,e6,8d6,8c6,8a,2d6"; //char *song = "Muppets:d=4,o=5,b=250:c6,c6,a,b,8a,b,g,p,c6,c6,a,8b,8a,8p,g.,p,e,e,g,f,8e,f,8c6,8c,8d,e,8e,8e,8p,8e,g,2p,c6,c6,a,b,8a,b,g,p,c6,c6,a,8b,a,g.,p,e,e,g,f,8e,f,8c6,8c,8d,e,8e,d,8d,c"; //char *song = "Xfiles:d=4,o=5,b=125:e,b,a,b,d6,2b.,1p,e,b,a,b,e6,2b.,1p,g6,f#6,e6,d6,e6,2b.,1p,g6,f#6,e6,d6,f#6,2b.,1p,e,b,a,b,d6,2b.,1p,e,b,a,b,e6,2b.,1p,e6,2b."; //char *song = "Looney:d=4,o=5,b=140:32p,c6,8f6,8e6,8d6,8c6,a.,8c6,8f6,8e6,8d6,8d#6,e.6,8e6,8e6,8c6,8d6,8c6,8e6,8c6,8d6,8a,8c6,8g,8a#,8a,8f"; //char *song = "20thCenFox:d=16,o=5,b=140:b,8p,b,b,2b,p,c6,32p,b,32p,c6,32p,b,32p,c6,32p,b,8p,b,b,b,32p,b,32p,b,32p,b,32p,b,32p,b,32p,b,32p,g#,32p,a,32p,b,8p,b,b,2b,4p,8e,8g#,8b,1c#6,8f#,8a,8c#6,1e6,8a,8c#6,8e6,1e6,8b,8g#,8a,2b"; //char *song = "Bond:d=4,o=5,b=80:32p,16c#6,32d#6,32d#6,16d#6,8d#6,16c#6,16c#6,16c#6,16c#6,32e6,32e6,16e6,8e6,16d#6,16d#6,16d#6,16c#6,32d#6,32d#6,16d#6,8d#6,16c#6,16c#6,16c#6,16c#6,32e6,32e6,16e6,8e6,16d#6,16d6,16c#6,16c#7,c.7,16g#6,16f#6,g#.6"; //char *song = "MASH:d=8,o=5,b=140:4a,4g,f#,g,p,f#,p,g,p,f#,p,2e.,p,f#,e,4f#,e,f#,p,e,p,4d.,p,f#,4e,d,e,p,d,p,e,p,d,p,2c#.,p,d,c#,4d,c#,d,p,e,p,4f#,p,a,p,4b,a,b,p,a,p,b,p,2a.,4p,a,b,a,4b,a,b,p,2a.,a,4f#,a,b,p,d6,p,4e.6,d6,b,p,a,p,2b"; //char *song = "StarWars:d=4,o=5,b=45:32p,32f#,32f#,32f#,8b.,8f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32e6,8c#.6,32f#,32f#,32f#,8b.,8f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32c#6,8b.6,16f#.6,32e6,32d#6,32e6,8c#6"; //char *song = "GoodBad:d=4,o=5,b=56:32p,32a#,32d#6,32a#,32d#6,8a#.,16f#.,16g#.,d#,32a#,32d#6,32a#,32d#6,8a#.,16f#.,16g#.,c#6,32a#,32d#6,32a#,32d#6,8a#.,16f#.,32f.,32d#.,c#,32a#,32d#6,32a#,32d#6,8a#.,16g#.,d#"; //char *song = "TopGun:d=4,o=4,b=31:32p,16c#,16g#,16g#,32f#,32f,32f#,32f,16d#,16d#,32c#,32d#,16f,32d#,32f,16f#,32f,32c#,16f,d#,16c#,16g#,16g#,32f#,32f,32f#,32f,16d#,16d#,32c#,32d#,16f,32d#,32f,16f#,32f,32c#,g#"; //char *song = "A-Team:d=8,o=5,b=125:4d#6,a#,2d#6,16p,g#,4a#,4d#.,p,16g,16a#,d#6,a#,f6,2d#6,16p,c#.6,16c6,16a#,g#.,2a#"; //char *song = "Flinstones:d=4,o=5,b=40:32p,16f6,16a#,16a#6,32g6,16f6,16a#.,16f6,32d#6,32d6,32d6,32d#6,32f6,16a#,16c6,d6,16f6,16a#.,16a#6,32g6,16f6,16a#.,32f6,32f6,32d#6,32d6,32d6,32d#6,32f6,16a#,16c6,a#,16a6,16d.6,16a#6,32a6,32a6,32g6,32f#6,32a6,8g6,16g6,16c.6,32a6,32a6,32g6,32g6,32f6,32e6,32g6,8f6,16f6,16a#.,16a#6,32g6,16f6,16a#.,16f6,32d#6,32d6,32d6,32d#6,32f6,16a#,16c.6,32d6,32d#6,32f6,16a#,16c.6,32d6,32d#6,32f6,16a#6,16c7,8a#.6"; //char *song = "Jeopardy:d=4,o=6,b=125:c,f,c,f5,c,f,2c,c,f,c,f,a.,8g,8f,8e,8d,8c#,c,f,c,f5,c,f,2c,f.,8d,c,a#5,a5,g5,f5,p,d#,g#,d#,g#5,d#,g#,2d#,d#,g#,d#,g#,c.7,8a#,8g#,8g,8f,8e,d#,g#,d#,g#5,d#,g#,2d#,g#.,8f,d#,c#,c,p,a#5,p,g#.5,d#,g#"; //char *song = "Gadget:d=16,o=5,b=50:32d#,32f,32f#,32g#,a#,f#,a,f,g#,f#,32d#,32f,32f#,32g#,a#,d#6,4d6,32d#,32f,32f#,32g#,a#,f#,a,f,g#,f#,8d#"; //char *song = "Smurfs:d=32,o=5,b=200:4c#6,16p,4f#6,p,16c#6,p,8d#6,p,8b,p,4g#,16p,4c#6,p,16a#,p,8f#,p,8a#,p,4g#,4p,g#,p,a#,p,b,p,c6,p,4c#6,16p,4f#6,p,16c#6,p,8d#6,p,8b,p,4g#,16p,4c#6,p,16a#,p,8b,p,8f,p,4f#"; //char *song = "MahnaMahna:d=16,o=6,b=125:c#,c.,b5,8a#.5,8f.,4g#,a#,g.,4d#,8p,c#,c.,b5,8a#.5,8f.,g#.,8a#.,4g,8p,c#,c.,b5,8a#.5,8f.,4g#,f,g.,8d#.,f,g.,8d#.,f,8g,8d#.,f,8g,d#,8c,a#5,8d#.,8d#.,4d#,8d#."; //char *song = "LeisureSuit:d=16,o=6,b=56:f.5,f#.5,g.5,g#5,32a#5,f5,g#.5,a#.5,32f5,g#5,32a#5,g#5,8c#.,a#5,32c#,a5,a#.5,c#.,32a5,a#5,32c#,d#,8e,c#.,f.,f.,f.,f.,f,32e,d#,8d,a#.5,e,32f,e,32f,c#,d#.,c#"; //char *song = "DangerMo:d=4,o=5,b=355:a.,8g,a,8a,p,8a4,8p,d,p,a.,8g,a,8a,p,8a4,8p,d,p,a,a,a#,a#,a#,a#,a#,a#,a#,c6,2a,p,8a4,8p,d,p,a.,8g,a,8a,p,8a4,8p,d,p,a.,8g,a,8a,p,8a4,8p,d,p,a,a,a#,a#,a#,a#,a#,a#,a#,c6,2d6,p,8a4,8p,d,p,a.,8a,2a#.,8a#4,8p,d#,2p,a#,2a#,2f#,2d#,a#.,8a#,2b.,8b4,8p,e,2p,b,2b,2g,2e,b.,8d6,1e.6,e6,8e6,8e"; //char *song = "MissionImp:d=16,o=6,b=95:32d,32d#,32d,32d#,32d,32d#,32d,32d#,32d,32d,32d#,32e,32f,32f#,32g,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,a#,g,2d,32p,a#,g,2c#,32p,a#,g,2c,a#5,8c,2p,32p,a#5,g5,2f#,32p,a#5,g5,2f,32p,a#5,g5,2e,d#,8d"; void setup(void) { Serial.begin(9600); } #define isdigit(n) (n >= '0' && n <= '9') void play_rtttl(char *p) { // Absolutely no error checking in here byte default_dur = 4; byte default_oct = 6; int bpm = 63; int num; long wholenote; long duration; byte note; byte scale; // format: d=N,o=N,b=NNN: // find the start (skip name, etc) while(*p != ':') p++; // ignore name p++; // skip ':' // get default duration if(*p == 'd') { p++; p++; // skip "d=" num = 0; while(isdigit(*p)) { num = (num * 10) + (*p++ - '0'); } if(num > 0) default_dur = num; p++; // skip comma } Serial.print("ddur: "); Serial.println(default_dur, 10); // get default octave if(*p == 'o') { p++; p++; // skip "o=" num = *p++ - '0'; if(num >= 3 && num <=7) default_oct = num; p++; // skip comma } Serial.print("doct: "); Serial.println(default_oct, 10); // get BPM if(*p == 'b') { p++; p++; // skip "b=" num = 0; while(isdigit(*p)) { num = (num * 10) + (*p++ - '0'); } bpm = num; p++; // skip colon } Serial.print("bpm: "); Serial.println(bpm, 10); // BPM usually expresses the number of quarter notes per minute wholenote = (60 * 1000L / bpm) * 4; // this is the time for whole note (in milliseconds) Serial.print("wn: "); Serial.println(wholenote, 10); // now begin note loop while(*p) { // first, get note duration, if available num = 0; while(isdigit(*p)) { num = (num * 10) + (*p++ - '0'); } if(num) duration = wholenote / num; else duration = wholenote / default_dur; // we will need to check if we are a dotted note after // now get the note note = 0; switch(*p) { case 'c': note = 1; break; case 'd': note = 3; break; case 'e': note = 5; break; case 'f': note = 6; break; case 'g': note = 8; break; case 'a': note = 10; break; case 'b': note = 12; break; case 'p': default: note = 0; } p++; // now, get optional '#' sharp if(*p == '#') { note++; p++; } // now, get optional '.' dotted note if(*p == '.') { duration += duration/2; p++; } // now, get scale if(isdigit(*p)) { scale = *p - '0'; p++; } else { scale = default_oct; } scale += OCTAVE_OFFSET; if(*p == ',') p++; // skip comma for next note (or we may be at the end) // now play the note if(note) { Serial.print("Playing: "); Serial.print(scale, 10); Serial.print(' '); Serial.print(note, 10); Serial.print(" ("); Serial.print(notes[(scale - 4) * 12 + note], 10); Serial.print(") "); Serial.println(duration, 10); tone(tonePin, notes[(scale - 4) * 12 + note]); delay(duration); noTone(tonePin); } else { Serial.print("Pausing: "); Serial.println(duration, 10); delay(duration); } } } void loop(void) { play_rtttl(song); Serial.println("Done."); while(1); } 

Si cela est fait correctement il devrait compiler sans erreur !

Articles Liés

Utilisez la carte de dérivation Si4703 FM sur Arduino Uno

Utilisez la carte de dérivation Si4703 FM sur Arduino Uno

dans ce post, je sera démonstration comment utiliser carte de dérivation SI4703 FM sur Arduino UnoCarte de dérivation Si4703 FM pour le circuit tuner Silicon Laboratories Si4703 FM.Au-delà d'être une simple radio de FM, le Si4703 est également capabl
Affichage à cristaux liquides sur Arduino UNO

Affichage à cristaux liquides sur Arduino UNO

la liste du matériel :1 arduinioConseil 2 painEcran LCD 3 16 * 2Registre 4 10 kÉtape 1: Pinconfiguration Mis en place l'axe selon la picturre,Considérez que d'enregistrer d'autre objet que 10k.Ce Programme est disponible sur Arduino LCDLibrary.Progra
Thermohygromètre avec horloge et affichage à cristaux liquides sur Arduino UNO

Thermohygromètre avec horloge et affichage à cristaux liquides sur Arduino UNO

Ces 7 étapes vous conduira à travers la « construction » d'un thermo-hygromètre avec horloge sur Arduino UNO.Données, temps, humidité et température seront affichera sur un écran LCD 16 x 2 affichage. Si vous avez acheté un écran LCD et voulez savoir
Comment facilement écouter de la musique avec sonnerie sur arduino (la marche impériale - STAR WARS)

Comment facilement écouter de la musique avec sonnerie sur arduino (la marche impériale - STAR WARS)

Salut, j'ai récemment conçu une sorte de « bibliothèque » afin de rendre plus facile à jouer les notes exactes sur arduino avec le buzzer.J'ai inclus les fréquences des notes (agréables de se faire entendre) avec #defines.Alors, j'ai défini la valeur
À l’aide de 433 MHz Remote Controlled commutateurs sur Arduino

À l’aide de 433 MHz Remote Controlled commutateurs sur Arduino

Je suppose que tout le monde connaît ces interrupteurs à distance contrôlées que dans leur forme la plus simple viennent dans un couple (généralement 3) des switcheable périphériques à brancher sur la prise de courant et qui recevra une fiche d'un fe
Comment utiliser le temporisateur sur Arduino

Comment utiliser le temporisateur sur Arduino

Dans ce Instructable, nous prenons un regard sur le temporisateur sur Arduino et les trois différentes manières de le configurer. Nous montrons un exemple simple avec le temporisateur et vous pouvez trouver le code de l'exemple à la http://forcetroni
Appareil de biofeedback basées sur Arduino

Appareil de biofeedback basées sur Arduino

Ici je vais présenter un appareil de Biofeedback de Source ouverte qui je construis basé sur Arduino. Vous pouvez mesurer la température corporelle avec un capteur infrarouge, GSR et vous pouvez connecter d'autres périphériques avec changement de ton
Camion RC sans fil double (2 x distance de communication sans fil et bluetooth) sur Arduino

Camion RC sans fil double (2 x distance de communication sans fil et bluetooth) sur Arduino

Bonjour tout le monde. J'ai décidé de faire quelque chose de simple et accessible à tous. Comment construire un contrôlables à distance des voitures, camions, j'ai vu beaucoup de vidéos et des descriptions. Mon point est donc d'investir le moins poss
Pong avec 8 x 8 Led Matrix sur Arduino

Pong avec 8 x 8 Led Matrix sur Arduino

jeu Pong créé avec 8 x 8 Led Matrix sur Arduino Diecimila (microcontrôleur Atmel ATMega 168). Pour plus d'informations http://blog.bsoares.com.br/arduino/ping-pong-with-8x8-led-matrix-on-arduino
ChipKit fonctionnant sur Arduino Code

ChipKit fonctionnant sur Arduino Code

Dans cette introduction, je démontrerai comment utiliser Arduino programmation avec dp32 chipKit.Étape 1: Étape 1:-matériel nécessaire n'importe quelle plaque chipKitcâble micro-USBVotre ordinateur personnelÉtape 2: Téléchargement MP labo X et IDE Ar
Mesurer des condensateurs SMD sur Arduino

Mesurer des condensateurs SMD sur Arduino

Mesure de capacité est la tâche de que chaque propriétaire Arduino doit s'occuper tôt ou tard. Cela est particulièrement vrai lorsque l'on passe de trou composants SMD ceux – petits condensateurs, contrairement aux résistances de la même taille, ne s
Seau à glace automatique fournisseur basées sur Arduino

Seau à glace automatique fournisseur basées sur Arduino

Vendredi dernier, quelques ingénieurs de DFRobot ont pris leur le défi de seau à glace de sensibilisation pour la SLA. Nous avons décidé de le faire d'une manière maker avec un vendeur de seau à glace automatique basé sur Arduino.And, nous défions to
Télémètre à ultrasons avec affichage à cristaux liquides sur Arduino UNO

Télémètre à ultrasons avec affichage à cristaux liquides sur Arduino UNO

Dans ce tutoriel nous allons voir une utilisation différente du module ultrasons HC-SR04. Ce module est souvent utilisé sur les robots et les voitures jouets pour localiser les obstacles, mais il peut être utilisé pour mesurer les distances aussi bie
Au revoir Moshi ou comment faire fonctionner votre imprimante laser sur Arduino

Au revoir Moshi ou comment faire fonctionner votre imprimante laser sur Arduino

Mise à jour le 19/04/2016 :MarlinKimbra est ici !C'est une des meilleures firmwares basés sur Marlin que j'ai vu depuis longtemps, aucune fonctionnalité n'est manquante.Mais pour notre but ici, c'est seulement d'être à jour et obtenir de meilleurs ré