<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Arduino%3A%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%2FRTTTL</id>
	<title>Arduino:Примеры/RTTTL - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Arduino%3A%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%2FRTTTL"/>
	<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RTTTL&amp;action=history"/>
	<updated>2026-04-06T20:20:17Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RTTTL&amp;diff=8495967&amp;oldid=prev</id>
		<title>EducationBot в 08:36, 8 июля 2023</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RTTTL&amp;diff=8495967&amp;oldid=prev"/>
		<updated>2023-07-08T08:36:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:36, 8 июля 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l245&quot;&gt;Строка 245:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 245:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Навигационная таблица/Портал/Arduino}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RTTTL&amp;diff=16248&amp;oldid=prev</id>
		<title>Myagkij в 22:07, 8 октября 2016</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RTTTL&amp;diff=16248&amp;oldid=prev"/>
		<updated>2016-10-08T22:07:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Arduino панель перехода}}&lt;br /&gt;
{{Перевод от Сubewriter}}&lt;br /&gt;
{{Myagkij-редактор}}&lt;br /&gt;
&lt;br /&gt;
=RTTTL&amp;lt;ref&amp;gt;[https://code.google.com/archive/p/rogue-code/downloads code.google.com - RTTTL.pde]&amp;lt;/ref&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
Это скетч для [[Arduino:Библиотеки/Tone|библиотеки Tone]], который при помощи платы '''Arduino''' демонстрирует, как проигрывать на динамике различные рингтоны (или '''RTTTL'''; от '''«Ring Tone Text Transfer Language»'''): темы к мультфильму '''«Симпсоны»''', сериалу '''«Секретные материалы»''', песню '''«Take on me»''' группы '''A-HA''' и т.д.&lt;br /&gt;
&lt;br /&gt;
==Код==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
//  RTTTL&lt;br /&gt;
&lt;br /&gt;
// Забавный скетч, демонстрирующий использование библиотеки Tone.&lt;br /&gt;
&lt;br /&gt;
// Чтобы совместить выходные данные для сигналов и выходные данные &lt;br /&gt;
// от маленького динамика (например, на 8 ом и выше), воспользуйтесь &lt;br /&gt;
// резисторами на 1 кОм. Подключите их к каждому выходному контакту, &lt;br /&gt;
// а затем соедините вместе на динамике. Не забудьте подключить другую &lt;br /&gt;
// сторону динамика к «земле»!&lt;br /&gt;
&lt;br /&gt;
// Больше рингтонов можно скачать тут:&lt;br /&gt;
// http://code.google.com/p/rogue-code/wiki/ToneLibraryDocumentation&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;Tone.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tone tone1;&lt;br /&gt;
&lt;br /&gt;
#define OCTAVE_OFFSET 0&lt;br /&gt;
&lt;br /&gt;
int notes[] = { 0,&lt;br /&gt;
NOTE_C4, NOTE_CS4, NOTE_D4, NOTE_DS4, NOTE_E4, NOTE_F4, NOTE_FS4, NOTE_G4, NOTE_GS4, NOTE_A4, NOTE_AS4, NOTE_B4,&lt;br /&gt;
NOTE_C5, NOTE_CS5, NOTE_D5, NOTE_DS5, NOTE_E5, NOTE_F5, NOTE_FS5, NOTE_G5, NOTE_GS5, NOTE_A5, NOTE_AS5, NOTE_B5,&lt;br /&gt;
NOTE_C6, NOTE_CS6, NOTE_D6, NOTE_DS6, NOTE_E6, NOTE_F6, NOTE_FS6, NOTE_G6, NOTE_GS6, NOTE_A6, NOTE_AS6, NOTE_B6,&lt;br /&gt;
NOTE_C7, NOTE_CS7, NOTE_D7, NOTE_DS7, NOTE_E7, NOTE_F7, NOTE_FS7, NOTE_G7, NOTE_GS7, NOTE_A7, NOTE_AS7, NOTE_B7&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//char *song = &amp;quot;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&amp;quot;;  //  «Симпсоны»&lt;br /&gt;
//char *song = &amp;quot;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&amp;quot;;  //  «Индиана Джонс»&lt;br /&gt;
//char *song = &amp;quot;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&amp;quot;;  //  «Take on me» - A-HA&lt;br /&gt;
//char *song = &amp;quot;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&amp;quot;;  //  «The Entertainer» - Scott Joplin&lt;br /&gt;
//char *song = &amp;quot;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&amp;quot;;  //  «Маппеты»&lt;br /&gt;
//char *song = &amp;quot;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.&amp;quot;;  //  «Секретные материалы»&lt;br /&gt;
//char *song = &amp;quot;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&amp;quot;;&lt;br /&gt;
//char *song = &amp;quot;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&amp;quot;;  //  «20 век FOX»&lt;br /&gt;
//char *song = &amp;quot;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&amp;quot;;  //  «Джеймс Бонд»&lt;br /&gt;
//char *song = &amp;quot;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&amp;quot;;  //  «МЭШ»&lt;br /&gt;
//char *song = &amp;quot;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&amp;quot;;  //  «Звездные войны»&lt;br /&gt;
//char *song = &amp;quot;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#&amp;quot;;&lt;br /&gt;
//char *song = &amp;quot;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#&amp;quot;;  //  «Лучший стрелок»&lt;br /&gt;
//char *song = &amp;quot;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#&amp;quot;;  //  «Команда A»&lt;br /&gt;
//char *song = &amp;quot;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&amp;quot;;  //  «Флинстоуны»&lt;br /&gt;
//char *song = &amp;quot;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#&amp;quot;;&lt;br /&gt;
//char *song = &amp;quot;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#&amp;quot;;&lt;br /&gt;
//char *song = &amp;quot;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#&amp;quot;;  //  «Смурфики»&lt;br /&gt;
//char *song = &amp;quot;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#.&amp;quot;;  //  «Мана-мана»&lt;br /&gt;
//char *song = &amp;quot;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#&amp;quot;;&lt;br /&gt;
char *song = &amp;quot;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&amp;quot;;  //  «Миссия невыполнима»&lt;br /&gt;
&lt;br /&gt;
void setup(void)&lt;br /&gt;
{&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  tone1.begin(13);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#define isdigit(n) (n &amp;gt;= '0' &amp;amp;&amp;amp; n &amp;lt;= '9')&lt;br /&gt;
&lt;br /&gt;
void play_rtttl(char *p)&lt;br /&gt;
{&lt;br /&gt;
  // никаких ошибок здесь не проверяется:&lt;br /&gt;
&lt;br /&gt;
  byte default_dur = 4;&lt;br /&gt;
  byte default_oct = 6;&lt;br /&gt;
  int bpm = 63;&lt;br /&gt;
  int num;&lt;br /&gt;
  long wholenote;&lt;br /&gt;
  long duration;&lt;br /&gt;
  byte note;&lt;br /&gt;
  byte scale;&lt;br /&gt;
&lt;br /&gt;
  // формат: d=N,o=N,b=NNN:&lt;br /&gt;
  // находим начало (пропускаем название и т.д.)&lt;br /&gt;
&lt;br /&gt;
  while(*p != ':') p++;    // игнорируем название:&lt;br /&gt;
  p++;                     // пропускаем «:»&lt;br /&gt;
&lt;br /&gt;
  // считываем продолжительность, заданную по умолчанию:&lt;br /&gt;
  if(*p == 'd')&lt;br /&gt;
  {&lt;br /&gt;
    p++; p++;              // пропускаем &amp;quot;d=&amp;quot;&lt;br /&gt;
    num = 0;&lt;br /&gt;
    while(isdigit(*p))&lt;br /&gt;
    {&lt;br /&gt;
      num = (num * 10) + (*p++ - '0');&lt;br /&gt;
    }&lt;br /&gt;
    if(num &amp;gt; 0) default_dur = num;&lt;br /&gt;
    p++;                   // пропускаем запятую&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  Serial.print(&amp;quot;ddur: &amp;quot;); Serial.println(default_dur, 10);&lt;br /&gt;
&lt;br /&gt;
  // считываем октаву, заданную по умолчанию:&lt;br /&gt;
  if(*p == 'o')&lt;br /&gt;
  {&lt;br /&gt;
    p++; p++;              // пропускаем &amp;quot;o=&amp;quot;&lt;br /&gt;
    num = *p++ - '0';&lt;br /&gt;
    if(num &amp;gt;= 3 &amp;amp;&amp;amp; num &amp;lt;=7) default_oct = num;&lt;br /&gt;
    p++;                   // пропускаем запятую&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  Serial.print(&amp;quot;doct: &amp;quot;); Serial.println(default_oct, 10);&lt;br /&gt;
&lt;br /&gt;
  // считываем количество ударов в минуту:&lt;br /&gt;
  if(*p == 'b')&lt;br /&gt;
  {&lt;br /&gt;
    p++; p++;              // пропускаем &amp;quot;b=&amp;quot;&lt;br /&gt;
    num = 0;&lt;br /&gt;
    while(isdigit(*p))&lt;br /&gt;
    {&lt;br /&gt;
      num = (num * 10) + (*p++ - '0');&lt;br /&gt;
    }&lt;br /&gt;
    bpm = num;&lt;br /&gt;
    p++;                   // пропускаем двоеточие&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  Serial.print(&amp;quot;bpm: &amp;quot;); &lt;br /&gt;
  Serial.println(bpm, 10);&lt;br /&gt;
&lt;br /&gt;
  // BPM (beats per minute), как правило, выражает &lt;br /&gt;
  // количество четвертных нот в минуту:&lt;br /&gt;
  wholenote = (60 * 1000L / bpm) * 4;  // это время проигрывания ноты (в миллисекундах)&lt;br /&gt;
&lt;br /&gt;
  Serial.print(&amp;quot;wn: &amp;quot;); Serial.println(wholenote, 10);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  // теперь начинаем цикл для ноты:&lt;br /&gt;
  while(*p)&lt;br /&gt;
  {&lt;br /&gt;
    // сначала считываем продолжительность ноты (если задана):&lt;br /&gt;
    num = 0;&lt;br /&gt;
    while(isdigit(*p))&lt;br /&gt;
    {&lt;br /&gt;
      num = (num * 10) + (*p++ - '0');&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    if(num) duration = wholenote / num;&lt;br /&gt;
    else duration = wholenote / default_dur;  // далее нужно будет проверить, нет ли дальше ноты с точкой&lt;br /&gt;
&lt;br /&gt;
    // теперь считываем ноту:&lt;br /&gt;
    note = 0;&lt;br /&gt;
&lt;br /&gt;
    switch(*p)&lt;br /&gt;
    {&lt;br /&gt;
      case 'c':&lt;br /&gt;
        note = 1;&lt;br /&gt;
        break;&lt;br /&gt;
      case 'd':&lt;br /&gt;
        note = 3;&lt;br /&gt;
        break;&lt;br /&gt;
      case 'e':&lt;br /&gt;
        note = 5;&lt;br /&gt;
        break;&lt;br /&gt;
      case 'f':&lt;br /&gt;
        note = 6;&lt;br /&gt;
        break;&lt;br /&gt;
      case 'g':&lt;br /&gt;
        note = 8;&lt;br /&gt;
        break;&lt;br /&gt;
      case 'a':&lt;br /&gt;
        note = 10;&lt;br /&gt;
        break;&lt;br /&gt;
      case 'b':&lt;br /&gt;
        note = 12;&lt;br /&gt;
        break;&lt;br /&gt;
      case 'p':&lt;br /&gt;
      default:&lt;br /&gt;
        note = 0;&lt;br /&gt;
    }&lt;br /&gt;
    p++;&lt;br /&gt;
&lt;br /&gt;
    // считываем опциональный символ «#» (диез):&lt;br /&gt;
    if(*p == '#')&lt;br /&gt;
    {&lt;br /&gt;
      note++;&lt;br /&gt;
      p++;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // считываем опциональный символ «.» (нота с точкой):&lt;br /&gt;
    if(*p == '.')&lt;br /&gt;
    {&lt;br /&gt;
      duration += duration/2;&lt;br /&gt;
      p++;&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    // считываем гамму:&lt;br /&gt;
    if(isdigit(*p))&lt;br /&gt;
    {&lt;br /&gt;
      scale = *p - '0';&lt;br /&gt;
      p++;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      scale = default_oct;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    scale += OCTAVE_OFFSET;&lt;br /&gt;
&lt;br /&gt;
    if(*p == ',')&lt;br /&gt;
      p++;       // пропускаем запятую для следующей ноты (или, возможно, мы уже в конце)&lt;br /&gt;
&lt;br /&gt;
    // теперь проигрываем ноту:&lt;br /&gt;
&lt;br /&gt;
    if(note)&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(&amp;quot;Playing: &amp;quot;);  //  &amp;quot;Проигрывание: &amp;quot;&lt;br /&gt;
      Serial.print(scale, 10); Serial.print(' ');&lt;br /&gt;
      Serial.print(note, 10); Serial.print(&amp;quot; (&amp;quot;);&lt;br /&gt;
      Serial.print(notes[(scale - 4) * 12 + note], 10);&lt;br /&gt;
      Serial.print(&amp;quot;) &amp;quot;);&lt;br /&gt;
      Serial.println(duration, 10);&lt;br /&gt;
      tone1.play(notes[(scale - 4) * 12 + note]);&lt;br /&gt;
      delay(duration);&lt;br /&gt;
      tone1.stop();&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(&amp;quot;Pausing: &amp;quot;);  //  &amp;quot;Пауза:&amp;quot; &lt;br /&gt;
      Serial.println(duration, 10);&lt;br /&gt;
      delay(duration);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(void)&lt;br /&gt;
{&lt;br /&gt;
  play_rtttl(song);&lt;br /&gt;
  Serial.println(&amp;quot;Done.&amp;quot;);  //  &amp;quot;Готово.&amp;quot;&lt;br /&gt;
  while(1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=См.также=&lt;br /&gt;
&lt;br /&gt;
=Внешние ссылки=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Категория:Пример]]&lt;br /&gt;
[[Категория:Примеры]]&lt;br /&gt;
[[Категория:Пример программирования Arduino]]&lt;br /&gt;
[[Категория:Примеры программирования Arduino]]&lt;/div&gt;</summary>
		<author><name>Myagkij</name></author>
	</entry>
</feed>